ساخت بازی DOOM با SQL: دستیابی به نرخ ۳۰ فریم بر ثانیه با زبان پایگاه داده

یک دانشمند کامپیوتر موفق شده است با استفاده از «pure SQL» یک بازی چندنفره شبیه DOOM بسازد که با نام DOOMQL شناخته می‌شود.


به گزارش تکناک، این پروژه که تنها با حدود ۱۵۰ خط کد Python پیاده‌سازی شده، توانسته نرخ اجرای چشمگیر ۳۰ فریم بر ثانیه را به دست آورد.

لوکاس فوگل (Lukas Vogel)، هم‌بنیان‌گذار شرکت CedarDB، این بازی را در مدت کمتر از یک ماه و در دوران مرخصی والدینی توسعه داده است. نکته قابل توجه اینجاست که او تمامی رندرینگ و ورودی‌ها را به طور کامل در SQL پیاده‌سازی کرده و برخلاف پروژه مشابهی به نام DuckDB-DOOM ساخته‌ی پاتریک ترینر (Patrick Trainer)، از زبان‌های دیگر برای پردازش گرافیک یا ورودی‌ها استفاده نکرده است.

تامزهاردور می‌نویسد که نسخه DuckDB-DOOM با کمک JavaScript و WebAssembly تنها حدود ۸ فریم بر ثانیه اجرا می‌شود و وضوح پایین‌تری دارد، در حالی‌که DOOMQL با وضوح ۱۲۸×۶۴ پیکسل و سرعت بالاتر اجرا می‌شود. فوگل در توضیحی طنزآمیز گفته است که استفاده از جاوااسکریپت در رندرینگ «نوعی تقلب» محسوب می‌شود.

ساخت بازی DOOM با SQL

معماری این بازی نوآورانه بر پایه چهار اصل شکل گرفته است:

وضعیت و داده‌های بازی در جداولی شامل نقشه، بازیکنان، دشمنان، ورودی‌ها و تصاویر ذخیره می‌شوند.

رندرینگ با مجموعه‌ای از SQL views برای پیاده‌سازی raycasting و نمایش اسپریت‌ها انجام می‌شود.

حلقه بازی یک اسکریپت شل کوچک است که فایل SQL را حدود ۳۰ بار در ثانیه اجرا می‌کند.

کلاینت با تنها ۱۵۰ خط کد Python، ورودی‌ها را دریافت کرده و نمای سه‌بعدی بازیکن را از پایگاه داده می‌گیرد.

فوگل تأکید کرده است که این تجربه، درک او از SQL به‌عنوان ابزاری برای مدیریت منطق و وضعیت بازی را عمیق‌تر کرده و منجر به طراحی یک «حلقه بازی شگفت‌انگیز و ساده» شده است. او همچنین از برنامه‌های آینده شامل اضافه کردن پاورآپ‌ها، سلاح‌های متنوع‌تر، بهبود سیستم گرافیکی اسپریت‌ها، ساخت یک کلاینت کارآمدتر و حتی طراحی رقیبان هوش مصنوعی خبر داده است.

علاقه‌مندان می‌توانند با مراجعه به GitHub و دریافت کد منبع، این بازی را به کمک Docker و Python روی سیستم خود اجرا کنند. پروژه DOOMQL تحت مجوز MIT منتشر شده و امکان تغییر و توسعه آزادانه برای کاربران را فراهم می‌کند.

امیرحسین یونس

امیرحسین یونس

کارشناس ارشد محیط زیست، نویسنده حوزه تکنولوژی

خبر بعدی

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

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