Все новости
Это интересно
Сейчас читают
Игры
Аватар Evernews Evernews

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

0
0
Поделиться
Телеграфировать

Без распараллеливания процесс будет идти еще дольше.

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

Программист Артем Лыткин запустил Doom внутри системы, построенной на регулярных выражениях. Вместо обычного процессора и памяти игра использует гигантскую текстовую строку, все вычисления выполняются через поиск и замену символов.

Строка весит 96 мегабайт, внутри находятся виртуальные регистры процессора, оперативная память, кадровый буфер, данные WAD-файла Doom и другие данные. Технически, рассказывает Артем, все устроено довольно просто.

Артем Лыткин

Драйвер применяет к строке фиксированный упорядоченный список правил поиска с заменой: на каждом шаге срабатывает первое совпавшее правило, и срабатывает ровно один раз. Больше в системе не считается ничего, на стороне хоста нет ни интерпретатора, ни арифметики, и если удалить все правила, от машины останется просто текстовый файл.

Правила набора реализуют небольшой 32-битный процессор, где сложение идет через таблицу-сумматор на 512 записей, перенос протаскивается группами захвата, а выборка инструкции устроена как буквальный прыжок на точное число символов вглубь секции программы, посчитанное из счетчика команд. DOOM скомпилирован под этот процессор связкой 8cc и ELVM.

Работает такое решение очень медленно. Один из тестовых роликов записывался с помощью 5 машин, работавших параллельно, при этом обсчет одного кадра занимал 3 минуты. Зато картинка, которую выдает эта система, полностью совпадает с тем, что можно увидеть в реальной игре.

Исходники необычного проекта опубликованы в открытом доступе.

Читать далее
GTA VI будет стоить $80 — берем?
Берем сразу Ultimate за $100
77 голосов, 15.7%
Берем базовое издание
67 голосов, 13.6%
Ждем скидку, и вот тогда — берем
46 голосов, 9.4%
Подождем выхода на ПК и возьмем бесплатно
206 голосов, 42.0%
Вообще не буду в нее играть
95 голосов, 19.3%
Теги: Игры
Аватар Evernews
Evernews
8090 подписчиков