arzh-CNenfrdejakoplptesuk
Search find 4120  disqus socia  tg2 f2 lin2 in2 X icon 3 y2  p2 tik steam2

DOOMQL: многопользовательский шутер в стиле DOOM, написанный на SQL, запускается в 30 FPS

Программист Лукас Фогель, сооснователь CedarDB, создал необычную версию DOOM — многопользовательский шутер DOOMQL, реализованный почти полностью на “чистом SQL”. Игру с разрешением 128×64 пикселя и скоростью ~30 FPS дополняет минимальный Python-клиент всего на 150 строк, который обрабатывает ввод и отображает 3D-проекцию через базу данных.

DOOMQL

Игра вдохновлена проектом DuckDB-DOOM от Патрика Трейнера, где также использовалась SQL-логика, но для отрисовки и управления применялся JavaScript. В отличие от него, DOOMQL полностью использует SQL для визуализации и обработки управления, что делает архитектуру проекта уникальной и «честной», по словам Фогеля. Несмотря на минимализм, DOOMQL обеспечивает стабильную частоту кадров и мультиплеер, тогда как DuckDB-DOOM работает в браузере при ~8 FPS и меньшем разрешении.

Архитектура проекта включает хранение игрового состояния в таблицах, отрисовку через SQL-вьюхи с реализацией рейтрейсинга, а игровой цикл реализован в виде шелл-скрипта, который запускает SQL-файл примерно 30 раз в секунду. Этот необычный подход позволил достичь плавности и функциональности, недоступной многим аналогичным экспериментам.

DOOMQL разрабатывался во время отпуска по уходу за ребёнком и стал для автора способом глубже понять возможности SQL. Код проекта выложен на GitHub под лицензией MIT, и его можно запустить локально через Docker и Python. Автор обещает улучшения: появятся AI-соперники, система лута, новые виды оружия и улучшенная клиентская часть. Фогель также подталкивает энтузиастов попробовать обогнать CedarDB по производительности — как минимум, в рендеринге SQL-DOOM.

Топ материалов GameGPU