Using Assembly Language for Creating Games
تستعرض هذه الورقة قدرات لغة التجميع x86 من خلال تفصيل تطوير لعبة "Arkanoid" باستخدام Visual Studio 2015، مع تسليط الضوء على خوارزميات مثيرة للاهتمام وإمكانات اللغة في إنشاء برمجيات تعمل ضمن وحدة تحكم نظام التشغيل Windows.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
تخيل أنك تحاول بناء منزل. معظم الناس يستخدمون مجموعة أدوات بناء حديثة تحتوي على جدران ونوافذ وأبواب جاهزة يتم تركيبها بسهولة. هذا يشبه لغات البرمجة عالية المستوى (مثل بايثون أو C++). فهي سريعة، وآمنة، وتتولى عنك كل التفاصيل المعقدة.
لكن هذا البحث يتحدث عن بناء منزل باستخدام الطوب والملاط الخام فقط، حبة حبة، بيديك العاريتين. هذه هي لغة التجميع (Assembly Language). إنها الطريقة "منخفضة المستوى" للتحدث مباشرة مع عقل الكمبيوتر (المعالج). إنها تمنحك تحكماً كاملاً في كل طوبة (كل بايت من الذاكرة)، لكن العمل بها أصعب بكثير.
إليك قصة كيف استخدم المؤلفون طريقة "الطوب الخام" هذه لبناء لعبة فيديو تسمى "Arkanoid" (لعبة كسر الطوب الكلاسيكية)، مشروحة ببساطة:
1. الهدف: لماذا نبني لعبة بـ "الطوب الخام"؟
أراد المؤلفون إثبات أنه لا يزال بإمكانك القيام بأشياء رائعة ومعقدة باستخدام لغة التجميع، رغم أنها قديمة الطراز. لقد بنوا اللعبة لإظهار:
- التحكم الكامل: لم يكتفوا بإخبار الكمبيوتر "ارسم كرة"، بل أخبروا الكمبيوتر بالضبط أي مكان في الذاكرة يجب تغييره لجعل البكسل يظهر.
- الكفاءة: لغة التجميع مثل السيارة الرياضية؛ فهي سريعة ومباشرة، ومثالية للأشياء التي يجب أن تحدث فوراً (مثل إيقاف اللعبة عند الخسارة).
- التعليم: أرادوا أن يظهروا للطلاب أن فهم كيفية عمل الكمبيوتر "تحت الغطاء" هو أمر ذو قيمة.
2. الإطار: "الكونسول" كشبكة
اللعبة لا تعمل في نافذة فاخرة ذات رسومات سلسة، بل تعمل في Windows Console (صندوق النص الأسود الذي تراه عند فتح Command Prompt).
- التشبيه: تخيل أن الشاشة عبارة عن لوحة شطرنج عملاقة. كل مربع على اللوحة يمكنه احتواء حرف، أو رقم، أو رمز، ويمكن أن يكون بأي لون.
- السحر: كتب المؤلفون كوداً يعامل هذه اللوحة كأنها لوحة رسم. لم يكتفوا بطباعة النصوص فحسب؛ بل رسموا "سلاسل ضخمة" (حروف كبيرة مكونة من كتل صغيرة) لإنشاء شاشة ترحيب وقوائم اللعبة.
3. ميكانيكا اللعبة: قواعد بيت الطوب
تتبع اللعبة القواعد الكلاسيكية:
- المضرب (The Paddle): تتحكم في قضيب في الأسفل.
- الكرة: ترتد في الأرجاء.
- الطوب: كتل ملونة في الأعلى.
- اللمسة المميزة: بعض الطوب "قوي". يجب أن تضربه مرتين لكسره. وإذا سقط والتقطته بمضربك، تحصل على نقاط إضافية!
4. كيف جعلوا الأمر يعمل (الخلطة السرية)
بما أنهم لم يستطيعوا استخدام محرك ألعاب (مثل Unity أو Unreal)، فقد اضطروا لبناء المحرك بأنفسهم باستخدام ثلاث أدوات رئيسية:
أ. "السلاسل الضخمة" (الفن)
بدلاً من كتابة حروف عادية، أنشأوا "خرائط بتية" (Bitmaps).
- التشبيه: فكر في صورة "بكسلية" لحرف "A" مكونة من مربعات صغيرة. لقد بنوا مكتبة من هذه الحروف الفنية ذات الطابع البكسلي. عندما أرادوا كتابة "WELCOME"، لم يقم الكمبيوتر بمجرد طباعة نص؛ بل وضع مئات المربعات الصغيرة الملونة على لوحة الشطرنج لتشكيل هيئة الحروف.
ب. "شرطي المرور" (المنطق)
تحتاج اللعبة لمعرفة مكان كل شيء. لقد أنشأوا "هياكل" (مثل المجلدات الرقمية) لحفظ البيانات:
- مجلد الكرة: يحتوي على مكان الكرة، واتجاه حركتها، وسرعتها.
- مجلد الطوب: يحتوي على لون الطوبة، وقيمتها من النقاط، و"عداد الضربات" (كم مرة تم ضربها).
- مجلد المضرب: يتتبع موقع المضرب.
ج. "الحارس" (كشف التصادم)
هذا هو الجزء الأصعب. في كل مرة تتحرك فيها الكرة، يجب على الكود أن يسأل: "هل اصطدمت بجدار؟ هل اصطدمت بطوبة؟ هل اصطدمت بالمضرب؟"
- التشبيه: تخيل أن الكرة هي راقصة معصوبة العينين. قبل كل خطوة، يتحقق الكود من مخطط الأرضية.
- إذا اصطدمت الكرة بجدار، يخبر الكود الكرة بأن ترتد بنفس الزاوية.
- إذا اصطدمت بطوبة، يقوم الكود بطرح 1 من "عداد الضربات" الخاص بالطوبة. إذا وصل العداد إلى الصفر، تختفي الطوبة.
- إذا اصطدمت بأسفل الشاشة، تنتهي اللعبة.
5. خدعة "السفر عبر الزمن" (التحكم في السرعة)
أراد المؤلفون أن تتحرك بعض الأشياء ببطء أكثر من غيرها دون جعل اللعبة بأكملها بطيئة.
- التشبيه: تخيل عازف طبول يحافظ على الإيقاع.
- المضرب يتحرك مع كل نبضة (سريع).
- الكرة تتحرك مع كل نبضة (سريع).
- الطوب الساقط يتحرك فقط كل ثلاث نبضات.
- استخدموا "متجه الوقت" (مؤقت زمني) لتخطي رسم بعض الكائنات لعدة إطارات. هذا جعل الطوب الساقط يبدو وكأنه ينجرف ببطء، مما أضاف تأثيراً بصرياً جميلاً دون فيزياء معقدة.
6. النتيجة
المنتج النهائي هو لعبة قابلة للعب بالكامل تعمل في نافذة سوداء بسيطة. تبدو كأنها من العصور القديمة، ولكن تحت الغطاء، هي تحفة من التحكم اليدوي.
لماذا يهم هذا؟
يجادل المؤلفون بأنه لمجرد امتلاكنا لأدوات سهلة اليوم، لا ينبغي لنا أن ننسى كيفية بناء الأشياء من الصفر. فهم لغة التجميع يشبه معرفة كيفية إصلاح محرك السيارة بدلاً من مجرد معرفة كيفية قيادتها. هذه الحيل المنطقية نفسها (كشف التصادم، تحريك الكائنات، التعامل مع المدخلات) تُستخدم في كل شيء، من ألعاب الفيديو إلى محمصات الخبز الذكية والمركبات الفضائية (الأنظمة المدمجة).
باختصار: لقد بنوا لعبة فيديو باستخدام اللغة الأصلية للكمبيوتر ليثبتوا أنه مع القدر الكافي من الصبر والمهارة، يمكنك جعل الكمبيوتر يفعل أي شيء تقريباً، حتى بدون الاختصارات الحديثة.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.