Найти в Дзене
OVERCLOCKERS.RU

Cities: Skylines 2 сильно тормозит, потому что движок рендерит предметы, которые мы даже не видим

Градостроительный симулятор — один из самых популярных жанров в компьютерных играх, но культовая франшиза SimCity потерпела крах более десяти лет назад, оставив Cities: Skylines возможность заполнить образовавшийся пробел. Первая часть Skylines была очень популярной благодаря многочисленным пакетам DLC и преданным фанатам. Однако старт сиквела оказался не самым удачным. После его релиза на прошлой неделе геймеры выразили разочарование по поводу плохой оптимизации и производительности. Теперь глубокий анализ игрового движка выявил причину. Cities: Skylines 2 рендерит (визуализирует) слишком много ненужных вещей, включая зубы каждого маленького человечка, живущего в вашем виртуальном городе.

Производительность в первой части Cities: Skylines не всегда была идеальной — это была игра, ориентированная на процессор, которая даже не использовала в полной мере преимущества многоядерной архитектуры. В Skylines 2 это исправлено, но она теперь невероятно требовательна к графическому процессору. Перед релизом игры издатель Paradox Interactive вынужден был повысить системные требования, указав RTX 3080 в качестве рекомендуемой видеокарты.

-2

Программист и фанат видеоигр под ником Paavo детально разобрался в том, почему Cities: Skylines 2 работает так плохо, и результаты оказались неожиданными. В игре практически отсутствует принцип графической экономии. Если что-то можно визуализировать, игра визуализирует это полностью и нагружает графический процессор до тех пор, пока даже рекомендуемая RTX 3080 не начинает тормозить. По словам Paavo, пустая игровая карта работает с частотой 30-40 кадров в секунду при максимальных настройках, но после часа строительства эта скорость падает до менее чем 10 кадров в секунду.

Cities: Skylines 2 работает на новейшем движке Unity с поддержкой Direct3D 11 и конвейера рендеринга высокой четкости (HDPR). Игра также использует новый технологический стек DOTS Unity для лучшей поддержки многоядерных процессоров. Некоторые функции DOTS все еще находятся на стадии разработки, но разработчики все равно внедрили их в свою новую игру, что, возможно, было ошибкой.

Paavo использовал инструмент под названием Renderdoc, чтобы понять, какие действия движка могли вызвать плохую производительность. Суть проблемы заключается в ненужном уровне детализации многих моделей. Например, у всех людей, изображенных на экране, есть зубы — хотя вы никогда об этом не узнаете, учитывая их крошечный размер. Даже если вы увеличите масштаб, вы не увидите никакой пользы от 6000 вершин внутри их смоделированных ртов. Многие здания, внутренние помещения и другие объекты также излишне сложны. В игре есть куча бревен, которые Paavo определил как самые сложные модели, состоящие из более чем 100 000 вершин.

-3

Те самые 6000 вершин зубов, которые вы никогда не увидите в игре. Авторы и права: Paradox Interactive

Все могло бы быть не так уж страшно, если бы игра не отображала все эти объекты постоянно, но в ней нет сеток LOD (уровня детализации), которые можно было бы отображать с более низким качеством, когда это возможно. Даже если что-то находится очень далеко или закрыто от просмотра, оно визуализируется во всех подробностях. Игра не только рендерит множество объектов, которые ей не нужны, но и тратит почти половину времени обработки на тени. В Cities: Skylines 2 используется каскадное отображение теней с высоким разрешением, что означает, что вся ненужная геометрия, такая как бревна и зубы, вызывает на порядок больше вызовов отрисовки для каждого кадра. Таким образом, мы получаем тормозящий игровой процесс.

Если вы хотите подробно рассмотреть все тонкости этой проблемы, то можете почитать новую статью Paavo в его блоге. Однако суть проблемы довольно ясна. Cities: Skylines 2 — плохо оптимизированная игра из-за некоторых особенностей движка и рендеринга. Возможно, разработчики смогут улучшить производительность с помощью патчей, но учитывая, что это движок Unity, не стоит надеяться на идеальную оптимизацию.