Представлен публике инициатива DOOMQL (SELECT * FROM HELL) — Doom в SQLite

2 мин
Представлен публике инициатива DOOMQL (SELECT * FROM HELL) — Doom в SQLite

Представлен публике публичный инициатива под названием DOOMQL (SELECT * FROM HELL). Это играбельный шутер от первого лица, буфер кадров которого представляет собой SQL-запрос в SQLite. Исходный исходник решения написан на Python и опубликован под лицензией MIT.

«DOOMQL начался с намеренно неразумного вопроса: что, если бы SQLite был игровым движком, а не просто местом хранения данных в игре? В результате получилась небольшая оригинальная игра в стиле Doom, в которой SQL управляет движением, столкновениями, врагами, боем, прогрессом и каждым пикселем RGB на экране. Здесь нет SVG, браузера, Canvas или игрового движка, а играбельная среда выполнения не содержит графического кода на Python», — пояснил автор проекта.

Как SQL превращается в изображение? Для каждого кадра SQL считывает таблицы игрока и карты и выдаёт одну строку на пиксель:

Второе представление SQL преобразует эти строки RGB в цветные блоки терминала ▀. Сервер Python не выполняет отрисовку: он передает в SQLite необработанные ключи, время и размер терминала, а затем выводит итог выполненного запроса без изменений.

Цельный видимый кадр возвращается одним запросом:

SELECT scanline FROM render_frame ORDER BY y;

DOOMQL — это оригинальный рейкастер, похожий на Doom, а не порт Doom. Он не содержит кода Doom, данных WAD, карт, графики, аудио или логотипов и не связан с id Software или её издателями и не поддерживается ими.

Финальное физическое отображение выполняется терминалом. SQL вычисляет каждое значение RGB и выдаёт каждую инструкцию цвета терминала; Python записывает эти байты без изменений. Рассматривайте пользовательские базы данных как доверенные входные данные.

Модифицированная база данных может заменить сохранённый SQL-код во время выполнения и внедрить текст в терминал, поэтому не открывайте недоверенные файлы с параметром --db.

Тригонометрия с плавающей запятой может немного отличаться в сборках SQLite и math-library, поэтому детерминированное воспроизведение гарантируется только в одной и той же среде.

Читают сейчас

Астрономы обнаружили маленькие красные точки, готовящиеся к слиянию

15 минут назад

Астрономы обнаружили маленькие красные точки, готовящиеся к слиянию

Существует мнение, что в крупных галактиках современной Вселенной находятся сверхмассивные чёрные дыры (СМЧД). Тем не менее точно неизвестно, как именно эти чёрные дыры стали столь массивными, хотя ас

Вышел альфа-релиз Paint.NET 5.2 с экспериментальной поддержкой Wine/Linux

2 часа назад

Вышел альфа-релиз Paint.NET 5.2 с экспериментальной поддержкой Wine/Linux

1 сентября 2026 года состоялся выпуск альфа-версии графического редактора с открытым исходным кодом Paint.NET 5.2 для Windows 10/11 (64-бита) и с экспериментальной поддержкой Wine/Linux (Wine 11.14, U

2 часа назад

Операционная платформа «Альт Образование» бесплатна для школ — акция от «Базальт СПО»

Операционная платформа «Альт Образование» бесплатна для школ — акция от «Базальт СПО» Организация «Базальт СПО» запускает специальное предложение для школ: операционная система «Альт Образование» 11 п

Google добавила агентный аналитика видео в Gemini 3.7 Flash, 3.6 Flash и 3.5 Flash-Lite

2 часа назад

Google добавила агентный аналитика видео в Gemini 3.7 Flash, 3.6 Flash и 3.5 Flash-Lite

Google запустила агентный анализ видео для Gemini 3.7 Flash, 3.6 Flash и 3.5 Flash-Lite. Теперь модель анализирует видео не как последовательность кадров с фиксированной частотой, а сама решает, какие

Апдейт платформы «Октопус» от ГК «Юзтех»: историческая анализ и расширенная сопровождение инфраструктур

3 часа назад

Апдейт платформы «Октопус» от ГК «Юзтех»: историческая анализ и расширенная сопровождение инфраструктур

В новых версиях «Октопус» мы сфокусировались на трёх направлениях: расширении возможностей управления ИТ-инфраструктурой, повышении производительности и развитии интеграций. Система получила новые сце