Я делаю свою первую игру для Android, которая станет трехмерной аркадной игрой с использованием OpenGLES.Я работал над этим довольно долгое время, в основном оптимизируя движок для обеспечения гибкости в будущем.
В любом случае, теперь я полностью закончил с игровыми функциями и всеми приятными вещами, но он отстаеттелефоны, которые не мои отладочный телефон.В игре довольно качественная графика для мобильной игры, поэтому ожидается небольшое отставание, но разница в производительности между запуском игры на Nexus S и MyTouch 4G огромна.В игру нельзя играть даже на младших телефонах, таких как LG Optimus (игра запускается, но она слишком нестабильна, чтобы играть в нее удобно).На моем Nexus SI редко, если когда-либо, возникает прерывистое движение (я реализовал независимое движение с частотой кадров в игре), но на MyTouch 4G это гораздо чаще, хотя в игру все еще можно играть .... но раздражает
Я пришел из среды разработки настольных игр, и оптимизация никогда не была для меня интересной.Что вы можете посоветовать, чтобы помочь мне ускорить игру?
Я пытался оптимизировать код настолько, насколько это возможно, и производительность значительно улучшилась, но, похоже, некоторые вещи я пропустилили с видомЭто огромная игра с полным движком и большим и большим количеством кода.
Я попытался отследить все выделения и убедиться, что они не были освобождены или забыты во время выполнения, чтобы не вызывать GCпока ты играешь.Это в основном все, что я могу придумать, я не знаю, что еще может сделать его запаздывающим
И я сомневаюсь, что это число поли мешей, потому что, хотя они высокого качества, я добавил опцию вигра, которая позволяет вам выбирать качество графики от низкого, среднего и высокого, как в компьютерной игре, а разница между низким и высоким составляет где-то 600–900 вершин!Единственное улучшение, которое я заметил, это время загрузки.Также нет никаких специальных эффектов постобработки, освещения, шейдеров, SSS в реальном времени или чего-либо подобного.Только текстурированные лица: P
и «отставание», к которому я обращаюсь, являются случайными зависаниями.Я почти уверен, что это GC, но это может быть что-то еще, поскольку я думаю Я нашел и контролировал все распределения (их много).Поскольку моя игра не зависит от частоты кадров, всякий раз, когда она размораживается, игрок, враги и все «прыгает вперед», чтобы не отставать, и это делает и без того сложную игру ОЧЕНЬ более сложной!
Я новичок впрофилирование и оптимизация.Как я могу использовать инструменты отладки Android (или другие сторонние инструменты), чтобы получить более полное представление о том, как моя игра работает во время выполнения, и когда / почему она зависает, чтобы я мог их исправить.
ТАКЖЕ,бонусный вопрос :): есть ли способ посмотреть, как он будет работать на других телефонах, не имея на самом деле телефонов или не зная людей, которые их имеют?Например, как быстро он будет работать на Droid X, даже если у меня нет Droid X и нет никого, кого я знаю