ОПТИМІЗАЦІЯ DROID INVADERS

&nbsp

Перед тим як подумаємо про оптимізацію нашої гри, покращимо її продуктивність

Помістимо екземпляр класу FPSCounter в клас GameScreen і подивимося на його виводяться повідомлення на пристроях Hero, Droid і Nexus One

Нього трохи не справляється, але при 25 кадрах в секунду раніше можна насолодитися грою Пристрій Nexus One видає 47 кадрів в секунду, Droid від нього не відстає, що позитивно позначається на грі Що ми можемо поліпшити

Якщо розглядати продуктивність з точки зору зміни станів, то все не настільки погано Ми можемо зменшити кількість надлишкових змін, наприклад виклики методів glEnableO / glDisableO Але з досвіду попередніх оптимізацій ми вже знаємо, що це не дасть нам особливих переваг

Щоб поліпшити продуктивність на Нього, є тільки один спосіб – вимкнути освітлення Як тільки ми видаляємо виклики відповідних методів glEnable / glDi sable, що знаходяться в WorldRenderer render , WorldRenderer renderShi p і Worl dRenderer renderlnvaders, Нього починає показувати такі результати: досить непогане поліпшення, особливо враховуючи те, що ми всього лише відключили освітлення

Можливе створення спеціального коду, отрісовиваємих обєкти на різних пристроях, але ми постараємося цього уникнути Чи є ще що-небудь, що ми можемо зробити

Спосіб, яким ми отрісовиваємих вибухи, кілька не оптимальний в тому випадку, якщо вибухає загарбник Ми міняємо модель і привязки текстур в середині циклу отрисовки загарбників, це не обрадує графічний конвеєр Однак вибухи відбуваються не так часто і не займають багато часу (1,6 секунди) Виміри проводилися в ситуаціях, коли на екрані не було вибухів, тому вони неідеальні

Правда полягає в тому, що ми намагаємося отрісовать занадто багато обєктів за один кадр, що викликає затримку роботи графічного конвеєра З нашими поточними знаннями OpenGL ES ми нічого не зможемо з цим вдіяти Однак грунтуючись на тому, що гра працює досить добре на всіх пристроях, ми не зобовязані домагатися продуктивності 60 кадрів в секунду Пристрої Droid і Nexus One відомі своімфіксірованним часом отрисовки навіть не дуже складних 3D-сцен при 60 кадрах в секунду Тому останній урок, який ми винесемо з цього: не сходите з розуму, якщо ваша гра не видає 60 кадрів в секунду Якщо вона непогано виглядає і іграбельна, то ви можете змиритися і з 30 кадрами в секунду

ПРИМІТКА

Типові стратегії оптимізації включають використання відсікання, обєктів-буферів вершин і інших просунутих прийомів, які ми не розглядали Я спробував додати їх в гру Droid Invaders Результат нульовий Ні на одному з пристроїв не підвищилася продуктивність Це не означає, що ці прийоми марні Це залежить від безлічі факторів, і складно передбачити, як поведе себе та чи інша конфігурація Якщо ви зацікавилися, просто прочитайте про ці прийоми в Інтернеті самостійно

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

Ми використовували невеликі прийоми і техніки, вивчені упродовж всієї і, і фінальний результат був досить задовільним Звичайно, ця гра не самого вищого сорту Фактично жодна з наших ігор не затягує надовго Тут в дію вступаєте ви Будьте креативним, розширте ці ігри і зробіть їх цікавими У вас під рукою безліч інструментів

Публікуючи ВАШУ ГРУ

Останнім кроком у становленні розробником ігор під Android є передача вашої гри іншим людям Є два можливих варіанти: взяти АРК-файл з каталогу вашого проекту, помістити його в Інтернет і розповісти про це друзям, щоб вони завантажили його і встановили на своїх пристроях опублікувати додаток на Android Market, як надходять справжні професіонали

Перший варіант – це відмінний спосіб протестувати гру перед виходом на ринок Все, що вам потрібно, – щоб інші люди отримали АРК-файл і встановили його на своїх пристроях Справжнє веселощі починається тоді, коли ваша гра готова вийти на ринок

Джерело: 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>

*

*