نعم كل برنامج يتم بنائه عن طريقة كتابة الكود ثم تحويل هذا الاخير لملف قابل للتنفيذ. تختلف طريقة التنفيذ حسب اللغة المستخدمة و بما ان الاغلبية الساحقة من الالعاب تطور بلغة السي++ فان الطريقة المتبعة هي كالاتي :
كتابة الكود تحويل ملفات الكود الى ملفات Obj ربط ملفات الـObj عن طريق الينكر linker تحرير الملف التنفيذي
غالبا ما تكون المراحل التي يجب تنفيذها للحصول على ملف تنفيذي معرفة في ملف Make و هو ملف نصي ليست له صيغة ( مثل .txt ). عندما تكتب كود لعبة ما فانك تستخدم مكتبة مخصصة لتطوير الألعاب. اي في الاخير الالعاب مجرد برنامج خاص.
المرحل التي تنفذ عند ضغطك للزر : Build and run في الـ Visual c++ او اي برنامج اخر ( devc++ مثلا) هي : ترجمة الكود المكتوب الى كود قابل للتنفيذ ( بلغة التجميع عادة او يكون عبارة عن اوامر بالنظام الثنائي) تعديل الروابط بين الملفات و المكتبات، مثلا ملف ما استدعى المكتبة أ، محرر الروابط linker هو المسؤول عن اقامة روابط بالشكل المطلوب بين الملفات و المكتبات، و الملفات و الملفات. ناتج محرر الروابط هو الملف التنفيذي.
افهم من كلامك انه من المفترض ان اقوم بعمل compile لللملفات و هذا ما اتكلم عنه , من الصعب إنشاء هذه العمليات من الصفر , فلماذا لا استخدم compiler موجود بالفعل مثل dev C++ لعمل هذه العملية .
+++++++++++++++++++++++++++ بصراحه هذا الموضوع مهم جداً وخصوصا عند مرحله بناء المحركات الكامله والتي تكون لها لغتها او دوالها الجاهزه و من وجهة نظري :- ان غالبيه المحركات تستخدم دوال او اصناف كتبت بلغات عامه مثل السي و وهذه الدوال ترفق مع المحرك لذا فالمحرك يملك مترجم صغير جدا يحوي بعض الدوال ولاصناف الجاهزه فما عليك إلا ان تضع القيم في الداله وترجم المشروع + مثل ما هو الحال في محرك ينتي3دي (unity 3d) +وبرنامج فلاش والذي له لغه خاصه به وهي اكشن اسكربت والله اعلم ......
كلا اخي انت تخطئ عندما تقول ان Devc++ هو مترجم. ان devc++ عبارة عن برنامج يجمع عدة ميزات تسهل عليك البرمجة منها الترجمة الالية اي دون ان تظطر لفعل ذلك تسمى مثل هذه البرامج بـ : IDE (Integrated Development Environment المترجم هو برنامج اخر يستعمله devc++ مثلا مترجم لغة السي : GNU GCC وهو مستعمل من طرف Devc++ طبعا هناك مترجمات اخرى لشركات مختلفة اشهرها مترجم مايكروسوفت
ملاحظة المترجم لا يحوي دوال او اصناف انما مهمته ترجمة الكود الى شيئ مفهوم لما هو مستهدف، مثلا مترجم لغة السي يترجم الكود الى ملف obj يفهم من طرف وحدة المعالجة، اما في حالة يونتي فالمترجم يترجم الكود الى شيئ يفهمه المحرك، قد يكون هذا الشيئ لغة السي او لغة التجميع الى اخره
بمعنى انه لتنفيذ ما اريده يجب ان استخدم مثلا GNU GCC (لو كان المحرك مبني على الC ) و ادمجهوا مع المحرك الذي ابنيه ليخرج الملف التنفيذي , صحيح ؟
هذا يتوقن على المحرك المستخدم، بعض المحركات تتعامل مع الكود و كأنه مجرد بيانات يجب معالجتها، تماما مثل الصوت و الصور و المجسمات، هذه الطريقة تعمل بالشكل التالي :
-كتابة كود المحرك -كتابة وحدة معالجة الكود الخارجي ( احيانا يعبر يطلق عليها اسم Plugin مثل ما هو عليه الحال في برنامج 3D studio max و firefox ) - بناء المحرك : ترجمة تحرير الروابط انشاء ملف تنفيذي - تشغيل المحرك و لتكن الحالة التالية : -نريد انشاء شخصية مقاتل هذا يتطلب : *مجسم المقاتل * الخامات التي تغطي المجسم * حركات المقاتل * الاصوات التي يطلقها المقاتل * تصرف المقاتل -النقطة الاخير : تصرف المقاتل يكون عبارة عن ملف يحوي الكود الاضافي، المكتوب بلغة المحرك الخاصة - الان سيتصرف المحرك كالاتي : *حمل المجسم كما هو منصوص عليه في الدالة أ * حمل الخامات و الصقها كما هو منصوص عليه الدالة ب * حمل الاصوات كما هو منصوص في الدالة ج * حمل التصرف كما هو منصوص في الدالة هـ في هذه الحالة يكون الكود الاضافي المكتوب مجرد وسيلة لتغير خصائص موجود في المحرك اصلا،هناك حالات خاصة اين تكون للمبرمج حرية اكبر. بهذه الطريقة نتجنب اعادة بناء المحرك ككل و نكتفي بتفسير الملف المكتوب بلغة المحرك. يعرف هذا الميدان بـ Scripting
اذا فهمت هذه الطريقة ننتقل للطريقة اخرى انشاء الله