Перейти к содержанию
Русский
Материал FikirPilot

Злоупотребление SQL, чтобы играть в DOOM

Обновлено: 26.09.2026 · 2 мин чтения · 330 слов

Опубликовано: · Новость поступила: · Время обработки: 4 мин

Злоупотребление SQL, чтобы играть в DOOM
Тёмный коридор центра обработки данных

Хотя большинство людей воспринимает SQL как инструмент для управления большими наборами данных, по своей сути это язык программирования, обладающий возможностями, характерными для языков общего назначения, таких как C или Python. Несмотря на то что он не предназначен для использования общего назначения, SQL способен выполнять неожиданные задачи. Чтобы продемонстрировать эту возможность, команда CedarDB перенесла оригинальную DOOM на SQL. Данные WAD — то есть почти всё, кроме самого движка, — хранились в таблицах. Сложнее было сохранить частоту 35 кадров в секунду и рендерить изображения: раздел рендеринга состоит из 1300 строк SQL, распределённых между 89 общими табличными выражениями (CTE). В остальной части проекта используется 4000 строк SQL и немного Python для обработки клавиатуры, таймеров и растровых изображений. Отсутствие в DOOM настоящего 3D и тот факт, что игра была разработана до появления графических карт, обеспечивают преобразования данных, подходящие для SQL. Код опубликован на GitHub; кроме того, существуют версии, созданные с использованием регулярных выражений и Microsoft Word.

Почему это важно

Эта работа показывает, что представление о SQL исключительно как о средстве запросов к данным и управления ими может не отражать в полной мере выразительные возможности языка. В частности, для разработчиков баз данных и тех, кто изучает границы языков программирования, это конкретный пример того, как необычную рабочую нагрузку, такую как игровая логика, можно моделировать с помощью реляционных структур. Определяющую роль в том, что это стало возможным, сыграли особенности DOOM, не использующего настоящее 3D, и тот факт, что игра была разработана до появления графического оборудования; следовательно, полученный результат не означает, что любое графическое приложение будет работать с SQL аналогичным образом. Код на GitHub, а также другие версии, подготовленные с использованием регулярных выражений и Microsoft Word, показывают, как одну и ту же идею можно проверять с помощью разных инструментов. Открытым остаётся вопрос о том, для каких практических задач этот подход может иметь смысл за пределами занимательной демонстрации.

Предыстория

DOOM — не новое имя в архиве FikirPilot: за последние 90 дней мы опубликовали 3 новости, в которых упоминалось это имя; самая свежая из них датирована 15 сентября 2026 года.

Источник: Hackaday