العودة
تم إطلاق Doom SQL في قاعدة بيانات
SiTech AI Team2 دقيقة قراءة

تم إطلاق Doom SQL في قاعدة بيانات

أطلق المطور لوكاس فوجل لعبة Doom SQL في قاعدة بيانات. مشروع SQLDoom ينفذ منطق اللعبة عبر 1300 سطر من استعلامات SQL ويُنشئ 35 إطارًا في الثانية، بينما يدير عميل Python صغير الإدخال وإدارة الوقت وعرض الإطارات على الشاشة.

أطلق المطور لوكاس فوجل لعبة Doom من عام 1993 في قاعدة بيانات SQL. في مقال مدونة طويل، يصف كيف يعرض لعبته SQLDoom بالكامل تقريبًا عبر استعلامات SQL، ويعترف بنفسه: «عرض Doom في قاعدة بيانات هو فكرة سيئة بشكل واضح».

كيف يعمل

SQLDoom ليس محاكيًا: عميل Python صغير يدير الإدخال والإخراج والوقت وعرض الإطارات على الشاشة، بينما تجري اللعبة نفسها خلفه في جداول CedarDB. حوالي 1300 سطر من استعلامات SQL، موزعة على 89 CTE، تنفذ منطق اللعبة وتُولّد 35 إطارًا في الثانية كبت ماب.

اتضح أن نقل ملفات WAD الكلاسيكية لـ Doom إلى قاعدة بيانات علائقية أمر بسيط نسبيًا، لأن المحرك الأصلي يقسم المستويات إلى رؤوس وخطوط وقطاعات. في SQL تُدرج أيضًا أشجار تقسيم الفضاء الثنائي (BSP): المفتاح sort_key المحسوب مسبقًا للأجسام يتيح لاستعلام ORDER BY أن يقرر في كل إطار أي جزء من الجدار يُرسم وأيًا لا. هذه الحيلة بالذات تجعل اللعبة سريعة.

SQLDoom-ის დახარისხების ალგორითმის ვიზუალიზაცია

من ASCII إلى إطارات ملونة

SQLDoom أفضل بكثير من مشروع فوجل العام الماضي، DoomQL. حينها حاول إنشاء «لعبة تصويب شبيهة بـ Doom متعددة اللاعبين مبنية بالكامل على SQL»، لكن النتيجة كانت رسومات ASCII رمادية قائمة على التتبع الشعاعي فقط، تشبه خرائط Wolfenstein 3D ذات الزاوية 90 درجة أكثر من Doom. أما الآن فالمشروع يُنشئ إطارات كاملة بدقة 640×480 تشبه إطارات Doom الأصلية.

أصعب ما في الأمر كان عرض الأرضيات والأسقف. في اللعبة الأصلية تُرسم عموديًا عبر visplanes وتغييرات الحالة، وهو ما لا ينتقل بشكل جيد إلى SQL. بدلاً من ذلك، كتب فوجل حلًا «مهاكرًا إلى حد ما» يعتمد على التكرار عبر قائمة مرتبة من الألواح.

الأداء واللاعبون المتعددون

على الرغم من أن كل شيء يُقرأ ويُكتب في جداول SQL، يقول فوجل إن SQLDoom يعمل بسرعة حوالي 60 إطارًا في الثانية على حاسوب محمول بمعالج Ryzen 7، وينخفض أحيانًا إلى 35 إطارًا في المشاهد المحملة.

ويقول أيضًا إن قاعدة البيانات تمنح خوادم اللاعبين المتعددين ميزة: فهي تحتفظ بنسخة مستقرة من حالة اللعبة وتنظم الوصول المتزامن بنفسها، لذلك «لا توجد تحديثات مستخدمة جزئيًا أو أخطاء فيزيائية أو خلاف حول ما إذا كان الصاروخ قد أصاب فعلاً أم لا».

لتشغيل اللعبة يلزم وجود كود GitHub و CedarDB وملف WAD الخاص بـ Doom. يوجد أيضًا عرض تجريبي مجاني عبر الإنترنت، على الرغم من أن هذا الخيار كان يعمل بشكل سيئ أثناء اختبار Ars Technica.

SSiTech

SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي

نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.