Запуск Star Wars: Battlefront Classic Collection вновь разжег дискуссию о том, как сохранить классический геймплей, не жертвуя современной совместимостью. За этой коллекцией стоит работа Aspyr, студии, специализирующейся на портах, которая столкнулась с задачей обновления движка эпохи PlayStation 2 и оригинального Xbox. Движок Zero Engine от Pandemic, разработанный для фиксированного оборудования, должен был работать на современных видеокартах с совершенно иными конвейерами, что потребовало глубокой переработки процессов рендеринга и управления памятью.
Обратная разработка и инструменты портирования 🛠️
Для достижения совместимости Aspyr использовала Visual Studio в качестве основной среды разработки, что позволило перекомпилировать базовый код C++ движка Zero Engine для архитектур x86-64 и ARM. Однако настоящей проблемой был не код, а ассеты. Оригинальные текстуры, созданные для разрешения 480p, выглядели размытыми в 4K. Решением стало внедрение процесса масштабирования с помощью искусственного интеллекта. Используя нейронные сети, обученные на кадрах оригинальной игры, Aspyr создала текстуры высокого разрешения, которые сохраняли художественный стиль, не добавляя несуществующих деталей. Кроме того, собственные инструменты портирования Aspyr позволили сопоставить старые аппаратные вызовы (например, от GPU PS2) с современными API DirectX и Vulkan, сохраняя исходную задержку и поведение рендеринга.
Постобработка и визуальная точность 🎮
Помимо разрешения, Aspyr пришлось столкнуться с ограничениями оригинальной постобработки. Такие эффекты, как размытие движения или блики линз, были привязаны к фиксированному разрешению и частоте обновления 30 FPS. Чтобы адаптировать их для 60 FPS и мониторов с высокой частотой, команда переписала шейдеры постобработки, обеспечив независимость временных расчетов от частоты кадров. Результатом стала коллекция, которая по управлению и отклику ощущается идентичной оригиналу, но визуально выигрывает от преимуществ современного оборудования, доказывая, что хороший порт не просто переносит код, а воссоздает опыт, уважая его исходные технические ограничения.
Какие конкретные методы эмуляции или обратной разработки были реализованы для сохранения точности физики и оригинального геймплея карт Battlefront на современном оборудовании?
(P.S.: шейдеры — как майонез: если свернутся, начинай всё заново)