
Приветствуем, мэры!
В этом выпуске City Corner мы детально разберем техническую составляющую Cities: Skylines II, уделив особое внимание оптимизации. Мы пообщались с нашим техническим директором и ведущим программистом, чтобы пролить свет на общую производительность игры. Мы обсудим два ключевых направления, над которыми сейчас работает наша команда, расскажем о планах по устранению неполадок и дадим эксклюзивный анонс нового инструмента, который появится в следующем обновлении.
Пристегните ремни — приступаем к разбору!
Что такое производительность в контексте игры?
В основе Cities: Skylines II лежит архитектура, максимально использующая возможности многоядерных процессоров. Фундамент игры надежен, но всегда есть пространство для совершенствования. Градостроительный симулятор — это уникальный вызов: вы можете мгновенно переключиться с детализированного осмотра жизни горожан на панорамный вид всего мегаполиса. Такая динамика затрудняет оптимизацию, ведь мир игры постоянно меняется, и мы не можем заранее «запечь» все расчеты.
Мы рассматриваем эти технические сложности как увлекательную задачу, ради решения которой мы и пришли в геймдев. Мы тесно сотрудничаем с Unity, чтобы выявлять узкие места и находить эффективные пути их устранения. Давайте разберемся, что именно сейчас влияет на производительность и как мы планируем это исправить.
Производительность рендеринга (GPU)
Главный фактор нагрузки на графический процессор — количество отображаемых треугольников. Интересный факт: раньше мы рендерили зубы каждого горожанина, даже если он находился на другом конце карты. Понятно, что игра не про стоматологию, поэтому этот момент мы давно исправили, но работы еще предостаточно.
Первый шаг к оптимизации — внедрение более качественных LOD-моделей (Level of Detail). Это упрощенные копии объектов, которые подменяют оригинал на расстоянии, когда высокая детализация попросту не нужна. Это снижает нагрузку на GPU и косвенно улучшает отрисовку теней, так как они строятся на той же геометрии.
Симуляция воды — еще один тяжелый процесс для GPU, так как требует параллельных вычислений физики потоков и давления. На слабом «железе» это сильно тормозит отрисовку остального контента, поэтому мы ищем способы сбалансировать нагрузку.
Также мы дорабатываем систему ландшафта. Сейчас движок обрабатывает геометрию участков, которые даже не попадают в камеру игрока. До 65% треугольников, отправляемых на рендеринг, отсекаются как невидимые. Внедрение «умных» проверок видимости позволит избежать холостой работы GPU. Мы стремимся к тому, чтобы все упрощения происходили до того, как нагрузка ляжет на видеокарту.

Производительность симуляции (CPU)
Здесь всё сложнее: проблемы становятся заметны лишь при достижении определенных масштабов города. Чаще всего это связано с ростом населения и алгоритмами поиска пути. Мы анализируем, насколько часто горожане запрашивают прокладку маршрутов. Например, можно ли оптимизировать поведение жителей, чтобы они не совершали абсурдно длинные поездки за покупками?
Мы рассматриваем корректировки геймплея, например, изменение плотности пешеходного трафика в соответствии с масштабом города. Это существенно облегчит работу процессора в крупных мегаполисах.
Кроме того, мы устраняем баги, вызывающие «паразитные» нагрузки — например, когда горожане или преступники застревали в текстурах, из-за чего система поиска пути зацикливалась.

Шаги к оптимизации
Мы уже начали применять первые правки: автоматическая настройка качества теней, динамический подбор графических пресетов под конфигурацию ПК и отключение ресурсоемких эффектов (например, SSGI) на слабых системах.
Наш главный приоритет сейчас — оптимизация LOD-моделей и алгоритмов рендеринга. Кроме того, мы подготовили инструмент для тестирования производительности (benchmark), который появится в следующем патче в конце месяца. Он позволит вам наглядно увидеть, как обновления влияют на работу игры на вашем ПК, а нам — собрать важные данные для дальнейшей настройки.

Спасибо, что остаетесь с нами. Мы продолжим держать вас в курсе прогресса по мере того, как будем делать Cities: Skylines II лучше. До встречи!
