Марио Цехнер — «Программирование игр под Android»
Добро пожаловать в мир разработки игр для платформы Android. Меня зовут Марио, я буду вашим гидом в течение следующих 14 глав. Вы здесь для того, чтобы узнать больше о разработке игр для Android, и я надеюсь, что стану тем, кто поможет вам реализовать ваши идеи. Мы рассмотрим широкий спектр тем и вопросов: основы Android, программирование звука и графики, использование математики и физики, а также пугающую вещь под названием OpenGL ES. На основании всех этих знаний мы создадим три разные игры, одна из которых будет выполнена в 3D.
Разработка игр — несложная задача, если вы знаете, что делаете. Поэтому я старался представить материал в таком виде, чтобы вы не просто брали из него полезные блоки программного кода, но и понимали общую картину процесса разработки игр. Осознание основных принципов — ключ к реализации сложных игровых концепций. Вы сможете не только создавать игры, похожие на примеры из этой книги, но получите достаточно знаний, чтобы использовать материал из Интернета и других книг для реализации ваших самых смелых идей в разработке игр.
Целевая аудитория
Эта книга адресована в первую очередь начинающим разработчикам игр. Вы можете приступать к созданию игр, не обладая каким-либо знанием о предмете. Я проведу вас с самого начала. Однако я рассчитываю на ваше (пусть самое небольшое) знакомство с Java. Других требований у меня нет — знакомство с Android и Eclipse также не требуется! Это издание будет полезно и разработчикам среднего уровня, которые хотят поближе познакомиться с Android. Некоторые материалы из книги будут им хорошо известны. Однако в ней много трюков и подсказок, которые сделают книгу полезной и для них. Android иногда — вещь в себе, и это издание поможет с ней справиться.
Как построена эта книга
В книге использован интерактивный подход, благодаря которому вы постепенно, но уверенно пройдете путь от самых основ до экзотических усовершенствований (вплоть до использования аппаратного ускорения). В ходе изучения глав вы создадите повторно используемую программную базу, поэтому я советую изучать главы по порядку. Конечно, более опытные читатели могут пропускать некоторые разделы, посвященные вещам, с которыми они хорошо знакомы. И все же будет полезно пробежаться по коду в этих главах, чтобы быть уверенными в понимании того, как классы и интерфейсы используются в следующих, более сложных разделах.
Как получить исходные коды
Эта книга построена по принципу «все в одном»; весь необходимый для запуска примеров и игр код содержится в ней самой. Но копировать листинги из книги в Eclipse — не самая удачная мысль. Кроме того, игры состоят не только из кода, но и из активов, которые вы не сможете скопировать из книги. Процесс набора кода из книги в Eclipse может привести к появлению ошибок. Роберт (технический рецензент книги) и я позаботились о том, чтобы в листингах этой книги не было ошибок, но барабашки не дремлют.
Чтобы облегчить вам процесс, я создал проект в Google Code, содержащий следующие элементы:
- Весь программный код и активы под лицензией GPL 3, доступные из репозитория Subversion проекта.
- Небольшое текстовое руководство, описывающее процесс импорта проектов в Eclipse, а также видеоролик, демонстрирующий то же самое.
- Трекер возникающих проблем, с помощью которого вы можете сообщать обо всех ошибках в самой книге или в программном коде. После помещения описания проблемы в трекере я смогу разместить исправленные версии в репозитории Subversion. Таким образом, вы всегда будете обладать актуальной, лишенной ошибок (надеюсь) версией кода из данной книги, которой смогут пользоваться и другие читатели.
- Группа обсуждения книги, вступить в которую может каждый. Я, конечно, тоже буду там.
Для каждой главы, содержащей программный код, в репозитории Subversion имеется аналогичный проект Eclipse. Проекты независимы друг от друга, поскольку в каждой последующей главе мы наращиваем созданный в предыдущих главах функционал. Код для глав 5 и 6 содержится в проекте ch06-mrnom. Google Code-проект размещен по адресу http://code.google.com/p/beginningandroid-games.