Визуальное программирование с помощью системы Blueprints в движке Unreal Engine остается популярным инструментом для быстрого прототипирования, однако на дистанции оно способно загнать крупный проект в технологический тупик. Технический программист студии Rockfish Games Джозеф раскрыл производственные детали создания космического симулятора Everspace 2. Разработчик объяснил, почему авторам пришлось в принудительном порядке переписывать рабочие механики на чистый код C++ ради спасения оптимизации.
На ранних этапах производства дизайнеры активно пользовались визуальными скриптами для сборки базового геймплея и элементов интерфейса. По мере расширения масштабов игры, наполнения секторов флотилиями кораблей и усложнения боевой системы накладные расходы визуальных нод стали критическими. Игра стремительно теряла частоту кадров, а стандартные методы поверхностной оптимизации больше не справлялись с возросшей нагрузкой.
Если системы изначально были сильно завязаны на блюпринтах, их перенос на C++ часто становится не просто хорошим, а абсолютно необходимым решением.
- Джозеф, технический программист Rockfish Games
Перенос уже функционирующих систем на нативный код превратился в сложную и рискованную операцию. Джозеф подчеркнул, что механизмы Blueprints и чистый код работают совершенно по-разному на низком уровне. Малейшее расхождение в порядке выполнения команд приводило к тому, что логика начинала вести себя непредсказуемо. Это порождало скрытые баги в квестах и ломало цепочки событий, выявление которых требовало отладки сотен взаимосвязанных узлов.
Несмотря на риски, перевод проекта на C++ обеспечил команде необходимый задел на будущее. Нативный код предоставил программистам четкие и понятные стеки вызовов при аварийных сбоях. Вместо блуждания по запутанным визуальным графам инженеры получили возможность мгновенно локализовать сбойную функцию по отчетам об ошибках, что значительно ускорило подготовку релизных патчей.
Оптимизация логики помогла студии безболезненно преодолеть масштабный переход с Unreal Engine 4 на Unreal Engine 5. Хотя смена версии движка принесла новые технические вызовы и сбросила накопленные кэши данных, переписанные модули позволили сохранить плавную работу космического симулятора на актуальных консолях и компьютерах под управлением Windows и macOS.
Инженерный отдел Rockfish Games продолжает придерживаться строгих стандартов нативного программирования при выпуске обновлений для Everspace 2 и проектировании систем для своего следующего неанонсированного проекта.
