В прошлом месяце мы поделились уверенным заявлением Modern Vintage Gamer (MVG) о том, что Doom функционально невозможно запустить на Neo Geo из-за спрайтовой архитектуры дисплея консоли и отсутствия кадрового буфера. Нам следовало знать, что не стоит говорить преданной группе хакеров, что что-то «невозможно», поскольку два недавних проекта добились значительного прогресса в создании функциональных портов Doom на стандартном оборудовании Neo Geo.
Оба этих проекта имеют существенные графические компромиссы, которые ограничивают их жизнеспособность в качестве коммерческого консольного порта 90-х годов, как объясняет MVG в новом видео. Тем не менее, они служат свидетельством удивительных результатов, которых могут добиться умные и целеустремленные программисты на устаревшем оборудовании.
Выглядит как Doom, если прищуриться
Для создания проекта Doom64KB для Neo Geo программист FrenkelS адаптировал более ранний порт Doom, который он разработал для работы на 16-битных процессорах ПК, таких как 8088 и 286. Используя этот движок, код Neo Geo затем создает своего рода прото-кадровый буфер из фиксированного слоя консоли — области видеопамяти, обычно используемой для отображения меню и HUD-информации поверх игрового процесса.

Рендеринг в этот фиксированный слой позволяет движку Doom64KB анимировать относительно плавную версию карт Doom, хотя и с использованием крупных пиксельных тайлов 8×8 при эффективном разрешении 28×32 (и всего 16 цветов, что ограничивает эффект «затухания света» по мере удаления стен вдаль). Небольшая модификация той же идеи строит кадровый буфер из спрайтовой памяти Neo Geo, увеличивая эффективное разрешение до 80×56 за счет блоков 4×4 пикселя. Хотя это увеличение заметно сказывается на частоте кадров, ситуация может улучшиться с дальнейшей оптимизацией или на разогнанном оборудовании, таком как грядущий Neo Geo AES+.
Тем временем проект Doom-NG работает аналогично спрайтовому рейкастеру, который MVG обсуждал как потенциальный вариант в своем оригинальном видео о Neo Geo Doom. В то время как тот рейкастер работал только с простыми сетками под углом 90 градусов в стиле Wolfenstein 3D, рендерер VSlice в Doom-NG обрабатывает более сложную геометрию, проходя по BSP-дереву карты Doom, чтобы определить, какие стены и другие объекты видны с точки зрения игрока. Затем рендерер использует оборудование Neo Geo для эффективного масштабирования спрайтов в полоски шириной 16 пикселей, имитируя размер и положение стены в этом столбце экрана.

Результат — точное, хоть и полосатое, визуальное представление перспективы игрока в Doom, по которому можно свободно перемещаться с относительно высокой частотой кадров. Однако графические ограничения этого метода рендеринга довольно очевидны на стенах и дверях: раздражающе повторяющиеся текстуры и угловые поверхности с неловкими «ступенчатыми» краями, особенно вблизи.
Оба проекта все еще находятся на ранней стадии и потребуют дальнейших доработок для добавления важных элементов, таких как логика врагов, музыка и выбор оружия. Однако даже в таком необработанном состоянии сообщество портирования показало, насколько эффективно оно может решать проблему, когда брошена «невозможная» перчатка.
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Kyle Orland




