Как мы сделали оптимизацию в нашей игре "The Black Ice"
Всем привет! На связи Red Crab Games!
Рассказываем о проделанной работе по оптимизации игры. 📈
После показов на выставках «Игропром», «ГЕЙМДНИ», «UniCon» мы остались недовольны текущим уровнем производительности.
Поэтому в провели большой комплекс технических работ, направленных на снижение нагрузки на систему и повышение стабильности FPS. 🛠
Дальше будет небольшой технический лонгрид для тех, кому интересно, что именно было сделано.Мы выделили несколько ключевых направлений, которые сильнее всего влияли на производительность игры.
1. Модели
Часть моделей в проекте имела избыточное количество полигонов, что увеличивало нагрузку на CPU и GPU, особенно в насыщенных сценах.Мы провели ретопологию ряда объектов, уменьшив количество полигонов без заметной потери визуального качества.
Также для объектов была вручную настроена система LOD — уровней детализации, которые переключаются в зависимости от расстояния до игрока.Это позволило снизить нагрузку при отрисовке сцен и сделать производительность более стабильной.
2. Текстуры
Отдельное внимание было уделено текстурам.Мы переработали настройки импорта, сжатия и использования MipMaps. Ранее видеокарта могла постоянно работать с большим количеством текстур высокого разрешения, включая 4K-текстуры, даже когда объект находился далеко от игрока.
Теперь в зависимости от расстояния до камеры используются более подходящие mip-уровни текстур. Это снижает нагрузку на видеопамять и GPU, при этом практически не влияя на итоговое качество изображения.
3. Освещение
Освещение оказалось одним из самых затратных элементов с точки зрения производительности.Мы провели оптимизацию источников света: часть из них была переведена в более дешёвые режимы, а неактуальные или невидимые игроку источники были исключены из рендера.
Также большинство теней было запечено в статичные lightmap-текстуры, что позволило значительно снизить нагрузку в реальном времени.Дополнительно была настроена плотность карт освещения и теней, чтобы сохранить качество картинки без лишних затрат производительности.
4. Анимации
Мы переработали систему анимаций для фоновых и второстепенных объектов.Для объектов, которые не находятся в фокусе игрока или расположены на большом расстоянии, были снижены частота обновления и количество выполняемых операций.
Это позволило уменьшить нагрузку на CPU без заметного влияния на визуальное восприятие сцены.
5. Программная часть
Также была проведена оптимизация программной логики.Мы внедрили асинхронную загрузку ресурсов, улучшили работу с памятью и оптимизировали ряд систем, которые раньше создавали лишнюю нагрузку во время игрового процесса.
Это позволило сократить время загрузки уровней, уменьшить количество просадок FPS и повысить общую стабильность игры.
6. Загрузка карты
Игровые карты были разделены на несколько чанков. Теперь участки карты, находящиеся вне зоны видимости или актуальности для игрока, автоматически выгружаются из памяти. Данный подход реализован с использованием технологии World Partition.
Это позволяет снизить нагрузку на систему и поддерживать стабильную производительность даже на больших локациях.
Результаты ⚡
После проведённой оптимизации нам удалось добиться следующих результатов:
- Рост FPS примерно на 40–60% 💹
- Сокращение времени загрузки карты примерно на 35% ⏳
- Снижение потребления оперативной памяти примерно на 20% 🚀
- Более стабильная работа игры без заметной потери качества изображения ✨
Мы продолжаем работать над техническим состоянием проекта и будем дальше улучшать производительность, стабильность и общее качество игры.
Конец связи! 💙