Очень часто я сталкиваюсь с проблемами в оптимизации работы игры: лаги, большой вес из ничего и прочие проблемы. Собственно поговорим как с этим бороться, и что может сделать разработчик без специальных программ, которые могут и платными и бесплатными, что скорее всего нет.
- Оптимизация текстур
- Оптимизация одинаковых моделей(мешей)
- Оптимизация звуков
Оптимизация текстур очень важная часть, поскольку лишний размер никогда к хорошему не приводил. Нужно отводить столько памяти на изображение, сколько оно действительно занимает, а не сколько хочется вам или движку. В Unity можно выбрать размер текстуры, что существенно облегчит нагрузку. Но это как вариант для небольших игр, но это не подходит для крупных игр, поскольку каждая текстура формирует материал, который накладывается на модель, а смысл иметь большое количество материалов для одной модели? Например, чтобы вы понимали о чем идет речь, модель игрового персонажа имеет текстуры: кожи, наручей, ботинок, оружия и волос, глаз и тд. Это очень трудоемко для движка и увеличивает нагрузку на видеокаркту, поскольку надо отображать большое количество материалов, которые получают из пакета данных текстуры. Следовательно, если лучше сделать для одной модели один материал, который получит одну текстуру для всего сложного объекта. Таким образом мы создаем "атлас". Атлас - комбинация множества текстур в одну, а также он является разверткой для модели.
Таким образом быстрота прогрузки и сложность выполнения будет намного быстрее и лучше.
Оптимизация моделей, аналогичная функция с текстурированием, но здесь нельзя их объединять, но можно комбинировать. То есть если есть одинаковые модели, то нет смысла движку говорить: "посмотри что это, как выглядит и запомни"... Поняли о чем я? Надеюсь да, то есть мы на примере одной модели создаем группу моделей, обязательно одинаковых, которые являются копиями, чтобы движок не грузил их заново, а базировался на примере одной модели, уже обработанной.
Оптимизация звуков точно аналогична текстурам. Увеличиваем или уменьшаем бит-рейт.