Оптимизация 2D игры
|
|
BassPiraT92 | Дата: Четверг, 20 Июня 2019, 07:19 | Сообщение # 1 |
участник
Сейчас нет на сайте
| Подскажите как оптимизировать 2D игрульку. Просто когда спрайтов двигающихся по MoveToward больше 10-15 шт, фпс жестко проседает в плоть до 7-10 fps. проц i7 7700, видео 1060 6gb. оперативы 16 гб
|
|
| |
pixeye | Дата: Четверг, 20 Июня 2019, 09:03 | Сообщение # 2 |
Red Winter Software
Сейчас нет на сайте
| Как раз вчера баловался со всякой фигней) 20 тысяч отскакивающих гильз с ужасно нереалистичным отскоком XD
Никаких особых оптимизаций не надо. Для начала дебаг. Определи что медленее всего работает.
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
Сообщение отредактировал pixeye - Четверг, 20 Июня 2019, 09:04 |
|
| |
BassPiraT92 | Дата: Четверг, 20 Июня 2019, 12:25 | Сообщение # 3 |
участник
Сейчас нет на сайте
| pixeye, подскажешь как дебагом это отследить? Просто не занимался таким
|
|
| |
pixeye | Дата: Четверг, 20 Июня 2019, 12:50 | Сообщение # 4 |
Red Winter Software
Сейчас нет на сайте
| 1. Выясни что больше потребяет ресурсов. Логика ( оч условно CPU ) или отрисовка. (Render thread )
Это можно посмотреть во вкладке Stats. Например у меня видно что CPU нагружен больше. Больше не значит плохо, пока ты просто сравниваешь и выясняешь что в игре у тебя тяжелее.
Дальше открываешь окно дебагера.
Включаешь Record, Включаешь Hierarchy - и с запущенной игрой смотришь что будет происходить.
Тебя интересуют два поля. GC Alloc и Time ms. В идеале GC alloc должен быть на нуле. ( Ясно что аллокации у тебя будут но не должно быть такого чтобы были аллокации каждый кадр. ) Сами аллокации по себе ничего тебе не сделают однако это мусор. Представь что ты сидишь в своей уютной квартире и вокруг себя разбрасываешь носки, грязные тарелки, фантики. Ты вроде довольный, но приходит жена дает тебе нагоняя и пока она убирает ты работать не можешь. Произошел ФРИЗ. Так же и тут сборщик мусора увидет что ты дохрена нагадил и на момент уборки заморозит твой процесс. Так что чем больше мусора тем чаще появляется сборщик тем хуже для твоего фпс.
Вкладки которые тебе интересны скорее всего будут в PlayerLoop->BehaviorUpdate. В любом случае находишь места с которых у тебя падает фпс и смотришь какие операции скок времени занимают. На основе этого начинаешь делать предположения. А еще лучше покажи код.
Так же сходу могу внести предположение что тебе в консоль сыпятся дебаг сообщения которые ты игнорируешь или не видишь, а они оч сильно фпс дропают. У новичков это как правило 50 из 100 случаев "таинственных просадок фпс"
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
Сообщение отредактировал pixeye - Четверг, 20 Июня 2019, 12:53 |
|
| |
drcrack | Дата: Четверг, 20 Июня 2019, 13:06 | Сообщение # 5 |
старожил
Сейчас нет на сайте
| когда фпс просядает без причин, это очень часто вызвано редактором, а именно: 1. запись в консоль (упомянуто выше) 2. в инспекторе выбрана камера или движущийся обьект 3. в иерархии постоянно создаются/удаляются обьекты или что-то еще, что вызывает перерисовку интерфейса редактора каждый кадр
|
|
| |
BassPiraT92 | Дата: Пятница, 21 Июня 2019, 21:33 | Сообщение # 6 |
участник
Сейчас нет на сайте
| pixeye, CPU main 200-290ms выдает при 20 спрайтах движущихся через MoveToward. Как MoveToward отключаю, спрайты спавнятся штук по 300 и не чего не висит.
Есть ли аналог MoveToward или как его лучше оптимизировать? TopDown 2D игра шутер
|
|
| |