Doom запускается на всем, включая Neo Geo
Около месяца назад мы выпустили ролик [доступен также перевод на SE7ENе], посвященный техническим трудностям портирования Doom на консоль Neo Geo. Основная проблема заключается в архитектуре системы: у Neo Geo отсутствует классический буфер кадра, поэтому любой графический объект рендерится исключительно как спрайт. В том видео я делился наработками по созданию рейкастинг-движка, который неплохо чувствовал себя на этом железе. Концепция сводилась к отрисовке сетки из блоков, где для каждого вертикального ряда пикселей испускался луч. Разработчик Sabino даже представил любопытный прототип игры, вдохновленной стилистикой Doom.
Однако рейкастинг — это не полноценный движок Doom. Рейкастер ограничен сеткой из квадратных блоков, что исключает стены под произвольными углами, разноуровневые полы, лестницы и лифты. В проекте Sabino даже повороты за угол выглядели неестественно, что делало невозможным воссоздание таких культовых уровней, как E1M1: The Hangar.
К моему восторгу, сага о «Doom на Neo Geo» получила продолжение. Как я отметил в следующем выпуске, сообщество всерьез взялось за задачу, предложив принципиально новые подходы.
Первый из них — проект Doom 64 KB от энтузиаста FrenkelS. Это настоящий Doom, работающий на реальной BSP-геометрии карт без каких-либо упрощений. Разработчик буквально оптимизировал оригинальный код рендеринга так, чтобы он вписался в жесткие рамки Neo Geo.

Как это реализовано при отсутствии буфера кадра? FrenkelS хитроумно задействовал текстовый слой (fix layer), который обычно отводится под интерфейс, в качестве импровизированного микро-буфера. Зрители под первым видео оказались правы: этот метод действительно позволяет реализовать рендерер.
Результат впечатляет: E1M1 работает в разрешении 38 на 28 блоков, при этом сам код игры остался нетронутым. Пускай производительность далека от идеала, но это полноценный Doom!
Дальше — больше. Sabino, автор предыдущих экспериментов, предложил концепцию «спрайтового микро-буфера». Вместо текстового слоя он использует аппаратный блок масштабирования спрайтов, собирая картинку из крошечных блоков 4 на 4. Это позволило поднять разрешение до 80 на 56 пикселей. Картинка стала четче, а мозаичность заметно снизилась, правда, ценой возросшей нагрузки на процессор. С выходом новой реплики Neo Geo AES+, оснащенной функциями разгона, такие решения могут стать еще более жизнеспособными.

Второй проект, заслуживающий внимания, — Doom-NG от Retro Ports. Здесь используется движок VSlice. В отличие от стандартного рейкастинга, он опирается на обход настоящего BSP-дерева Doom. CPU определяет геометрию пространства и видимые объекты, а аппаратный блок масштабирования спрайтов берет на себя отрисовку. Это избавляет от зависимости от сетки и позволяет свободно исследовать реальные уровни Doom.

Разумеется, не обошлось без компромиссов: полы и потолки статичны (используются LUT-таблицы), дальние участки скрыты туманом для оптимизации, а текстуры обрабатываются блоками. Однако при запуске всех девяти уровней первого эпизода эффект присутствия поражает — это действительно Doom на Neo Geo.
Подводя итог: у нас есть два разных, но одинаково амбициозных подхода. Doom 64 KB делает ставку на «грубую силу» и полноценный рендерер, в то время как VSlice эффективно эксплуатирует возможности аппаратного скейлинга спрайтов. Ни один из них еще не готов к релизу, но это доказывает главное: при наличии инженерного таланта даже на архитектуре, не предназначенной для этого, можно совершить невозможное.

Огромное спасибо FrenkelS и Retro Ports за их вклад. Ознакомьтесь с их репозиториями, ставьте звезды и, если есть желание, попробуйте свои силы в улучшении кода. История продолжается!
Ссылки
https://github.com/5f9yhmc6cz-spec/doom-ng
https://github.com/FrenkelS/Doom64KB
https://github.com/sabino/DoomGeo
THQ Nordic показала геймплейный трейлер мобильной версии Disney Epic Mickey: Rebrushed
Президент Bandai Namco заявил, что благодаря играм франшиза Digimon достигла рекордной прибыли за 26 лет
Разработчики Fearless Fox подали признаки жизни на фоне ожидания новой игры от Team Cherry
Вышел экспериментальный эмулятор ARMSX3 для запуска PlayStation 3 на Android
Тираж Yu-Gi-Oh! Master Duel превысил 100 миллионов загрузок, в честь чего Konami запустила раздачу подарков
Релиз JoJo’s Bizarre Adventure: Golden Spirit состоится 13 августа, а разработчики представили новые трейлеры
Инсайдер сообщил о подготовке двух секретных спецвыпусков Marvel на 2027 год
Для Reanimal выпустили первое дополнение с новой жуткой историй