Оптимізації гри в Unity. Частина 1

307

Продуктивність гри може дуже важлива, так як вона дозволяє охоплювати безліч платформ, в тому числі малопродуктивні. Jonathan Gonzalez ділиться секретами з власного досвіду, як зробити гру без багів і з нормальним fps.

Найчастіше досить індивідуальний процес, але є загальні пункти, на які варто звернути увагу.

Ніж простіше, тим краще

Коли ви розробляєте гру, вам потрібно конкретно визначити, що вам потрібно включати і що не потрібно.
Jonathan повертається до старих скриптам або проектів і знайти способи зробити що-то продуктивніше і простіше.
Якщо ж ви робите гру вперше, все одно пам’ятайте про цьому пункті, але не надто обмежуйте себе.

Використовуйте Profiler

Перш ніж ви почнете видаляти рядки коду, очищати непотрібні файли і намагатися зробити все, що вам потрібно, необхідно знати, що насправді викликає проблеми з продуктивністю.
Profiler — відмінний спосіб отримати детальний огляд того, як ваша гра працює. Шукайте його тут: Window>Profiler.

Під час гри ви повинні тримати це вікно видимим. Він буде відображати такі категорії навантаження на CPU і GPU, рендеринг, фізику, аудіо та інше.

Правильно ставте тип об’єкта

Все, що з’являється на екрані, має бути «намальовано». Тому необхідно правильно визначити тип об’єкта, щоб не перевантажувати гру.
Static Batching використовується для нерухомих об’єктів. Це означає, що об’єкт не буде переміщатися, масштабуватися або обертатися.
Об’єкти, які використовують одні і ті ж матеріали, що будуть об’єднані. Скоріше всього це необхідно використовувати, коли додаєте запечений світло або щось на зразок навігаційного об’єкта у свою гру. Змінити тип об’єкта можна у вікні inspector-а.
Dynamic Batching використовується для об’єктів, які будуть переміщатися. Подібно Static batching, він буде поєднувати елементи з подібними матеріалами.
Існують і інші типи об’єктів (наприклад, скиненные мэши і Cloth).
Jonathan любить поєднувати мэши, коли це можливо. Ви можете використовувати Mesh.CombineMeshes для цього.
Оптимізації гри в Unity. Частина 1

Зменшення дозволу і повторне використання текстур.

Безліч текстур з високим дозволом сповільнять продуктивність. Текстури потрібно використовувати правильно і по можливості об’єднувати декілька об’єктів в одну велику текстуру.
Це звичайна практика в AAA-іграх. Таким чином ви можете зменшити кількість використовуваних текстурних карт, і спростити організацію. Наприклад, гра Rage and Doom, з використанням Megatextures і віртуального текстурування.