Так же, как и программирование игр для настольных компьютеров и консольных систем, создание игр для мобильных телефонов – дело непростое. Вам придется использовать и комбинировать различные приемы и методы программирования, не забывая и про хорошую порцию креативного мышления. Именно сочетание креативного мышления и технических навыков делает программирование игр столь притягательным. Добавьте к этому еще необходимость создания игры на миниатюрном устройстве, имеющем беспроводное соединение с сетью, и вы получите рецепт «техновеселья»!
Как построена эта книга
Эта книга разделена на пять частей, каждая из которых затрагивает различные вопросы программирования игр:
► Часть I: «Основы программирования игр для мобильных телефонов». В этой части вы познакомитесь с основами разработки мобильных игр на основе языка Java и познакомитесь с J2ME Wireless Toolkit. Вы создадите «скелет» игры для мобильного телефона, который будете впоследствии использовать при работе с книгой для написания остальных игр, протестируете созданную игру с помощью эмулятора мобильного телефона Java.
► Часть II: «Специфика создания мобильных игр». В этой части книги вы научитесь использовать графику в мобильных играх, создавать изображения. Вы также узнаете об анимации с использованием спрайтов (спрайт – небольшое изображение, переносимое по экрану независимо от других. – Прим. перев.). Этот метод создания анимации является основным приемом программирования Вы также разработаете две игры: Henway и Cat Catcher. Примечательно, что в этой части книги рассматриваются игры, героями которых являются животные. Не волнуйтесь, чуть позже мы доберемся до пиратов и пришельцев.
► Часть III: «Виртуальные миры и интеллектуальные мобильные игры».
Эта часть познакомит вас с применением слоев и их использованием для создания игр с перекрывающимися объектами. Вы познакомитесь с основами создания Искусственного Интеллекта (ИИ), узнаете, почему он столь важен для игр. Тема ИИ очень сложна, поэтому я обращу ваше внимание лишь на основные и несложные приемы, которые вы сможете воплотить в своих играх. Также в эту части книги включено создание еще одной игры, High Seas, в которой вы будете бороздить морские просторы и сражаться с пиратами и морскими чудовищами.
► Часть IV: «Преимущества беспроводной сети». В этой главе вы узнаете, как использовать главную возможность мобильного телефона – беспроводную сеть. Научившись основам сетевого программирования игр, вы создадите игру NetConnect4 – сетевой аналог популярной игры Connect4. А затем вы разработаете и создадите игру Mad Plumber, в которой вам придется соревноваться с противником в скоростной прокладке водопроводных труб.
► Часть V: «Совершенствование игр». Из этой главы вы почерпнете ряд интересных приемов программирования игр, которые помогут вам сделать игры как можно более красивыми. Также вы узнаете, как создавать и сохранять в телефоне список лучших игроков. В этой части книги вы создадите еще одну игру, Space Out, – космическую «стрелялку», для разработки которой вам потребуется применить все знания, полученные при работе с предыдущими частями.
Что вам потребуется
Предполагается, что вы знаете и понимаете Java. В сущности, я не полагаюсь на сложные программные конструкции этого языка, поэтому вам достаточно знать его основы. Если ваши знания языка Java уже запылились, воспользуйтесь самоучителем Java, который находится на прилагаемом компакт-диске. Книга не предполагает навыков использования Java для создания мобильных игр, не волнуйтесь, если вы никогда не держали в руках телефон, поддерживающий Java.
Все примеры, рассматриваемые в книге, вы можете найти на прилагаемом CD, включая командные файлы, используемые в командной строке J2ME Wireless Toolkit для построения и запуска игр. Пакет J2ME Wireless Toolkit вы также можете найти на сопроводительном компакт-диске. Как я уже упоминал, в составе пакета J2ME Wireless Toolkit вы также найдете инструмент KToolbar, который чрезвычайно полезен для создания и тестирования примеров. Все примеры в книге разработаны так, что их можно легко открыть, откомпилировать и эмулировать с помощью KToolbar.
Помимо некоторых знаний Java, вам потребуется ясный ум и немного творческого подхода, чтобы достичь лучшего результата от работы с книгой. Эта книга послужит вам отправной точкой в увлекательном путешествии в мир создания игр для мобильных телефонов. И если вдруг вы собьетесь с пути, причальте на мой сайт, http://www.michaelmorrison.com/! Здесь, в форуме, посвященном книге, вы, вероятно, сможете найти ответы на мои вопросы. Веселитесь!
Часть I
Основы программирования игр для мобильных телефонов
Глава 1
История электронных игр
Архив Аркад
Выпущенная в 1971 компанией Nutting Associates игра Computer Space заслуженно называется первой аркадой. Эта игра была создана Ноланом Бушнеллом (Nolan Bushnell). Годом позже он основал собственную компанию Antari и продолжил разжигать революцию в мире компьютерных игр, создав Pong. Computer Space – очень простая игра, но ее физическая и электрическая реализации послужили основой для всех последующих аркад. В автомате монеты складывались в покрашенную консервную банку – этот элемент конструкции не был повторен в дальнейшем! Игру Computer Space можно увидеть в классическом фильме 1975 года «Челюсти», в сцене, где эта аркада находится рядом с пляжем.
Обращаясь к прошлому, по крайней мере, к ранним 80-м, когда были популярны спортивные электронные игры, мобильные игры – не новинка. Наиболее распространенная современная электронная игровая система – Nintendo Game Boy – претерпела ряд модификаций, но осталась популярной по сей день. Мобильные компьютерные игры всегда уступали своим «полноценным» вариантам, главным образом потому, что сложно уместить большую производительность в маленьком приборе. Но положение стремительно изменяется, последние модели переносных компьютеров и мобильных телефонов показали, что теперь настоящая вычислительная мощь может поместиться и в ваш карман. С ростом производительности карманных систем увеличились возможности разработчиков игр для мобильных телефонов. Как создателю мобильных игр вам очень важно понимать инструменты и технологии, смежные с процессом разработки игр.
В этой главе вы узнаете:
► о широком рынке мобильных игр;
► об обозримых перспективах игр для мобильных телефонов;
► почему Java является идеальной платформой для разработки мобильных игр;
► что такое J2ME, и каково его место среди языков Java.
Основы программирования игр для мобильных телефонов
По определению, мобильная игра – это игра, в которую вы можете играть в движении. Хотя вы можете не согласиться и сказать, что согласно этому определению игра на ноутбуке – это тоже мобильная игра. Мы ограничим это определение, сказав, что это игра, в которую можно играть на мобильном устройстве, помещающемся на ладони. Но тогда в эту категорию попадут мобильные телефоны, пейджеры, «наладонники», персональные цифровые помощники и карманные игровые устройства. Поэтому для целей этой книги мы будем рассматривать только те игры, которые можно запускать на мобильном телефоне. Хотя это может показаться весьма деспотичным решением, вы увидите, что мобильные телефоны представляют собой уникальный и очень важный тип устройств для создания мобильных игр.
Почему в книге уделяется внимание лишь мобильным телефонам, а не рассматриваются такие устройства, как PDA? Дело в том, что в отличие от ноутбуков, PDA и даже переносных игровых устройств, мобильные телефоны широко распространены во многих социальных и экономических категориях. Поскольку всем близка идея максимально гибкой коммуникации, мобильные телефоны могут не угодить только компьютерщикам, любителям технических новинок или геймерам. Мобильные телефоны – одни из самых мощных компактных устройств, подходящих для программирования игр. Такое сочетание огромной аудитории и быстро растущих технических возможностей делает мобильные телефоны новым рубежом для разработчиков игр.