Nintendo 64 с 1996 года имеет репутацию консоли с отличными играми, но ужасным туманом. Эта серая стена, скрывающая все за пределами 20 футов, была не стилистическим решением. Это было аппаратное ограничение, с которым сталкивался каждый разработчик, работавший на платформе, и большинство просто смирилось. В течение 30 лет никто не мог придумать, как обойти это в большом масштабе.
Разработчик James Lambert только что это сделал.
Проблема тумана N64 наконец-то объяснена
Lambert, который ранее создал Portal 64 (демейк, работающий на реальном оборудовании N64) и ромхак Super Mario 64 с поддержкой VR, теперь обратил свое внимание на проект для геймджема под названием Junkrunner 64. Игра работает на реальном оборудовании N64 и на высокоточных эмуляторах, включая Ares, и в ней есть то, чего никто не ожидал увидеть на платформе: дальность прорисовки, сравнимая с The Elder Scrolls V: Skyrim, RPG с открытым миром от Bethesda 2011 года, которая работала на оборудовании, выпущенном через 15 лет после N64.
"Вы можете стоять на одном углу карты и видеть ее до другого конца", — говорит Lambert в своем видеообзоре. Когда он накладывает сравнение размеров, карта Junkrunner 64 абсолютно затмевает мир The Legend of Zelda: Ocarina of Time на той же платформе. Ближайший эквивалент по масштабу? Skyrim.
Техническая причина всего этого тумана N64 называется Z-fighting. Z-буфер консоли, который отслеживает глубину объектов, чтобы они рендерились в правильном порядке, просто недостаточно точен для обработки удаленной геометрии. По мере того, как объекты удаляются от камеры, N64 теряет контроль над тем, какой из них ближе, и объекты начинают рендериться в неправильном порядке. Удаленная гора рендерится поверх более близкого склона холма. Туман был решением, к которому прибегали все разработчики, потому что он скрывал проблему до того, как она становилась видимой.
Как Lambert на самом деле решил проблему
Вот в чем дело: решение, которое нашел Lambert, элегантно именно потому, что оно отражает методы, используемые современными движками, просто адаптированные для оборудования 1996 года.
"Решение заключается в том, что я просто рисую мир дважды", — объясняет Lambert. "Сначала я рисую все, что находится далеко, уменьшенное примерно в 100 раз, а затем я делаю отдельный проход, где я рисую все, что находится близко". Мир разделен на тайлы на нескольких уровнях детализации (LOD). Удаленные тайлы рендерятся в низком разрешении, и по мере приближения игрока их заменяют версии с более высокой детализацией. Прежде чем какой-либо тайл будет вообще отрисован, движок проверяет, находится ли он в поле зрения игрока. Если нет, он полностью пропускается.
Результатом является многослойный мир, построенный от заднего плана к переднему, где геометрия низкого уровня заполняет горизонт, а тайлы высокого уровня занимают передний план, без необходимости использовать стену тумана для скрытия швов.
инфо
ROM Junkrunner 64 от Lambert доступен для скачивания на GitHub для всех, кто хочет попробовать его на эмуляторе N64.Коллаборатор Pyroxene занимался фактическим построением карты, создавая несколько вариаций LOD для каждого фрагмента открытого мира. После того, как все было собрано, Pyroxene подтвердил, что игра достигла "хорошей, а иногда и даже отличной частоты кадров" на оборудовании. Для 30-летней консоли, работающей с миром размером со Skyrim, это немаловажно.

Hover cycle hits 180 mph boosting
Создание большой карты, которую стоит исследовать
Создание открытого мира было лишь половиной проблемы. Lambert признал, что один лишь масштаб не делает игру стоящей. "Эта огромная карта действительно крутая, но она на самом деле делает игру хуже, если в ней нечего делать, а перемещение очень медленное", — говорит он.
Решением для перемещения стал ховер-цикл игрока, который достигает скорости около 180 миль в час при полной модернизации и бусте. Решение для исследования было более продуманным: карта начинается полностью скрытой, и игроки раскрывают ее по частям, перемещаясь по миру. Это дизайнерское решение придает исследованию реальные ставки, чего многие современные игры с открытым миром и загроможденными иконками картами тихо отказались.
Lambert ясно дал понять, что Junkrunner 64 — это проект для геймджема, и вряд ли он самостоятельно превратится во что-то большее. Важно то, куда пойдет эта технология дальше. Разработанные здесь методы напрямую используются в более крупном проекте Lambert для N64, анонсированном ранее, кооперативной игре в стиле Magicka, которая теперь будет иметь полноценный движок открытого мира для построения.
Для всех, кто вырос, щурясь сквозь туман N64 и задаваясь вопросом, на что на самом деле способно оборудование, это ответ. Следите за следующим проектом Lambert и проверяйте последние игровые новости, чтобы узнать больше историй из ретро-разработки. Обязательно ознакомьтесь с другими материалами:







