adblock check

DOOM запустили на регулярных выражениях — можно скачать демо-версию

Регулярные выражения превратили в полноценный игровой движок и показали, насколько далеко можно выйти за пределы их привычного применения

Разработчик с ником 4RH1T3CT0R7 представил необычный эксперимент под названием doom-regex, который продемонстрировал, что культовую игру DOOM можно запустить с помощью регулярных выражений (regex). Это специальный язык шаблонов для поиска, проверки и изменения текста, который в данном случае используется вместо процессора. Автор создал специальный генератор, который преобразует игровые данные в одну очень длинную строку размером 96,6 МБ. Затем обычный regex-движок выполняет поиск совпадений, а сам процесс сопоставления шаблонов используется для вычисления следующего состояния игры. Другими словами, регулярные выражения становятся своеобразной машиной, способной выполнять логику игрового движка.

Регистры, ОЗУ, буфер кадров, движок DOOM и WAD находятся в одной строке в виде обычного текста, а небольшой драйвер постоянно применяет к ней фиксированный, упорядоченный список правил. Каждое состояние игры, положение объектов, действия игрока и другие элементы кодируются в виде последовательностей символов, после чего заранее сгенерированное регулярное выражение определяет, каким должно быть следующее состояние. Таким образом, вместо обычного выполнения программного кода используются операции поиска и замены.

DOOM запустили на регулярных выражениях — можно скачать демо-версию
GIF-анимация доступна по нажатию

Фактически такая реализация не является играбельной: регулярное выражение имеет большой размер, требует много памяти и вычислительных ресурсов. Скорость работы тоже очень низкая, во время записи демонстрационного видео обработка кадра занимала 3 минуты, при этом одновременно было задействовано пять машин. По словам разработчика, цель проекта заключалась в демонстрации вычислительной мощности регулярных выражений, которые при определенных условиях способны выполнять значительно более сложные задачи.

Исходный код, файлы и техническая документация опубликованы в открытом доступе на GitHub, там же можно скачать демо. В репозитории подробно описано, как создаётся регулярное выражение, каким образом кодируется состояние игры и какие есть ограничения. Этот проект стал очередным подтверждением старой шутки о том, что если какая-либо система работает, то на ней можно запустить DOOM.

Источник

Svidetel Автор
Гейминг Гейминг
30,3K участников
Вступить
2 комментария по лайкам по дате
Оставьте комментарий...
Оставьте комментарий...
petrovskiypetrow
35 минут
Этот Doom уже почти везде можно запустить.😐️
Limows
Маленькая победа для фанатов регулярок))