مجله اینترنتی اوکالا مگ مرجع نقد، راهنمای خرید و اخبار فناوری
صفحه اصلی مجله

دسته‌بندی‌های موضوعی مجله اوکالا

موضوع مورد نظر خود را انتخاب کنید تا تمامی مقالات و نقد و بررسی‌های آن را مشاهده کنید:

246 مقاله

اخبار و نقد موبایل

مشاهده مقالات این بخش ←
1 مقاله

اسباب بازی

مشاهده مقالات این بخش ←
3 مقاله

اسباب بازی و سرگرمی

مشاهده مقالات این بخش ←
61 مقاله

بازی و سرگرمی

مشاهده مقالات این بخش ←
5 مقاله

خانه و آشپزخانه

مشاهده مقالات این بخش ←
42 مقاله

خودرو و موتورسیکلت

مشاهده مقالات این بخش ←
18 مقاله

راهنمای جامع خرید

مشاهده مقالات این بخش ←
6 مقاله

راهنمای خانه و آشپزخانه

مشاهده مقالات این بخش ←
34 مقاله

زیبایی و سلامت

مشاهده مقالات این بخش ←
119 مقاله

سبک زندگی و دیجیتال

مشاهده مقالات این بخش ←
967 مقاله

فناوری و گجت‌ها

مشاهده مقالات این بخش ←
0 مقاله

کارت هدیه

مشاهده مقالات این بخش ←
1 مقاله

کالاهای سوپرمارکتی

مشاهده مقالات این بخش ←
283 مقاله

کالای دیجیتال

مشاهده مقالات این بخش ←
0 مقاله

کالای کارکرده

مشاهده مقالات این بخش ←
242 مقاله

کتاب، لوازم تحریر و هنر

مشاهده مقالات این بخش ←
3 مقاله

مادر و کودک

مشاهده مقالات این بخش ←
0 مقاله

محصولات بومی و محلی

مشاهده مقالات این بخش ←
2 مقاله

مد و پوشاک

مشاهده مقالات این بخش ←
113 مقاله

موبایل

مشاهده مقالات این بخش ←
9 مقاله

ورزش و سفر

مشاهده مقالات این بخش ←
2 مقاله

ویدیو و جعبه‌گشایی

مشاهده مقالات این بخش ←
بازی و سرگرمی

اجرای بازی خاطره‌انگیز Doom داخل پایگاه داده SQL!

اجرای بازی خاطره‌انگیز Doom داخل پایگاه داده SQL!

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

پروژه SQLDoom چطور کار می‌کند؟

شاید بپرسید یک دیتابیس که ذاتاً برای مدیریت و جست‌وجوی داده‌ها طراحی شده، چطور فریم‌های بازی اکشن و سه‌بعدی را رندر می‌کند؟ پروژه موسوم به SQLDoom از سه بخش اصلی تشکیل شده است:

  • کلاینت پایتون سبک: این اسکریپت تنها ورودی کیبورد، زمان‌بندی بازی و نمایش تصویر نهایی را روی نمایشگر بر عهده دارد.
  • جداول پایگاه داده CedarDB: وضعیت بازی، مختصات فضایی و داده‌های هندسی نقشه‌ها در این دیتابیس ذخیره می‌شوند.
  • منطق پردازش SQL: حدود ۱۳۰۰ خط کد کوئری SQL شامل ۸۹ عبارت CTE (عبارات جدولی عمومی)، منطق بازی را محاسبه کرده و در هر ثانیه ۳۵ فریم پیکسلی با رزولوشن ۶۴۰×۴۸۰ تولید می‌کنند.

از تصویر اسکی تاریک تا رنگ‌های چشم‌نواز نسخه اصلی

این نخستین تلاش فوگل برای اجرای دووم در SQL نبوده است. او سال گذشته پروژه دیگری به نام DoomQL ساخت که خروجی آن بسیار ابتدایی، سیاه و سفید، بر پایه حروف اسکی (ASCII) و شبیه نسخه اولیه Wolfenstein 3D بود. اما نسخه فعلی به طرز باورنکردنی تصاویر تمام‌رنگی، روان و شفافی خلق می‌کند که تشخیص آن با نسخه اصلی DOS تقریباً غیرممکن است.

وقتی دنیای شیاطین به ردیف‌های جدول تبدیل می‌شود!

به گفته این توسعه‌دهنده، تبدیل فایل‌های کلاسیک WAD دووم به یک دیتابیس رابطه‌ای اصلاً کار دشواری نبوده؛ زیرا موتور اصلی بازی از همان ابتدا ساختار منظمی از بردارها، خطوط و بخش‌ها داشت. بخش جالب ماجرا جایی است که درخت‌های BSP مشهور دووم به فیلدهای ساده پایگاه داده تبدیل شده‌اند. پایگاه داده با یک دستور مرتب‌سازی ساده (ORDER BY)، در چند میلی‌ثانیه تشخیص می‌دهد کدام دیوارها روبه‌روی بازیکن هستند و باید رندر شوند و کدام بخش‌ها باید نادیده گرفته شوند.

عطش بی‌پایان برای پورت کردن دووم

علاقه‌مندان رتروگیمینگ و هکرهای سخت‌افزار هر هفته راه‌های تازه‌ای برای زنده نگه‌داشتن شاهکار سال ۱۹۹۳ پیدا می‌کنند؛ از به‌کارگیری چیپ‌های میکروکنترلری رزبری‌پای پیکو ۲ به عنوان پردازنده کمکی گرفته تا بازطراحی روی کنسول‌های قدیمی نئوژئو. با این حال، استفاده مستقیم از کدهای SQL برای ساخت موتور رندرینگ قطعاً یکی از مهندسی‌ترین و دیوانه‌وارترین دستاوردهای سال‌های اخیر محسوب می‌شود.

💬

دیدگاه‌ها و پرسش‌های کاربران 0

نظر، سوال یا تجربه خود را درباره این مطلب با سایر کاربران اوکالا به اشتراک بگذارید.

💭

هنوز دیدگاهی برای این مقاله ثبت نشده است. اولین نفری باشید که نظر خود را به اشتراک می‌گذارد!

✍️ ثبت نظر یا پرسش جدید

⚡ بدون نیاز به ثبت‌نام یا ایمیل؛ تنها نام خود را وارد کنید:

🔒 دیدگاه شما بلافاصله بررسی و منتشر می‌شود.