Технологии

Doom, полностью отрисованный в базе данных SQL, достиг 35 FPS

Doom, полностью отрисованный в базе данных SQL, достиг 35 FPS

Введение

В замечательном проявлении технической изобретательности разработчик Лукас Фогель сумел полностью отрисовать культовый шутер от первого лица Doom внутри базы данных SQL. Этот амбициозный проект под названием SQLDoom не только демонстрирует удивительные возможности реляционных баз данных для задач, выходящих далеко за рамки типичного управления данными, но и раздвигает границы того, что ранее считалось возможным в разработке игр с использованием таких нетрадиционных инструментов. Результатом стала играбельная версия Doom с полноцветной графикой и достойной частотой кадров.

Ключевые детали

  • Название проекта: SQLDoom
  • Основная технология: База данных SQL (CedarDB) для игровой логики и состояния.
  • Частота кадров: Достигает 35 кадров в секунду (FPS).
  • Разрешение: Отрисовка в разрешении 640x480.
  • Графика: Полноцветные растровые фреймбуферы.
  • Реализация: Использует клиент Python для ввода/вывода и синхронизации, а также примерно 1300 строк SQL-запросов в 89 общих табличных выражениях (CTE) для реализации игровой логики.
  • Хранение данных: Геометрия и состояние игры хранятся в таблицах CedarDB.

Предыстория

Это не первая попытка Фогеля в области игр, управляемых базами данных. В прошлом году он разработал DoomQL — предыдущий проект, целью которого было создание многопользовательского шутера в стиле Doom полностью на SQL. Однако DoomQL был значительно ограничен, выдавая только монохромную ASCII-графику и используя движок рейкастинга, напоминающий старые игры, такие как Wolfenstein 3D. Визуальный вывод был рудиментарным, ему не хватало детализации и цвета оригинального Doom. SQLDoom представляет собой существенный скачок вперед, преодолевая ограничения своего предшественника и обеспечивая гораздо более визуально точный и производительный опыт.

Анализ воздействия

Успех SQLDoom многогранен. Во-первых, он подчеркивает потенциал творческого решения проблем в разработке программного обеспечения, демонстрируя, как существующие, часто жесткие, технологии могут быть перепрофилированы для совершенно новых приложений. Во-вторых, он служит уникальным ориентиром для производительности и возможностей современных SQL-баз данных, демонстрируя их способность решать сложные вычислительные задачи. Способность генерировать 35 полноцветных кадров в секунду в среде базы данных является свидетельством лежащей в основе эффективности выбранной системы баз данных и хитрости реализации SQL. Подход Фогеля к преобразованию WAD-файлов Doom, разбивая геометрию уровней на вершины, линии и секторы, оказался очень адаптируемым к структурам SQL. Даже сложные элементы, такие как деревья бинарного пространства разделения, управлялись путем предварительного вычисления ключей сортировки, что позволяло простым SQL-запросам «ORDER BY» определять порядок отрисовки и видимость, тем самым оптимизируя производительность.

«Отрисовка Doom в базе данных — это, очевидно, плохая идея», — пишет Лукас Фогель в подробном посте в блоге, объясняя, как именно ему удалось отрисовать Doom с помощью базы данных SQL.

Более широкий контекст

Концепция запуска сложного программного обеспечения, особенно игр, в неожиданных средах имеет долгую историю, часто движимую любопытством и желанием проверить технологические пределы. От запуска Doom на калькуляторах до его отрисовки на нетрадиционных дисплеях — разработчики постоянно стремились бросить вызов нормам. SQLDoom вписывается в эту линию, но с уникальным поворотом: он использует структурированную, ориентированную на данные природу реляционных баз данных. Хотя это непрактичный способ коммерческой разработки или игры, SQLDoom служит мощным доказательством концепции. Он подчеркивает, что грань между хранением данных и вычислениями становится все более размытой, и что инструменты, которые мы используем для одной цели, иногда могут быть удивительно пригодны для другой.

Будущие перспективы

Хотя SQLDoom вряд ли породит новый жанр нативных для баз данных игр, работа Фогеля может вдохновить на дальнейшее исследование нетрадиционных вычислительных парадигм. Это может побудить разработчиков более творчески подходить к управлению игровой логикой и состоянием, потенциально приводя к инновациям в таких областях, как распределенные вычисления или специализированная обработка данных. Методы, разработанные для SQLDoom, особенно эффективное преобразование геометрических данных и логики рендеринга в SQL-запросы, могут найти нишевые применения в областях, требующих сложной манипуляции данными и визуализации в контексте базы данных. Для более широкого игрового сообщества это остается увлекательным, хотя и неортодоксальным, достижением, которое вызывает разговоры и удивление.

Заключение

Проект SQLDoom Лукаса Фогеля — это свидетельство человеческой изобретательности и удивительной универсальности технологий. Успешно отрисовав Doom в базе данных SQL с играбельной частотой кадров, он не только воссоздал любимую классику в совершенно новой среде, но и бросил вызов общепринятым представлениям о возможностях баз данных. Хотя практическое применение может быть ограничено, влияние проекта заключается в демонстрации творческого решения проблем и его способности раздвигать границы вычислительного искусства и инженерии. SQLDoom является запоминающимся примером того, как сделать кажущееся невозможным возможным.