Оптимизация и улучшение графики
С выходом обновления «Тихий океан» Enlisted встретит вас ещё и технически похорошевшим. Мы доработали растительность, эффекты дымки и все водные поверхности.
Но прежде чем мы расскажем об улучшении графики, хотим отдельно отметить проведённую оптимизацию и доработку многих систем для лучшего использования ресурсов CPU на всех платформах. Станет не только красивее, но и производительнее!
Цель: 120 FPS (новое поколение) / 60 FPS (прошлое поколение)
В Enlisted у каждого игрока в управлении находится отряд, и поэтому в бою постоянно участвует сотня солдат. В масштабных сражениях в каждый момент времени на экране видны десятки и сотни персонажей, которые стреляют, летают, ездят.
Ещё перед началом открытого тестирования мы знали, что динамичный шутер требует высокой производительности и отзывчивости управления. С самого начала нашей ключевой задачей было дать игрокам хороший и динамичный геймплей, сохранив впечатляющий масштаб боёв. Поэтому первоначально Enlisted вышел только на ПК и консолях нового поколения — тогда эти платформы поддерживали довольно устойчивые 60 кадров в секунду.
Воодушевлённые удачным запуском, мы решили расширить аудиторию и представить игру на консолях прошлого поколения. Этот путь был непростым. Чтобы получить даже 30 FPS, нам пришлось потратить много месяцев в работе над оптимизацией — но в результате и на этих платформах игра увидела свет осенью 2021 года. Требования к стабильной частоте кадров были жёсткими, и мы даже ограничивали отдельные локации, производительность на которых была ниже стабильных 30 fps. Конечно, нам хотелось большего, и мы над этим работали.
Спустя год последовательной работы по оптимизации Enlisted всё ближе к стабильным заветным 60 FPS на консолях предыдущего поколения и 120 FPS на всех современных консолях (в режиме «Высокой производительности». В режиме «Высокого качества» наша цель была стабильные 60 FPS на текущем поколении и 30 FPS на прошлом, и — спойлер — она уже успешно достигнута!).
Частично мы уже добились желаемого: Xbox Series X показывает стабильные 120+ FPS в Native 4k UHD! Но мы хотим увидеть такие же показатели и на других консолях нового поколения (Xbox Series S и PlayStation 5), даже без использования Variable Refresh Rate.
Но, конечно, игроки на ПК тоже выиграют от проделанной работы, и многие — даже больше, ведь на ПК оптимизация позволяет расширить аудиторию игры. Если игра выдает хорошую и комфортную частоту кадров в секунду даже на слабом ноутбуке, то в неё смогут поиграть и те, у кого другого ПК просто нет.
Помимо оптимизации, повлиявшей на рост среднего FPS, мы уделили много внимания и устранению «спаек» (отдельных медленных кадров). В результате FPS стал не только выше, но и стабильнее, а это не менее важно, чем средняя частота кадров, для получения удовольствия от игрового процесса.
Нам удалось повысить производительность игры без потери качества картинки или разрешения за счёт более рационального использования ресурсов многопоточных CPU, эффективного задействования кэшей памяти, оптимизации под архитектуру GPU, а также переписывания горячего кода на другие алгоритмы или просто на ассемблере. Загрузка всех ядер достигает 90%, и ни в одном случае мы не пожертвовали задержкой (input latency) или качеством игрового процесса или изображения, так что более высокий FPS означает более отзывчивое управление и более, а не менее разнообразную картинку.
В процессе мы также написали новые, более совершенные инструменты профилирования, настроили автоматическое тестирование и сильно поменяли отношение всей команды к производительности — теперь это часть культуры разработки и гордость разработчиков.
Множество игровых систем были сильно переработаны, причём в разных направлениях:
- часть логики была перенесена на сервер, это позволило облегчить клиент и в тоже время защититься от потенциальных эксплойтов;
- некоторые расчёты клиент игры теперь делает только для своего персонажа, а не пытается просчитать для всех;
- ряд систем был переработан так, чтобы их можно было выполнять в момент, пока рисуется прошлый кадр (без ущерба для input latency), что позволяет не терять времени на их вычисление в критическом пути выполнения;
- многие системы переписаны с использованием более оптимальных алгоритмов и/или структур данных.
В будущем мы планируем дальнейшую доработку кода, чтобы достигнуть более полной утилизации ресурсов целевой платформы и ещё более повысить производительность. Мы убеждены, что достигнем стабильных 120 FPS на двух оставшихся платформах нынешнего поколения (Xbox Series S и PlayStation 5) уже в этом году (сейчас средний FPS на Xbox Series S в режиме «Высокой производительности» составляет 110 кадров в секунду, так что осталось меньше 10% до цели!).
Стабильные 60 FPS на платформах предыдущего поколения — цель, кажется, тоже вполне достижимая. Сейчас средняя частота кадров на Xbox One составляет 52 FPS. К сожалению, предыдущее поколение лишено поддержки VRR, так что тут нам надо ещё поработать, чтобы пользователи смогли наслаждаться стабильными 60 кадрами в секунду. Пока что мы не прибегали к использованию динамического разрешения даже на этих платформах, но, вероятно, сделаем это.
Variable Refresh Rate
К сожалению, раньше телевизоры (и консоли) могли поддерживать только FPS, кратный частоте обновления (иначе происходит screen tearing, то есть изображение «рвётся»). Современные телевизоры и мониторы поддерживают так называемый Variable Refresh Rate (VRR), и недавно оба платформодержателя внедрили эту технологию в новые консоли.
В прошлом обновлении мы тоже выпустили поддержку VRR, и теперь, если ваш телевизор/монитор поддерживает эту технологию, вы всегда можете играть на максимально возможном FPS на PC, Xbox Series и PlayStation 5 — и при этом без артефактов неполного отображения.
В режиме «Высокой производительности» PlayStation 5 показывает минимальный FPS больше 90 (а средний — больше 110), так что Variable Refresh Rate поможет вам получать больше удовольствия от игры.
Если игра не достигает 120 FPS в некоторые моменты времени, количество кадров не будет более ограничено 60 из-за вертикальной синхронизации, а будет максимально возможным. На консолях необходимо включить VRR в настройках консоли. Для PC нужно иметь аппаратное обеспечение, поддерживающее VRR.
«Старшая» модель Xbox текущего поколения (Xbox Series X) показывает устойчивые 120 FPS, и поэтому и с VRR, и даже без него игра на этой платформе будет максимально отзывчива.
Улучшение растительности
Мы переработали деревья, которые находятся вдалеке и образуют лесные массивы. Теперь они имеют более реалистичное затенение. Помимо этого, деревья стали требовать меньше времени для отрисовки, что положительно сказалось на производительности игры.
Дальний туман
В игру была добавлена настройка качества тумана. Раньше игра поддерживала только туман вблизи игрока, но теперь вы сможете включить его отображение на большей дистанции в настройках и повысить атмосферность поля боя.
Улучшение водных поверхностей
Открытой воды, рек и озёр в Enlisted много не только в грядущем «Тихом океане» — даже под зимней Москвой бывает необходимо форсировать водную преграду. Ощущения от взаимодействия с водой играют немаловажную роль в восприятии игры, и у нас готов целый спектр улучшений в этом направлении.
Отражения
Игра света на поверхности воды и правила его распространения и преломления под водой — чуть ли не один из важнейших факторов, создающих хорошее впечатление о водных поверхностях в игре. И мы неплохо над ней поработали.
Так, мы улучшили точность отражений на воде. Теперь на высоких настройках графики отражения не отрываются от предметов, которые касаются воды.
Эта и подобные мелочи делают картинку в Enlisted всё более фотореалистичной. Увидеть их можно будет как на большой воде, так и на маленьких речушках и даже лужах. Причём множество причудливых правил отражения работают и для зрителя, удобно расположившегося под поверхностью воды. Взгляните на это отражение основания моста.
Взаимодействие с окружением
Спектр улучшений на этом не заканчивается. Мы добавили несколько новых правил взаимодействия поверхности воды с окружением. В дождь водоёмы будут отвечать объёмной рябью на тысячи упавших капель. Новая технология позволяет реализовать широкий спектр явлений: от воздействия на воду небольших объектов до тонкой настройки волнения поверхности и создания настоящего шторма.
Стоит ли говорить, что проехавшая по отмели техника, упавший в воду плавающий танк или пронёсшаяся лодка также будут оставлять после себя заметное волнение, а в местах наибольшего воздействия поверхность вода даже будет пениться!
Карта высот поверхности воды
В довершение. Новый механизм карты высот позволяет нам создавать отдельные водоёмы, не связанные своей высотой с нулевой точкой «уровня океана», — этот механизм будет особенно полезен в кампаниях, где «большая вода» соседствует с маленькими водоёмами и реками.