HeadlinesBriefing HeadlinesBriefing.com

Lukas Vogel рендерит Doom в SQL

Ars Technica •
×

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

SQLDoom является значительным улучшением по сравнению с предыдущим проектом Vogel, Doom QL, который создавал "многопользовательский шутер, похожий на Doom, полностью на SQL", но заканчивался графикой в оттенках серого ASCII. Новый SQLDoom генерирует полноцветные кадры 640×480, напоминающие оригинальный исполняемый файл Doom.

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

Ключевые сущности: Компании: Ars Technica | Люди: Lukas Vogel

Источник: Ars Technica · Сводку подготовил HeadlinesBriefing