Вопрос по оптимизации игры

Раздел, посвящённый самому важному - скорости.

Вопрос по оптимизации игры

Сообщение nurbolg 22 дек 2019, 14:48

Всем привет! Сделали 2D игру на Андроид платформу. В проекте есть чанки (префабы) которые генерируется, и в этих чанках стоит 3 тайлмапа в 2-х из них есть текстуры с материалом с картами нормалей, и освещение Point light, анимированный персонаж. 3D объектов нет. Игра идет плавно на устройствах (Nokia 8.1 Android 10, ram 6g, snap 710) и (Huawei P Smart, ram 3gb, Kirin 710) а на устройствах как ( LG K8 и Samsung J3 2017 и типа таких устройствах) игра жутко тормозит.
Вот вопрос получиться оптимизировать эту игру на немного слабых устройствах, с этим освещением и с тайлмапом с картами нормалей?!
nurbolg
UNIт
 
Сообщения: 57
Зарегистрирован: 26 окт 2019, 12:19

Re: Вопрос по оптимизации игры

Сообщение kezin636 11 янв 2020, 17:26

Ты пробовал поставить низкие настройки? Зачем тебе свет в 2д игре со спрайтами, если у тебя нет 3д объектов? Понижение фпс может зависеть от разрешения текстур, использования только одного потока процессора(более вероятно, исправить вряд ли получится, т.к. движок не поддерживает многопоток), от количества этих самых объектов, от частоты обращения к каким либо ресурсоемким операциям и т.д. Может у тебя много коллайдеров и вообще физики? Попробуй сократить их количество.
kezin636
UNIт
 
Сообщения: 74
Зарегистрирован: 11 июн 2018, 19:28

Re: Вопрос по оптимизации игры

Сообщение Jarico 11 янв 2020, 18:04

kezin636 писал(а):движок не поддерживает многопоток

поддерживает (ECS, Job System + Burst)

nurbolg писал(а):Вот вопрос получиться оптимизировать эту игру на немного слабых устройствах


Samsung J3 2017

4 ядра Exynos 7570 с тактовой частотой до 1.4 ГГц

Huawei Kirin 710

4 ядра ARM Cortex-A73 с тактовой частотой до 2,2 ГГц.
4 ядра энергосберегающих ARM Cortex-A53 с максимальной частотой 1,7 ГГц

Ответ: Вряд ли...
Попробуй использовать 1 текстурный атлас на всех спрайтах...
Попробуй выключать спрайты которые за пределами экрана...
Оптимизируй код (чтобы GetComponent был 1 раз где-то за всё время, меньше циклов for и foreach)
Делай пуллинг объектов (вместо Destroy просто выключай объект и сбрасывай до исходного состояния чтобы потом снова использовать как при Instantiate)
VK: _ttp://vk.com/salavan73
RakNet Client-Server Unity3D: _https://vk.cc/9xuZp8
RakNet Client-Server Github: _ttp://github.com/ep1s0de3/RakNet_Networking
RakNet Unity: _https://www.youtube.com/channel/UCPQ04Xpbbw2uGc1gsZtO3HQ
Jarico
UNIверсал
 
Сообщения: 494
Зарегистрирован: 06 янв 2019, 17:37
Откуда: 0xDEAD
Skype: none
  • Сайт

Re: Вопрос по оптимизации игры

Сообщение nurbolg 15 янв 2020, 21:25

kezin636 писал(а):Ты пробовал поставить низкие настройки? Зачем тебе свет в 2д игре со спрайтами, если у тебя нет 3д объектов? Понижение фпс может зависеть от разрешения текстур, использования только одного потока процессора(более вероятно, исправить вряд ли получится, т.к. движок не поддерживает многопоток), от количества этих самых объектов, от частоты обращения к каким либо ресурсоемким операциям и т.д. Может у тебя много коллайдеров и вообще физики? Попробуй сократить их количество.


Настройки снизил, снизил разрешение всех текстур до оптимального. Объеденил все спрайты в атлас.
Освещение нужен потому что сам проект типа про темнре пространство, на текстурах материал с картой нормалей, дает типа 3д эффект. Колайдеры немного, физика только у персонажа.

Само игровое пространство создан из тайловых карт разделенное на несколько префабов соединяющиеся по ходу прохождения по генерации игрового пространство, в этой тайловой карте бэгэкграунд был из текстуры кирпича размером 128х128 с материалом с картой нормалей, количество этих текстур в каждом префабе было не слишком много.

Я убрал эти бэкграунды из всех префабов и игра стало более плавнее на слабых устройствах, есть чуть подвисание в нееоторых моментах.
Получается причиной был бэкграунды.
Последний раз редактировалось nurbolg 15 янв 2020, 21:29, всего редактировалось 1 раз.
nurbolg
UNIт
 
Сообщения: 57
Зарегистрирован: 26 окт 2019, 12:19

Re: Вопрос по оптимизации игры

Сообщение nurbolg 15 янв 2020, 21:27

Jarico писал(а):
kezin636 писал(а):движок не поддерживает многопоток

поддерживает (ECS, Job System + Burst)

nurbolg писал(а):Вот вопрос получиться оптимизировать эту игру на немного слабых устройствах


Samsung J3 2017

4 ядра Exynos 7570 с тактовой частотой до 1.4 ГГц

Huawei Kirin 710

4 ядра ARM Cortex-A73 с тактовой частотой до 2,2 ГГц.
4 ядра энергосберегающих ARM Cortex-A53 с максимальной частотой 1,7 ГГц

Ответ: Вряд ли...
Попробуй использовать 1 текстурный атлас на всех спрайтах...
Попробуй выключать спрайты которые за пределами экрана...
Оптимизируй код (чтобы GetComponent был 1 раз где-то за всё время, меньше циклов for и foreach)
Делай пуллинг объектов (вместо Destroy просто выключай объект и сбрасывай до исходного состояния чтобы потом снова использовать как при Instantiate)


Все это сделал спасибо! :-bd
nurbolg
UNIт
 
Сообщения: 57
Зарегистрирован: 26 окт 2019, 12:19

Re: Вопрос по оптимизации игры

Сообщение Equinty 19 янв 2020, 14:47

Можно еще в настройках уровень качества графики добавить. Типа тени включены/выключенны, разрешение теней. Антиализинг. Сжатие текстур. Может еще что-то не знаю это зависит от проекта. Тогда если устройство будет не тянуть, то у пользователя будет выбор снизить настройки но играть с более худшей картинкой.
Equinty
UNIт
 
Сообщения: 55
Зарегистрирован: 17 дек 2019, 19:34

Re: Вопрос по оптимизации игры

Сообщение nurbolg 20 янв 2020, 08:54

Equinty писал(а):Можно еще в настройках уровень качества графики добавить. Типа тени включены/выключенны, разрешение теней. Антиализинг. Сжатие текстур. Может еще что-то не знаю это зависит от проекта. Тогда если устройство будет не тянуть, то у пользователя будет выбор снизить настройки но играть с более худшей картинкой.


Да там особо, сильной графики то нету) , я понял одно, что текстуры с картой нормалей+ тайлмап+point light, грузит сильно слабые устройства.
nurbolg
UNIт
 
Сообщения: 57
Зарегистрирован: 26 окт 2019, 12:19


Вернуться в Оптимизация

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1