در دنیای توسعه نرمافزار، عبارت «آیا روی این سیستم Doom اجرا میشود؟» به یک شوخی رایج برای سنجش انعطافپذیری سختافزارها و نرمافزارهای مختلف تبدیل شده است. اکنون این چالش به حوزه پایگاه دادهها (Databases) رسیده است؛ جایی که لوکاس ووگل (Lukas Vogel) موفق شد نسخهای از بازی کلاسیک Doom را بهطور کامل با استفاده از زبان SQL پیادهسازی کند.
از DOOMQL تا SQLDoom: تکامل رندرینگ در SQL
در نسخههای اولیه این پروژه که با نام DOOMQL شناخته میشد، گرافیک بازی بسیار ابتدایی بود و بیشتر به بازیهای قدیمی مانند 3D Monster Maze شباهت داشت. اما در نسخه جدید که SQLDoom نامیده شده، ووگل منطق بازی (Game Logic) و موتور رندرینگ (Renderer) را بهطور کامل به SQL منتقل کرده است.
- ساختار فنی: در این پیادهسازی، زبان Python تنها برای مدیریت زمانبندی (Timing)، ورودیهای کیبورد و نمایش بیتمپ (Bitmap) استفاده شده است. تمام محاسبات اصلی و پردازشهای گرافیکی از طریق کوئریهای SQL در پایگاه داده CedarDB انجام میشود.
- دقت بصری: برخلاف نسخه قبلی که از Raycasting استفاده میکرد، در SQLDoom از ساختار BSP-tree traversal استفاده شده است تا تجربه بصری دقیقا مشابه نسخه اصلی Doom در دهه ۹۰ میلادی باشد.
- خروجی داده: تنها خروجیهای پذیرفته شده از SQL در این پروژه، جداول یا بیتمپهایی هستند که مقادیر دقیق RGB هر پیکسل را کدگذاری میکنند.
تحلیل عملکرد و هدف پروژه
به گفته ووگل، این بازی روی لپتاپهای معمولی (مانند پردازنده Ryzen 7 7840U) بهطور روان اجرا میشود و حتی قابلیت بازی چندنفره (Multiplayer) را از طریق سرورهای آنلاین فراهم کرده است. اگرچه این پروژه در ظاهر یک نمایش سرگرمی است، اما در واقع دمونستراسیونی از قابلیتهای CedarDB است؛ یک سیستم پایگاه داده کامپایلشونده (Compiling Database) که کوئریهای پیچیده را در نهایت به Machine Code تبدیل میکند تا به حداکثر کارایی برسد.