Я портировал Carmageddon в браузер

от автора

Решил я поиграть на выходных в Carmageddon. Но вот незадача!- Заводить всё это в эмуляторе DosBox нет никакого желания (он стоит у меня для других целей, ну вы понимаете))- То что мы с Сашей Гурьяновым делали на DosZone у меня тормозит, так как не вывозит мой старенький процессор. Пора уже собрать комп для нашей ДОС Зоны))- Ремейки типа Carmageddo: Max Damage и Reincarnation полная фигня. Куплено в стиме и полно разочарования

Что же делать? Будем сами портировать в браузер! Всё как мы любим. Для эксперимента и развлечения ради!

Так как исходников нет, то за основу был взят фанатский проект по декомпилированию оригинальной игры — Dethrace.И хотя они его декомпилировали приблизительно на 70% это меня не остановило, так как все основные и ключевые функции игры работают и сейчас та команда достает из файлов только сетевую часть и что то еще по мелочи, что мне не понадобилось.

Технологическая цепочка порта такая: Это скомпилированный реверс-инжиниринговый движок Dethrace (v0.10.1) + Emscripten + рендеринг через WebGL 2 (на базе BRender) и звук через Web Audio (библиотека miniaudio). Подробнее можно прочитать на GitHub, всё залил туда.

Готовая рабочая сборка получилась уже буквально через час. А дальше я начал шлефовать различные баги, так как игра выдавала максимум 15-20фпс, звук не работал вообще, а меню очень сильно мерцало. Пришлось очень долго копаться с Asyncify.

И вот спустя пары вечеров я получил офигительный браузерный порт Carmageddon. Всё как надо, 60fps и улучшенный рендер аля оригинальный 3Dfx. Ну и я избавился от совершенно дурацкого оригинального управления на NUMPAD и сделал классическое гоночное на стрелках клавиатуры

Поиграть можно здесь

Видео геймплея

ссылка на оригинал статьи https://habr.com/ru/articles/1056454/