Знаменитый вопрос «А запустится ли Doom?» теперь применим к базам данных: автор DOOMQL представил гораздо более точный визуально порт.
Есть поговорка: «Бойся своих желаний». В 2025 году мы написали статью о том, как один специалист по базам данных создал версию Doom, написанную на SQL. Это было интересно, но графика была ближе к 3D Monster Maze, чем к пиксельному шутеру 90-х. Мы тогда прокомментировали: «Если заставить SQL выполнять весь конвейер рендеринга — это „плохая идея“, то мы с нетерпением ждем по-настоящему ужасную».
И вот мы здесь. Автор, Лукас Фогель, снова взялся за дело и портировал на SQL как игровую логику, так и рендерер Doom, запустив их в базе данных. Python отвечает за тайминги, ввод с клавиатуры и отображение растровых изображений, но остальное обеспечивается SQL-запросами и базой данных CedarDB.
DOOMQL был, несомненно, впечатляющим проектом. Однако Фогель рассказал The Register: «Кто-то на Hacker News жаловался в прошлом году, когда я сделал первую итерацию, что она больше похожа на Wolfenstein, потому что я использовал рейкастинг вместо обхода BSP-дерева, что было *тем самым* , что сделало Doom революционным.
«Так что я, очевидно, не мог этого оставить так».
И это привело нас к SQLDoom. Doom, портированный на SQL. В своем блоге Фогель отметил основные правила для порта. В отличие от DOOMQL, этот должен был выглядеть как настоящий Doom. Рендеринг должен был быть чисто на основе SQL: «единственным допустимым выводом SQL является таблица или растровое изображение, кодирующее точные значения RGB для каждого пикселя», а игровой цикл также должен был быть чисто на основе SQL.
Фогель рассказал нам: «Я был очень рад обнаружить, что портировать настоящий Doom было а) возможно и б) производительность оказалась даже *лучше*, чем у гораздо более упрощенного подхода прошлого года!
«Кроме того, в какой-то момент я начал играть в него ради удовольствия в свободное время, что до сих пор вызывает очень странные ощущения. Я задумывал это как техническую демонстрацию, но это ощущается как настоящий Doom, хотя он и не разделяет ни строчки кода с каким-либо существующим портом Doom. Поэтому я хотел посмотреть, как далеко я смогу зайти.
«В итоге мне даже удалось заставить работать режим deathmatch».
По словам Фогеля, игра отлично играется на его ноутбуке (с процессором Ryzen 7 7840U), а многопользовательские игры можно проводить онлайн, используя серверы в ЕС и США. Мы обнаружили, что производительность серверов немного вялая — вероятно, больше из-за серверов, чем из-за порта — хотя заставить SQL выполнять такие трюки всего несколько лет назад было бы немыслимо.
Стоит помнить, что это лишь завуалированная демонстрация возможностей CedarDB. Это компилируемая система баз данных, где сложные запросы в конечном итоге компилируются в машинный код. Тем не менее, трудно не поддаться энтузиазму Фогеля и тому факту, что это Doom… работающий в базе данных.
Безусловно, это гораздо интереснее, чем воссоздавать очередной интернет-магазин для очередной бесконечной презентации. ®
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Richard Speed




