ادای احترام به بخش چندنفره DOOM با کدنویسی ‘SQL خالص’ و اجرای 30 فریم بر ثانیه
یک دانشمند کامپیوتر تنها با استفاده از «SQL خالص» یک بازی چندنفره شبیه DOOM ساخت. این بازی تیراندازی اول شخص، که تنها از حدود 150 خط کد پایتون تشکیل شده، DOOMQL نام دارد. با وجود محدودیتهای معماری نرمافزاری خودتحمیلی، لوکاس ووگل، یکی از بنیانگذاران شرکت CedarDB که در زمینه عملکرد پایگاه داده فعالیت میکند، میگوید DOOMQL با «سرعت دلپذیر حدود 30 فریم بر ثانیه» اجرا میشود. البته این بازی، گرافیکیترین بازی الهامگرفته از DOOM نیست.
رویاهای ووگل برای ساخت DOOM با SQL، با پروژه DuckDB-DOOM پاتریک ترینر آغاز شد. این آزمایش کدنویسی قبلی نیز به دنبال ایجاد یک بازی تیراندازی اول شخص شبیه DOOM در SQL بود. با این حال، کد ترینر، که در یک صفحه وب در مرورگر با استفاده از WebAssembly اجرا میشود، از جاوااسکریپت برای رندرینگ و ورودیها نیز استفاده میکند.
تفاوتهای کلیدی دیگر بین DOOMQL و کلون DuckDB-DOOM این است که اولی یک تلاش چندنفره است، با SQL که هم برای رندرینگ و هم برای ورودی استفاده میشود و به حدود 30 فریم بر ثانیه در رزولوشن 128×64 پیکسل دست مییابد. ووگل، بدون هیچ کنایهای نسبت به تلاشهای ترینر، میگوید که «داشتن بخشهایی از خط لوله رندرینگ در جاوااسکریپت حس تقلب را میداد.» با وجود این «تقلب»، کلون DuckDB-DOOM تنها با حدود 8 فریم بر ثانیه اجرا میشود و از رزولوشن پایینتری استفاده میکند. آنچه که دستاورد ووگل را چشمگیرتر میکند، این ادعا است که او DOOMQL را در طول یک ماه مرخصی والدین خود کدنویسی کرده است.
میتوانید از طریق پست وبلاگ لینک شده به عمق DOOM مبتنی بر SQL ووگل بروید و کد آن را در گیتهاب بررسی کنید. با این حال، برای یک نمای کلی از معماری بازی، میتوان آن را در سطح بالا با چهار نکته زیر خلاصه کرد:
- وضعیت در جداول (نقشه، بازیکنان، موبها، ورودیها، تنظیمات، اسپریتها و غیره) ذخیره میشود.
- رندرینگ یک پشته از نماهای SQL است که ریکستینگ و پروجکشن اسپریت را پیادهسازی میکنند.
- حلقه بازی یک اسکریپت شل کوچک است که یک فایل SQL را حدود 30 بار در ثانیه اجرا میکند.
- کلاینت حدود 150 خط پایتون است: ورودی را نظرسنجی میکند و پایگاه داده را برای نمای سهبعدی شما پرسوجو میکند.
ووگل در نهایت چیزهای زیادی در مورد SQL به عنوان راهی برای پیادهسازی منطق بازی و مدیریت وضعیت یاد گرفت، و یک «حلقه بازی به طرز شگفتانگیزی زیبا» از تلاشهای او پدید آمد. عملکرد، همانطور که قبلاً ذکر شد، نیز یک نکته دلپذیر بود، و او خوانندگان را به چالش میکشد تا یک سیستم پایگاه داده سریعتر از CedarDB (تبلیغ بیشرمانه یکی از بنیانگذاران) برای رندر DOOMQL ارائه دهند.
اگر میخواهید DOOMQL را خودتان امتحان کنید، به مخزن گیتهاب بروید. پس از دریافت تمام فایلها، میتوانید آن را به صورت محلی با استفاده از Docker و پایتون اجرا کنید. از آنجایی که کد را تحت مجوز انعطافپذیر MIT دارید، میتوانید آن را مشاهده کرده و با آن بازی کنید. ووگل اشاره میکند که در آیندهای نه چندان دور به دنبال بهبودهایی خواهد بود. به طور خاص، او به مواردی مانند «افزودن پاورآپها، سلاحهای متعدد، تمیز کردن سیستم LOD اسپریت، یک کلاینت بهتر، حریفان هوش مصنوعی» اشاره میکند.
- کولبات
- شهریور 20, 1404
- 41 بازدید






