﻿1
00:00:04,390 --> 00:00:05,530
‫أهلا ومرحبا.

2
00:00:05,530 --> 00:00:11,590
‫في هذه المحاضرة ، سنتحدث عن المترجمين والمحررين الذين اكتشفوا ماهيتهم ولماذا

3
00:00:11,590 --> 00:00:14,770
‫نحتاجهم عندما نريد كتابة C ++.

4
00:00:14,770 --> 00:00:20,950
‫لذلك دعونا نبدأ ببعض التعاريف المسرد وسنرى كيف تتناسب مع النظام البيئي الأوسع.

5
00:00:21,340 --> 00:00:23,050
‫بادئ ذي بدء ، شفرة المصدر.

6
00:00:23,050 --> 00:00:26,680
‫هذا أمر بالغ الأهمية لفهم سبب حاجتنا إلى مترجم في المقام الأول.

7
00:00:26,680 --> 00:00:29,500
‫كود المصدر هو الكود الذي نكتبه.

8
00:00:29,500 --> 00:00:30,490
‫عادة ما يكون نصًا.

9
00:00:30,490 --> 00:00:34,150
‫إنه شكل من الكود يمكن قراءته من قبل الإنسان مثل C ++.

10
00:00:34,150 --> 00:00:37,060
‫لكن في بعض الأحيان قد تفكر في الكود المصدري على أنه مخططات أيضًا.

11
00:00:37,060 --> 00:00:43,720
‫إنها طرق يمكن للبشر قراءتها لوصف ما تريد أن تفعله لعبتك ، وما تريد أن يفعله الكمبيوتر.

12
00:00:43,720 --> 00:00:51,460
‫والأهم من ذلك ، أنه الجزء الذي يمكن قراءته من قبل الإنسان لأنه ليس من المفترض أن تكون الآلة قادرة على تنفيذ ذلك

13
00:00:51,460 --> 00:00:53,470
‫، لتكون قادرة على تشغيله.

14
00:00:53,560 --> 00:00:57,280
‫هذا هو دور الملف الثنائي القابل للتنفيذ.

15
00:00:57,280 --> 00:01:04,210
‫عادةً ما يكون رمزًا ثنائيًا واحدًا وأصفارًا ، ويهدف إلى أن يتمكن الجهاز من قراءته بسرعة وتشغيله على وحدة المعالجة المركزية

16
00:01:04,210 --> 00:01:07,770
‫الخاصة بك وعلى وحدة المعالجة المركزية الخاصة بك.

17
00:01:07,780 --> 00:01:10,540
‫ولذا فهو رمز يمكن قراءته آليًا.

18
00:01:10,540 --> 00:01:17,470
‫إذن بين هذين الأمرين توجد فجوة ونحتاج إلى إصلاح هذه الفجوة حتى نتمكن من تحويل الكود الذي يمكن قراءته من قبل الإنسان

19
00:01:17,470 --> 00:01:19,240
‫إلى كود يمكن قراءته آليًا.

20
00:01:19,240 --> 00:01:22,840
‫وهذا هو دور ما يسمى بالمترجم.

21
00:01:22,840 --> 00:01:26,800
‫إنه يترجم من C ++ أو المخططات التي يمكن قراءتها من قبل الإنسان.

22
00:01:26,800 --> 00:01:31,270
‫كما رأينا من قبل ، صادفنا أخطاء في برنامج التحويل البرمجي وأشياء من هذا القبيل.

23
00:01:31,270 --> 00:01:38,230
‫لذلك فهو يترجم من الإنسان إلى مجالات الآلة وينشئ ملفات XY أو تلك الملفات الثنائية أو أي

24
00:01:38,230 --> 00:01:39,940
‫نظام أساسي تستخدمه.

25
00:01:40,060 --> 00:01:46,000
‫ومن الواضح أن هناك الكثير من التعقيد الذي ينطوي عليه ما يفعله المترجم ، وسوف نتعلم المزيد

26
00:01:46,000 --> 00:01:49,300
‫عن بعض الأجزاء الأكثر تعقيدًا منه لاحقًا.

27
00:01:49,300 --> 00:01:55,390
‫لكن في الوقت الحالي ، يكفي أن نعرف أنه جزء من البرنامج يتحول من شفرة المصدر إلى كود ثنائي.

28
00:01:55,390 --> 00:02:00,820
‫ثم هناك برنامج آخر في المزيج يسمى محرر الكود المصدري ، وهو موجود ببساطة

29
00:02:00,820 --> 00:02:06,130
‫لتسهيل حياتك عند كتابة كود يمكن قراءته بواسطة الإنسان مثل C ++.

30
00:02:06,130 --> 00:02:13,780
‫إنه يعطينا أشياء مثل الإكمال التلقائي ويسلط الضوء على أي أخطاء قد نكتبها تلقائيًا ، مثل المدقق الإملائي

31
00:02:13,780 --> 00:02:19,060
‫، لذلك يمكن أن يجعل حياتنا أسهل كثيرًا عند التعامل مع الكود المصدري.

32
00:02:19,120 --> 00:02:23,380
‫لذلك دعونا نرى كيف يتناسب كل هذا معًا في النظام البيئي غير الواقعي.

33
00:02:23,380 --> 00:02:27,070
‫لذلك كنا نتعامل حتى الآن مع المحرر.

34
00:02:27,070 --> 00:02:34,810
‫نحن المحرر عبارة عن برنامج تم تجميعه بالفعل من أجلنا ولدينا بالفعل الملف التنفيذي

35
00:02:34,810 --> 00:02:38,110
‫لذلك المحرر عندما قمنا بتثبيته.

36
00:02:38,110 --> 00:02:39,670
‫حتى نتمكن من فتح المحرر.

37
00:02:39,670 --> 00:02:45,880
‫يسمح لنا المحرر بتعديل مشروع لعبتنا وإنشائه باستخدام أصول اللعبة المختلفة.

38
00:02:45,880 --> 00:02:49,960
‫يتضمن ذلك أشياء مثل الشبكات التي أدخلناها في مشروعنا.

39
00:02:49,960 --> 00:02:53,770
‫وهي تشمل أصول المخطط ورمز المخطط هناك.

40
00:02:54,100 --> 00:03:00,670
‫وما يسمح لنا هذا بالقيام به هو استخدام أصول اللعبة هذه التي أنشأناها في محرر ، يمكننا

41
00:03:00,670 --> 00:03:08,050
‫بعد ذلك تشغيل اللعبة في ملف منفصل مستقل قابل للتنفيذ حيث تلعب اللعبة فقط ولا شيء آخر.

42
00:03:08,110 --> 00:03:11,920
‫ومع ذلك ، فإن الصورة تتغير قليلاً إذا أردنا البدء في استخدام C ++.

43
00:03:11,950 --> 00:03:19,000
‫C ++ هي حجر الأساس للمحرر ، وعلى هذا النحو ، إذا قمنا بتغيير C ++ في المحرر ، فإننا نحتاج بشكل أساسي

44
00:03:19,000 --> 00:03:23,830
‫إلى إعادة بناء برنامج التحرير الثنائي القابل للتنفيذ.

45
00:03:23,830 --> 00:03:28,570
‫لذا إذا كان لدينا شفرة المصدر الخاصة بنا هنا ، فنحن نعلم أنها تبدو مثل هذا قليلاً.

46
00:03:28,570 --> 00:03:30,310
‫لدينا بعض النصوص.

47
00:03:30,700 --> 00:03:38,380
‫في الأساس ، هذا هو ما يشكل شفرة المصدر الخاصة بنا ونقوم بتحرير كود المصدر هذا مرة أخرى باستخدام برنامج منفصل

48
00:03:38,380 --> 00:03:41,470
‫يسمى محرر الكود المصدري سابقًا مخطط.

49
00:03:41,470 --> 00:03:47,320
‫لقد قمنا بتحريرها كلها في The Unreal Editor لأنها مدمجة بإحكام مع البرنامج.

50
00:03:47,320 --> 00:03:52,870
‫ومع ذلك ، عندما نتعامل مع C ++ ، فإننا نستخدم برنامج طرف ثالث لتحرير الكود.

51
00:03:52,870 --> 00:03:57,730
‫الآن ، الذي سنستخدمه في هذه الدورة يسمى Visual Studio Code لأنه يعمل عبر الأنظمة

52
00:03:57,730 --> 00:04:02,980
‫الأساسية على أنظمة Mac و Linux و Windows تمامًا كما أنه خفيف الوزن للغاية.

53
00:04:02,980 --> 00:04:07,990
‫ولكن كما قلت ، هناك فجوة بين الكود المصدري الذي كتبناه وتحويله إلى ملف

54
00:04:07,990 --> 00:04:14,170
‫ثنائي قابل للتنفيذ مطلوب لتشغيل اللعبة في المحرر وفي منتج اللعبة النهائي الفعلي.

55
00:04:14,170 --> 00:04:16,570
‫وهذا الجزء هو المترجم.

56
00:04:16,570 --> 00:04:22,780
‫سيأخذ المترجم كود المصدر الخاص بنا ، وسيأخذ المكتبات والوظائف المدمجة بالفعل في Unreal التي نستخدمها

57
00:04:22,780 --> 00:04:25,000
‫في كود المصدر الخاص بنا.

58
00:04:25,000 --> 00:04:29,620
‫سيقوم بتجميعها معًا ، وتحويلها إلى ثنائي وإخراج.

59
00:04:29,620 --> 00:04:35,890
‫إما محرر يمكننا فتحه وتعديل أصول لعبتنا أو سينتج لعبة تأخذ أصول لعبتنا

60
00:04:35,890 --> 00:04:39,070
‫وتسمح للاعب فقط بلعب لعبتنا.

61
00:04:39,070 --> 00:04:44,380
‫يوجد الآن خياران للمترجم بناءً على النظام الأساسي الذي تستخدمه.

62
00:04:44,380 --> 00:04:49,300
‫إذا كنت تستخدم نظام التشغيل Windows ، فسنستخدم Visual Studio ، لذلك لا تخلط بين هذه الأشياء.

63
00:04:49,300 --> 00:04:51,370
‫لديهم شعارات متشابهة جدًا وأسماء متشابهة جدًا.

64
00:04:51,370 --> 00:04:56,290
‫أحدهما هو Visual Studio ، وهو المترجم ، ومن ثم هناك محرر هو محرر الكود المصدري

65
00:04:56,290 --> 00:04:58,480
‫فقط ، ويسمى Visual Studio Code.

66
00:04:58,720 --> 00:05:03,070
‫الآن ، إذا كنت تستخدم جهاز Mac ، فستستخدم رمز X بدلاً من ذلك.

67
00:05:03,150 --> 00:05:09,580
‫هل تم استخدام المترجم على نظام التشغيل Mac للحفاظ على الأشياء عبر الأنظمة الأساسية ، للحفاظ على الأشياء نفسها للجميع.

68
00:05:09,600 --> 00:05:14,310
‫سنستخدم التعليمات البرمجية لـ Visual Studio لتحرير الشفرة بالفعل ، على الرغم من أن هؤلاء المجمعين لديهم إمكانات

69
00:05:14,310 --> 00:05:16,410
‫تحرير التعليمات البرمجية المصدر مضمنة.

70
00:05:16,420 --> 00:05:23,760
‫لكننا سنستخدم هؤلاء المجمعين لأخذ شفرة المصدر بالفعل وتحويلها إلى ملف ثنائي قابل للتنفيذ.

71
00:05:23,810 --> 00:05:25,320
‫حسنًا ، هذا كل شيء في هذه المحاضرة.

72
00:05:25,320 --> 00:05:29,460
‫نأمل أن تكون أوضح قليلاً بشأن سبب حاجتنا إلى مترجم ، ولماذا نحتاج إلى محرر شفرة المصدر.

73
00:05:29,490 --> 00:05:34,030
‫المحاضرات القليلة القادمة ، سنستمر في عملية تركيبها.

74
00:05:34,050 --> 00:05:34,830
‫سأراك هناك.

