برنامه‌نویسی و معماری نرم‌افزار

تحلیل فنی پروژه SQLDoom: اجرای بازی Doom با استفاده از کوئری‌های SQL و موتور CedarDB

در اکتبر ۱۴۰۵، دنیای مهندسی نرم‌افزار شاهد یک دستاورد فنی غیرمتعارف و حیرت‌انگیز بود. لوکاس ووگل (Lukas Vogel) با انتشار پروژه SQLDoom، ثابت کرد که محدودیت‌های یک سیستم مدیریت پایگاه داده، تنها در ذهن برنامه‌نویسان وجود دارد. این پروژه نه یک شبیه‌ساز ساده، بلکه پیاده‌سازی منطق بازی Doom در بستری از جداول رابطه ای و کوئری‌های پیچیده SQL است.

معماری زیرساختی SQLDoom

برخلاف باور عمومی که دیتابیس‌ها را صرفاً مخزنی برای ذخیره داده می‌داند، SQLDoom از موتور CedarDB برای پردازش منطق بازی استفاده می‌کند. برخلاف نسخه قبلی یعنی DoomQL که به گرافیک‌های ASCII محدود بود، نسخه جدید با بهره‌گیری از حدود ۱۳۰۰ خط کد SQL در قالب ۸۹ عبارت (Common Table Expressions – CTE)، محاسبات هندسی و وضعیت بازی را مدیریت می‌کند. این حجم از محاسبات در لحظه، قدرت منعطفِ زبان SQL را در حل مسائل غیرمرتبط با مدیریت داده به چالش کشیده است.

نقش کلاینت پایتون و خط لوله پردازش

باید توجه داشت که SQL یک زبان اعلانی (Declarative) است و ماهیت ایستا دارد؛ بنابراین برای اجرای یک بازی زنده، به یک «محرک» نیاز است. یک کلاینت پایتون در اینجا نقش مدیریت ورودی/خروجی، تنظیم زمان‌بندی بازی (Game Timing) و تبدیل بافر فریم‌های تولید شده توسط دیتابیس به تصاویر نمایشی را بر عهده دارد. در واقع، موتور CedarDB نقش هسته پردازشگر گرافیکی (GPU-like logic) را بازی می‌کند و پایتون وظیفه برقراری ارتباط با سخت‌افزار را انجام می‌دهد.

تحول از Wolfenstein 3D تا Doom کلاسیک

پروژه قبلی ووگل (DoomQL) از روش Raycasting ساده‌سازی شده با گرافیک خاکستری استفاده می‌کرد که شباهت بیشتری به ساختار هندسی بازی Wolfenstein 3D داشت. اما در SQLDoom، با تولید ۳۵ فریم رنگی در ثانیه با وضوح 640×480، شاهد خروجی بصری هستیم که کاملاً به نسخه اصلی Doom شباهت دارد. این جهش تکنولوژیک نتیجه بهینه‌سازی دقیق CTEها و مدیریت حافظه در موتور CedarDB است.

مشخصات فنی پیاده‌سازی

  • موتور دیتابیس: CedarDB
  • زبان مدیریت ارتباطی: Python (Client-side)
  • تعداد خطوط کوئری SQL: ۱,۳۰۰ خط
  • ساختار منطقی: ۸۹ عبارت Common Table Expressions (CTE)
  • نرخ تولید تصویر: ۳۵ فریم بر ثانیه
  • وضوح تصویر: 640×480 پیکسل

نتیجه‌گیری: آیا دیتابیس جایگزین موتور بازی می‌شود؟

اگرچه اجرای بازی Doom در پایگاه داده از نظر عملیاتی یک ایده «غیراستاندارد» محسوب می‌شود، اما از منظر علوم کامپیوتر، این پروژه درک عمیقی از نظریه محاسبات و قابلیت‌های موتورهای دیتابیس مدرن ارائه می‌دهد. استفاده از CTEها برای جایگزینی توابع بازگشتی و محاسبات هندسی، نشان می‌دهد که SQL در دستان یک مهندس خلاق، ابزاری بسیار قدرتمندتر از یک ابزار ذخیره‌سازی ساده است.

📌 منبع و مطالعه بیشتر: Ars Technica: Can it run Doom? SQL database edition
حامد

حامد

مسئول مجله فناوری آسمان نقره‌ای