ИГРЫ И НЕ ТОЛЬКО

Как отказ от Blueprints в пользу C++ спас производительность Everspace 2

Технический программист Rockfish Games рассказал, почему визуальные скрипты стали тормозить Everspace 2 и как перевод логики на C++ помог оптимизировать игру и подготовить её к Unreal Engine 5.

Как отказ от Blueprints в пользу C++ спас производительность Everspace 2

Визуальное программирование с помощью Blueprints в Unreal Engine остаётся популярным инструментом для быстрого прототипирования, но на длинной дистанции оно может завести крупный проект в технологический тупик. Технический программист студии Rockfish Games Джозеф раскрыл производственные детали создания космического симулятора Everspace 2. Разработчик объяснил, почему авторам пришлось принудительно переписывать рабочие механики на чистый код C++ ради спасения оптимизации.

Почему Blueprints перестали справляться

На ранних этапах производства дизайнеры активно пользовались визуальными скриптами для сборки базового геймплея и элементов интерфейса. По мере расширения масштабов игры, наполнения секторов флотилиями кораблей и усложнения боевой системы накладные расходы визуальных нод стали критическими. Игра стремительно теряла частоту кадров, а стандартные методы поверхностной оптимизации больше не справлялись с возросшей нагрузкой. Если системы изначально были сильно завязаны на блюпринтах, их перенос на C++ часто становится не просто хорошим, а абсолютно необходимым решением, — отметил Джозеф.

Перенос уже функционирующих систем на нативный код превратился в сложную и рискованную операцию. Джозеф подчеркнул, что механизмы Blueprints и чистый код работают совершенно по-разному на низком уровне. Малейшее расхождение в порядке выполнения команд приводило к тому, что логика начинала вести себя непредсказуемо. Это порождало скрытые баги в квестах и ломало цепочки событий, выявление которых требовало отладки сотен взаимосвязанных узлов.

Несмотря на риски, перевод проекта на C++ обеспечил команде необходимый задел на будущее. Нативный код предоставил программистам чёткие и понятные стеки вызовов при аварийных сбоях. Вместо блуждания по запутанным визуальным графам инженеры получили возможность мгновенно локализовать сбойную функцию по отчётам об ошибках, что значительно ускорило подготовку релизных патчей.

Оптимизация логики помогла студии безболезненно преодолеть масштабный переход с Unreal Engine 4 на Unreal Engine 5. Хотя смена версии движка принесла новые технические вызовы и сбросила накопленные кэши данных, переписанные модули позволили сохранить плавную работу космического симулятора на актуальных консолях и компьютерах под управлением Windows и macOS. Инженерный отдел Rockfish Games продолжает придерживаться строгих стандартов нативного программирования при выпуске обновлений для Everspace 2 и проектировании систем для своего следующего неанонсированного проекта.

Как тебе материал?

0 реакций
Как тебе материал?0 реакций
Комментарии

Обсуждение

Загружаем обсуждение…