Глава 17 Оптимизация мобильных Java-игр
...
Архив Аркад
В 1983 году компания Midway выпустила, несомненно, самую известную шпионскую игру Spy Hunter. В игре ваш герой – секретный агент, похожий на Джеймса Бонда. Он управляет автомобилем или катером, оснащенными всевозможным оружием. Вид в игре – сверху, но стрельба в плохих ребят – это задача, сравнимая с погоней за ними. Название главного автомобиля – G-6155 – дань разработчику игры, Джоржу Гомесу (George Gomez), а цифры – дата его рождения. В раннем прототипе игры использовалась музыкальная тема из фильма про Джеймса Бонда, но в конечном варианте она была заменена на тему Питера Гунна (Peter Gunn) из-за проблем с авторскими правами.
Вы знаете, что мобильные телефоны имеют ограничения памяти и мощности процессора. Несомненно, за последние годы эти устройства претерпели массу изменений, но и на сегодняшний день их возможности нельзя сравнить с возможностями персонального компьютера или игровой консоли. Поэтому вы должны разрабатывать игры и создавать код, постоянно осознавая технические ограничения. К счастью, MIDP API помогает вам создавать эффективный код мидлетов, поскольку сам API оптимизирован для применения в мобильных устройствах. Стратегии оптимизации, о которых пойдет речь в этой главе, включают специфические MIDP-оптимизации, а также оптимизации Java и кода, применяемые при разработке мобильных игр.
В этой главе вы изучите:
► основы оптимизации мобильных игр;
► различные методы оптимизации мобильных игр;
► приемы написания оптимального кода Java;
► как использовать анализатор для изоляции и оптимизации кода;
► как отслеживать расход памяти создаваемого приложения.
Понятие об оптимизации мобильных игр
Большинство мобильных телефонов имеют значительно меньшие вычислительные способности по сравнению с настольными компьютерами, игровыми консолями и даже карманными компьютерами. Обычно это не является проблемой, поскольку такие устройства призваны выполнять весьма обыденные функции. Однако в этой книге речь идет о разработке игр для мобильных телефонов, которые, как известно, весьма требовательны к ресурсам процессора и памяти. Очень непросто разработать хорошую игру для устройства, обладающего столь небольшими ресурсами, как мобильный телефон. Оптимизация – это одна из ключевых стратегий, которую используют разработчики мобильных игр, пытаясь преодолеть ограничения.
Хорошо или плохо, но Java – очень гибкий язык программирования. Вы можете создать «тяжелый», неэффективный код даже в такой эффективной среде, как J2ME. Кроме того, даже если ваш код достаточно эффективен, дизайн игры может оказаться неэффективным, что приведет к снижению производительности. Например, вы можете обрабатывать намного больше данных, чем позволяют ограничения мобильного телефона, или искусственный интеллект игры выполняет сложные расчеты, которые не подходят для устройства со столь малыми вычислительными способностями. Любой может попытаться включить в мобильные игры возможности игр для персональных компьютеров или игровых консолей, но это неправильно.
Вы должны делать все возможное, чтобы создать оптимизированные мидлеты, то есть эффективные мидлеты, минимально требовательные к ресурсам устройства. Очевидно, существуют ограничения, насколько можно оптимизировать мидлет. В реальности мобильные сетевые подключения имеют невысокую скорость, поэтому сетевые мидлеты будут работать медленнее несетевых. Означает ли это, что вы не должны разрабатывать сетевые игры? Если вспомнить предыдущий раздел книги, то ответ очевиден – нет. Однако вы должны попытаться минимизировать объем данных, передаваемых по беспроводной сети, чтобы уменьшить влияние эффектов сравнительно низкой пропускной способности сети.
Существует несколько подходов к оптимизации, некоторые из которых значительно более важны для программирования мобильных игр, чем другие. Ниже приведены основные аспекты мидлета, на которые следует обращать особое внимание при выполнении оптимизации:
► восстанавливаемость;
► переносимость;
► размер;
► скорость.
Оптимизация по восстанавливаемости
Наименее важный тип оптимизации мобильных игр – это оптимизация по восстанавливаемости, которая подразумевает принятие мер по созданию более легко управляемого кода, который можно использовать в будущем. Этот тип оптимизации как правило направлен на структуризацию и организацию кода, а не на модификацию применяемых алгоритмов. Вообще говоря, при оптимизации по восстанавливаемости изучается код игры, и вносятся изменения, чтобы помочь другим программистам понять и изменить ее код в будущем.
Читать дальше
Конец ознакомительного отрывка
Купить книгу