DOOM multiplayer tribute gets coded in 'pure SQL' and runs at 30FPS — made from just 150 lines of code in less than a month | Tom's Hardware

ادای احترام به بخش چندنفره 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 را در طول یک ماه مرخصی والدین خود کدنویسی کرده است.

شارژر Anker Prime در حال اجرای Doom Doom چهارصد برابر گرافیک ASCII Thunder Lizard تحت پردازش هوش مصنوعی قرار می‌گیرد DOOMQL

می‌توانید از طریق پست وبلاگ لینک شده به عمق DOOM مبتنی بر SQL ووگل بروید و کد آن را در گیت‌هاب بررسی کنید. با این حال، برای یک نمای کلی از معماری بازی، می‌توان آن را در سطح بالا با چهار نکته زیر خلاصه کرد:

  • وضعیت در جداول (نقشه، بازیکنان، موب‌ها، ورودی‌ها، تنظیمات، اسپریت‌ها و غیره) ذخیره می‌شود.
  • رندرینگ یک پشته از نماهای SQL است که ری‌کستینگ و پروجکشن اسپریت را پیاده‌سازی می‌کنند.
  • حلقه بازی یک اسکریپت شل کوچک است که یک فایل SQL را حدود 30 بار در ثانیه اجرا می‌کند.
  • کلاینت حدود 150 خط پایتون است: ورودی را نظرسنجی می‌کند و پایگاه داده را برای نمای سه‌بعدی شما پرس‌وجو می‌کند.

ووگل در نهایت چیزهای زیادی در مورد SQL به عنوان راهی برای پیاده‌سازی منطق بازی و مدیریت وضعیت یاد گرفت، و یک «حلقه بازی به طرز شگفت‌انگیزی زیبا» از تلاش‌های او پدید آمد. عملکرد، همانطور که قبلاً ذکر شد، نیز یک نکته دلپذیر بود، و او خوانندگان را به چالش می‌کشد تا یک سیستم پایگاه داده سریع‌تر از CedarDB (تبلیغ بی‌شرمانه یکی از بنیان‌گذاران) برای رندر DOOMQL ارائه دهند.

اگر می‌خواهید DOOMQL را خودتان امتحان کنید، به مخزن گیت‌هاب بروید. پس از دریافت تمام فایل‌ها، می‌توانید آن را به صورت محلی با استفاده از Docker و پایتون اجرا کنید. از آنجایی که کد را تحت مجوز انعطاف‌پذیر MIT دارید، می‌توانید آن را مشاهده کرده و با آن بازی کنید. ووگل اشاره می‌کند که در آینده‌ای نه چندان دور به دنبال بهبودهایی خواهد بود. به طور خاص، او به مواردی مانند «افزودن پاورآپ‌ها، سلاح‌های متعدد، تمیز کردن سیستم LOD اسپریت، یک کلاینت بهتر، حریفان هوش مصنوعی» اشاره می‌کند.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

جستجو در سایت

سبد خرید

درحال بارگذاری ...
بستن
مقایسه
مقایسه محصولات
لیست مقایسه محصولات شما خالی می باشد!