В большинстве случаев оптимизация по восстанавливаемости ведется в ущерб другим типам оптимизации, поскольку она сосредоточена на понимании и организации кода, а не на оптимизации по размеру и скорости. Поэтому такая оптимизация не занимает первых позиций в списке важных оптимизаций, применяемых разработчиками мобильных игр. Конечно, важно организовать код, соблюдать некоторую структуру и документировать код, но не ставьте это определяющим фактором. Игроки никогда не узнают, насколько элегантен или хорошо документирован ваш код, убедитесь, что в игру можно играть, перед тем как тратить время на его оформление.
...
В копилку Игрока
Несмотря на то что я принизил значимость оптимизации по восстанавливаемости, я ни в коем случае не призываю вас идти против организации и документирования кода. Помните, что если вы создаете успешную игру, вероятно, вы захотите создать продолжение, чтобы закрепить успех. Чем тщательнее и лучше документирован код, тем проще вам будет создавать игры на основе существующего кода.
Оптимизация по переносимости
Подобно оптимизации мобильных игр по восстанавливаемости, оптимизация по переносимости имеет дело с упрощением разработки кода, нежели с увеличением производительности. Под переносимостью я понимаю возможность установки игры на различных моделях сотовых телефонов. Как вы, вероятно, знаете, аппаратное обеспечение мобильных телефонов значительно варьируется от одной модели к другой, а следовательно, может и значительно влиять на работу игры. Возможно, еще более важны значительные вариации размеров экрана мобильных устройств, что зачастую влечет необходимость доработки игровой графики.
Чтобы оптимизировать мобильную игру по переносимости, вы должны четко определить основные отличия между телефонами, на которые рассчитана ваша игра. Например, вы могли бы определить, что процессоры у ряда телефонов практически одинаковы, а размеры экранов и доступной памяти варьируются значительно. В этом случае вы должны сосредоточиться на масштабировании графики, а также предусмотреть ряд настроек для телефонов с меньшим объемом памяти.
...
Совет Разработчику
Один из способов сделать игровую графику более переносимой – это использовать графические примитивы (линии, прямоугольники, эллипсы и т. п.), а не растровые изображения. Графические примитивы легко масштабировать, в то время как изображения приходится масштабировать в графическом редакторе, чтобы сохранить качество. Графические примитивы хорошо подходят, если вы создаете аналог классической векторной аркады, например, Battlezone или Asteroids.
Цель оптимизации по переносимости – избежать необходимости переделывать большую часть кода, чтобы игру было возможно запустить на другой модели телефона. Предвидя возможные отличия моделей телефонов и планируя игру, вы можете создавать переносимый игровой код, в котором необходимо выполнить минимальные графические изменения для установки на различных моделях телефонов.
...
Совет Разработчику
Из главы 3 вы узнали, как определить размер экрана и число поддерживаемых цветов. Используя эту информацию, вы можете разрабатывать игры, которые изменяются в соответствии с возможностями конкретного мобильного телефона. Это можно реализовать не для всех игр, однако такой подход хорошо работает для тех, в которых используются примитивы и растровые изображения, не нуждающиеся в масштабировании. Игра Connect 4, разработанная в главе 15 – хороший пример такой игры.
Оптимизация размера
Другой тип оптимизации игр – это оптимизация размера, которая подразумевает изменения кода для минимизации размеров файла игры. Оптимизация размера очень важна для мобильных игр, поскольку она определяет необходимый объем памяти. Основа оптимизации размера – это повторное использование кода, что проистекает из наследования классов в Java. К счастью, хорошая объектно-ориентированная разработка способствует минимизации кода, поэтому вам редко потребуется выполнять этот тип оптимизации, по крайней мере, с игровым кодом. Например, с целью уменьшения размера полезно помещать повторяющийся код в отдельный метод. В этом случае некоторая оптимизация выполняется еще на стадии разработки кода игры.
Более важная грань оптимизации размера мобильных игр – это ресурсы, используемые в игре (например, изображения, звуковые эффекты и музыка). По сравнению с небольшим кодом Java ресурсы могут быть очень объемными. Поэтому будьте очень внимательны, когда устанавливаете требования к изображениям и звукам в игре. Вы можете использовать, например, изображения меньшего размера или меньшее число изображений, низкокачественные звуки. Вы также должны отслеживать размер прочих данных, необходимых игре, например, данных, загружаемых из сети или сохраняемых в памяти телефона.
Читать дальше
Конец ознакомительного отрывка
Купить книгу