Понедельник, 25 Ноября 2024, 22:20

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Оптимизация игры
black_houseДата: Суббота, 18 Января 2014, 15:48 | Сообщение # 1
участник
Сейчас нет на сайте
Собственно, вопрос по сабжу. Как можно оптимизировать 2d игру? После компиляции игры под мобильную ОС (Android), заметны рывки при движении объектов. Читал статью IvanKorobko, познавательно, но есть ли еще какие-то методы оптимизации?

Snow Dream [2d, Android] (v1.3)
berilДата: Суббота, 18 Января 2014, 16:20 | Сообщение # 2
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
Раз
два
три
четыре
и еще много




Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
black_houseДата: Суббота, 18 Января 2014, 16:24 | Сообщение # 3
участник
Сейчас нет на сайте
Спасибо, буду изучать

Snow Dream [2d, Android] (v1.3)
berilДата: Суббота, 18 Января 2014, 16:26 | Сообщение # 4
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
Я правда подумал, что в разделе Юнити тема, поэтому все примеры на работе с Юнити



Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
XakepДата: Суббота, 18 Января 2014, 16:31 | Сообщение # 5
めちゃくちゃちゃ
Сейчас нет на сайте
если пишешь на конструкторе, то там и так должно быть нужные оптимизации, если сам, то разбивай пространство на бинарное дерево, используй SIMD для вычислений, разбивай на потоки, например физика в одном потоке, игровая логика в другом, отрисовка в третьем. Ну в основном хорошо помогает бинарное дерево оптимизировать.
set16Дата: Суббота, 18 Января 2014, 16:36 | Сообщение # 6
постоянный участник
Сейчас нет на сайте
Это чего там наваратить то можно, чтобы 2D тормозила blink

=>The darkness of distant lands [3D]<=
XakepДата: Суббота, 18 Января 2014, 16:41 | Сообщение # 7
めちゃくちゃちゃ
Сейчас нет на сайте
Цитата set16 ()
Это чего там наваратить то можно, чтобы 2D тормозила

очень просто сделать так, чтобы игра начала тормозить, например если ты пишешь игру на C++ без конструктора, то ты от неопытности можешь сразу все объекты которые есть в уровне рисовать, и проверять все со всем на столкновение, или другие взаимодействия, и тогда при большом количестве объектов игра начнет тормозить )
set16Дата: Суббота, 18 Января 2014, 16:44 | Сообщение # 8
постоянный участник
Сейчас нет на сайте
Перегружают физику smile

=>The darkness of distant lands [3D]<=
ArchidoДата: Суббота, 18 Января 2014, 16:58 | Сообщение # 9
Сэнсэй
Сейчас нет на сайте
black_house
Если тема находится в правильном разделе и ты все пишешь сам, то можно сделать несколько вещей. Собрать кучу маленьких текстур в одну большую (используем атласы) + добавить этим текстурам поддержку аппаратного сжатия, пытаться как можно меньше переключать стейты пайплайна (рисовать как можно больше с одной установленной текстурой, например), т.е. нужна сортировка по текстурам, далее пытаться уменьшать количество DrawCalls (собирая как можно больше геометрии в буфер + сортировка по буферам для уменьшения их переключения). Ну и рисовать и апдейтить только то, что видно на экране smile Это из основного.

Update: Добавлю еще, что альфа тест и \ или блендинг в мобильных девайсах, особенно в больших количествах - очень хорошо кушает весь доступный филлрейт, что в итоге приводит к просадке фпс.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Суббота, 18 Января 2014, 17:01
black_houseДата: Суббота, 18 Января 2014, 17:07 | Сообщение # 10
участник
Сейчас нет на сайте
Я использую движок gideros. А вообще, я хотел понять общие принципы оптимизации. Допустим разбивать картинку на более маленькие кусочки или сжимать циклы. Физику не использую, хотя встроен box2d, вытекает вопрос, может тогда лучше использовать этот плагин, чем свой код?

Snow Dream [2d, Android] (v1.3)
ArchidoДата: Воскресенье, 19 Января 2014, 18:27 | Сообщение # 11
Сэнсэй
Сейчас нет на сайте
На более маленькие не нужно разбивать, нужно наоборот как можно больше спрайтов собирать в одну текстуру (атласы), тогда батчинг (если он есть) будет эффективнее работать и меньше переключатся стейты. А вообще, если используется нормальный движок, то для 2Д тут особо нечего придумывать - все основное должно быть сделано на уровне движка. По каким-то конкретным вещам стоит чиатать доки по движку + профильные форумы.

C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг