Top.Mail.Ru
Разработчик создал полноцветную версию Doom на базе SQL и CedarDB с Python-клиентом — RuSamara | Информационная лента

Разработчик создал полноцветную версию Doom на базе SQL и CedarDB с Python-клиентом

3 октября 2026, 01:45 ·

Разработчик Лукас Фогель запустил Doom внутри базы данных CedarDB, используя язык SQL. Подробности проекта он раскрыл в блоге CedarDB, где отметил: «Рендеринг Doom в базе данных — очевидно, плохая идея». Несмотря на это, эксперимент позволил воспроизводить игру с полноценной графикой.

Проект SQLDoom не обходится без небольшого клиента на Python. Он принимает действия игрока, управляет временем игрового процесса и выводит кадры на экран. Основная логика при этом размещена в таблицах CedarDB, а примерно 1300 строк SQL-запросов, объединённых в 89 общих табличных выражений, отвечают за состояние игры и формирование изображения.

Система создаёт 35 кадров в секунду. В отличие от предыдущего проекта Фогеля DoomQL, новая версия формирует цветные изображения разрешением 640×480. Они значительно ближе к графике оригинального Doom, чем результат прошлогоднего эксперимента.

DoomQL задумывался как многопользовательский шутер, полностью реализованный на SQL. Однако тогда разработчику удалось получить лишь чёрно-белую ASCII-графику на основе трассировки лучей. Визуально она больше напоминала простые карты с прямыми углами из Wolfenstein 3D.

Перенос файлов WAD в реляционную базу данных оказался сравнительно простым благодаря структуре уровней Doom. Игровые карты уже разделены на вершины, линии, сектора и другие элементы, которые удобно представить в виде записей таблиц. Даже деревья двоичного разбиения пространства можно описать средствами SQL.

Для объектов заранее рассчитывается специальный ключ сортировки, связанный с их положением. Затем запрос ORDER BY определяет, какие участки стен нужно показать в конкретном кадре, а какие можно пропустить. Такой подход позволяет ускорить обработку изображения и выполнять рендеринг игры средствами базы данных.