ОПТИМІЗУВАТИ АБО НЕ ОПТИМІЗУВАТИ? – РОЗРОБКА ІГОР ДЛЯ ОС ANDROID

Прийшов час протестувати нашу нову гру Єдине місце в ній, де необхідна висока швидкість, – це ігровий екран Я просто помістив екземпляр класу FPSCounter в клас GameScreen і викликав метод FPSCounterlogFrame в кінці роботи методу GameScreen render Ось результати для пристроїв Нього, Droid і Nexus One:

60 кадрів в секунду – це дуже хороший результат Нього дещо відстає, але тільки лише через те, що його процесор трохи слабше Ми могли б використовувати клас SpatialHashGrid для того, щоб трохи прискорити емуляцію ігрового світу, але це вправа я залишу вам, дорогий читачу Немає серйозної необхідності це робити, оскільки Нього завжди буде стикатися з проблемами (як і будь-який пристрій з ОС Android 15) Набагато більше неприємностей на цьому пристрої доставляє збірка сміття Ми знаємо причину (помилка в прямих ByteBuffer), але нічого не можемо з нею вдіяти Давайте сподіватися, що Android 15 досить скоро кане в Лету

Попередні виміри я виконував при відключеному в головному меню звуці Проведемо їх знову при включеному звуці:

Ох У Нього при включеній фонової музики значно падає продуктивність Відтворення аудіо також впливає і на Droid А ось Nexus One не помітив різниці Що ми можемо з цим зробити Взагалі-нічого Основна проблема зявляється не через звуків, а через фонової музики Розбиття на потоки і декодування МРЗ-або OGG-файла витрачає цикли процесора так працює наш світ Просто враховуйте цей фактор при проведенні вимірювань продуктивності

Підводячи підсумок

Ми створили другу гру використовуючи міць OpenGL ES Завдяки гарному фреймворку реалізувати її було досить просто Використання атласу текстур і класу SpriteBatcher дало гарні результати при тесті продуктивності Ми також обговорили, як отрісовать моноширинний растровий ASCII-шрифт Хороший вихідний дизайн наших ігрових механік, а також прозоре визначення співвідношення між одиницями вимірювання ігрового миру і пікселями значно спростили створення гри Уявіть, як жахливо було б проводити всі розрахунки у точках Всі обчислення були б переповнені операціями поділу – операціями, які зовсім не люблять малопотужні процесори деяких Android-пристроїв Ми також проробили серйозну роботу з розділення логіки гри від її зовнішнього вигляду У підсумку я б назвав гру Великий стрибун успішною

Джерело: Mario Zechner / Маріо Цехнер, «Програмування ігор під Android», пров Єгор Сидорович, Євген зазноби, Видавництво «Пітер»

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*