Даже признанные флагманские графические движки содержат странные программные решения, с которыми создателям игр приходится бороться нестандартными методами. В ходе технического интервью сотрудники студии Rockfish Games раскрыли детали производственного процесса космического симулятора Everspace 2. Одной из ключевых тем обсуждения стали проблемы движка Unreal Engine, вынудившие авторов внедрять парадоксальные костыли ради исправления базовых визуальных неполадок.
Технический программист студии Джозеф поделился показательным примером борьбы со встроенным рендерингом декалей. Во время производства команда столкнулась с неприятным дефектом, когда текстуры декалей и опознавательные эмблемы фракций буквально расползались по соседним частям полигональной сетки космических кораблей. Стандартные настройки не приносили результата, поскольку разработчики из Epic Games зашили в шейдер движка жестко закодированное смещение.
Для исправления графического бага инженерам пришлось пойти на абсурдную хитрость и принудительно включить в материале флаг тесселяции. В проекте на тот момент тесселяция фактически не использовалась и не получала никаких входных данных. Однако именно активация этого параметра заставляла код движка отключать проблемное жесткое смещение, моментально возвращая текстуры на положенные места.
Иногда исправление заключается лишь в том, чтобы выключить одну скрытую настройку, о существовании которой разработчики даже не догадывались и которой попросту не было в предыдущей версии движка.
- Джозеф, технический программист Rockfish Games
Не менее курьезная проблема затронула подсистему контроллеров. В недрах Unreal Engine вертикальная ось правого аналогового стика была жестко инвертирована на уровне ядра, а затем автоматически возвращалась в привычный вид на более высоких слоях обработки ввода. Поскольку создатели Everspace 2 считывали команды на низком аппаратном уровне для мгновенного отклика кораблей, управление обзором внезапно оказалось зеркальным. Авторам пришлось потратить немало времени на поиск первопричины и дописать еще один компенсационный слой инверсии.
Специалист студии по тестированию Гарри подчеркнул, что отлов подобных неполадок отнимает массу сил, ведь программистам приходится чинить чужие скрытые ошибки. Ситуацию долгое время усложнял тот факт, что космический экшен изначально выпускался на базовой ванильной версии Unreal Engine 4 без собственного форка. Лишь со временем команда перешла на модифицированный движок, получив возможность глубже контролировать проблемные участки кода.
Переход космического симулятора на более современный Unreal Engine 5 принес новую волну технических вызовов. Крупные обновления технологии периодически сбрасывали рабочие параметры и меняли фоновые настройки, требуя от студии повторного анализа сотен системных переменных. На сегодняшний день авторы продолжают полировать оптимизацию Everspace 2, опираясь на собственные инструменты отладки для обеспечения стабильности на компьютерах и консолях.
