Завдяки винахідливому коду та компромісам у графіці класичну гру вдалося запустити на більшій кількості класичного обладнання.
Це впізнаваний Doom, попри смугастий дисплей. Джерело: MVG / Doom-NG
Минулого місяця ми повідомляли про впевнене твердження Modern Vintage Gamer (MVG) про те, що Doom технічно неможливо запустити на Neo Geo через орієнтованість консолі на спрайт-графіку та відсутність кадрового буфера. Але ми мали б знати краще, ніж казати відданій групі хакерів, що щось «неможливо», адже два нещодавні проєкти досягли значного прогресу в створенні робочих портів Doom на стандартному обладнанні Neo Geo.
Обидва ці проєкти мають суттєві графічні компроміси, які обмежують їхню життєздатність як комерційного порту для консолі 90-х років, як показує MVG у новому відео. Проте вони є свідченням дивовижних результатів, яких винахідливі та наполегливі кодери можуть досягти на застарілому обладнанні.
Виглядає як Doom, якщо примружитися
Для створення проєкту Doom64KB для Neo Geo кодер FrenkelS адаптував попередній порт Doom, який він розробив для 16-бітних процесорів ПК, таких як 8088 і 286. Використовуючи цей рушій, код для Neo Geo створює своєрідний прото-кадровий буфер із фіксованого шару консолі (fix layer) — області пам’яті дисплея, яка зазвичай використовується для відображення меню та HUD поверх ігрового процесу.
Якщо Doom зазвичай виглядає для вас так, негайно зверніться до лікаря. Джерело: Doom64KB Рендеринг у цей фіксований шар дозволяє рушію Doom64KB анімувати відносно плавний варіант карт Doom, хоча й з використанням великих квадратних плиток розміром 8×8 пікселів з ефективною роздільною здатністю 28×32 (і лише 16 кольорів, що обмежує ефект «згасання світла», коли стіни віддаляються). Невелика модифікація тієї ж ідеї створює кадровий буфер із пам’яті спрайтів Neo Geo, збільшуючи ефективну роздільну здатність до 80×56 шляхом використання блоків 4×4 пікселі. Хоча це збільшення досягається помітною втратою частоти кадрів, ситуація може покращитися з подальшою оптимізацією або з розігнаним обладнанням, як-от у майбутній Neo Geo AES+.
Тим часом проєкт Doom-NG працює подібно до спрайт-стріп-рейскастера, який MVG обговорював як потенційний варіант у своєму початковому відео про Doom на Neo Geo. Хоча той рейскастер працював лише з простими сітками з прямими кутами, як у Wolfenstein 3D, рендерер VSlice у Doom-NG обробляє складнішу геометрію, проходячи через BSP-дерево карти Doom, щоб визначити, які стіни та інші об’єкти видимі з точки зору гравця. Потім рендерер використовує обладнання Neo Geo для ефективного масштабування спрайтів у смуги шириною 16 пікселів, симулюючи розмір і положення стіни в цьому стовпці екрану.
Це впізнаваний Doom, попри смугастий дисплей. Джерело: MVG / Doom-NG Результатом є точне, хоч і смугасте, візуальне представлення перспективи гравця Doom, яким можна вільно керувати з відносно високою частотою кадрів. Однак графічні обмеження цього методу рендерингу доволі очевидні на стінах і дверях, з відволікаюче повторюваними текстурами та похилими поверхнями, що мають незграбні «сходинкові» краї, особливо на близькій відстані.
Обидва ці проєкти ще на дуже ранніх стадіях розробки і потребуватимуть подальших доопрацювань для додавання важливих елементів, таких як логіка ворогів, музика та вибір зброї. Але навіть у такому недоопрацьованому стані спільнота портування продемонструвала, наскільки ефективно вона може вирішити проблему, коли поставлено «неможливе» завдання.
Джерело новини: arstechnica.com
