Введение
Итак, я сижу в кресле стоматолога, жду, пока подействует укол новокаина и мне запломбируют коренной канал. Внезапно ко мне приходит мысль, что я могу потратить это время с куда большей пользой, чем просто ждать. Хотя стоматологическое кресло и слюнявчик ограничивают свободу действий, они не смогут помешать мне сразиться с несколькими сотнями моих близких друзей и заклятых врагов. Быстрым движением руки я достаю из кармана мобильный телефон, поддерживающий Java, и запускаю игру, которая поможет мне не думать об устрашающих инструментах дантиста.
Некоторое время назад я и сам скептически относился к тому, что можно на самом деле сделать на устройстве, которое я часто поднимаю с земли и молю Бога о том, чтобы оно работало. Давайте рассмотрим проблему: мобильные телефоны – это совсем не то, что мы представляли себе, когда думали о будущем интерактивных развлечений. Однако теперь мобильные телефоны превратились в игровые машины, и если вы читаете эту книгу, очевидно, вам хочется проникнуть в мир игр.
Хотя логично объединить в одну группу мобильные телефоны и другие типы переносных устройств (Palm Plot, Pocket PC и Game Boy), в этой книге рассматривается вопрос программирования игр именно для мобильных телефонов. Я не против других устройств, однако ни одно из них не получило столь широкое распространение. Вспомните хотя бы пятерых ваших знакомых и посчитайте, сколько у них сотовых телефонов. Если ответ меньше, чем 4, то дайте им еще пару лет. Вне зависимости от того, смогла ли убедить вас моя речь, мобильные телефоны завоевывают мир с огромной скоростью, и она постоянно увеличивается!
Итак, обладатели персональных коммуникаторов (мобильных телефонов) используют их главным образом для общения друг с другом. Но в наше время появляются новые технологии, которые помогут расширить границы их применения. Технологии, подобные Java, наделяют мобильные телефоны практически теми же возможностями, которыми обладают настольные компьютеры. Совместите это со способностью всех мобильных телефонов поддерживать работу с беспроводными сетями, и вы получите уникальное устройство: широко распространенное, компактное, переносное, работающее с сетями, программируемое – просто мечта для создателя игр!
Я бы солгал, если сказал бы, что программирование игр для мобильных телефонов уже хорошо развито. Технологии новы, а модели телефонов, поддерживающие их, еще более новы. Но, как вы, вероятно, знаете, чтобы быть в курсе новых технологий, нужно быть на шаг впереди них. Учась разрабатывать и создавать игры для мобильных телефонов по мере развития этой сферы, вы сможете в большей степени пользоваться открывающимися возможностями. Игра ли это, которой вы хотите поделиться с друзьями и родственниками, новый хит в среде коммерческих игр, который обеспечит вам место в зале славы создателей игр, – в любом случае в этой книге вы найдете все, что нужно для начала работы. На рис. 1 показан пример игры, которую вы создадите, пользуясь этой книгой.
Рис. 1. Игра Henway очень похожа на классическую аркаду Frogger
Игра Henway, показанная на рис. 1, очень похожа на классическую аркаду Frogger. Если вам не по душе переводить цыпленка через дорогу, вас, вероятно, привлечет другая игра – High Seas (рис. 2).
Рис. 2. Игра High Seas впитала все преимущества перемещающегося фона и «интеллектуальных» компьютерных врагов
High Seas – это игра, в которой вы бороздите морские просторы и спасаетесь от пиратов, избегаете спрутов, плавающих мин и большого корабля пиратов. И это только две игры из пяти, которые вы создадите, работая с книгой. Пусть остальные игры станут для вас сюрпризом!
Для написания игр для мобильных телефонов в этой книге отдано предпочтение языку программирования Java, и для этого есть причина. Я более подробно рассмотрю этот вопрос в главе 1, но если говорить коротко, Java – это доминирующий инструмент разработки игр в настоящее время и в обозримом будущем. Если вы не знаток Java, то на прилагаемом компакт-диске можно найти программу обучения этому языку программирования, «Java Programming Primer». Вне зависимости от того, как вы относитесь к Java в настоящее время, думаю, что к концу прочтения книги, вы согласитесь, что это идеальная технология для разработки игр для мобильных телефонов.
Меня часто спрашивают, какой мобильный телефон я использую для отладки игр. Я отвечаю, что огромный, который лежит на моем столе. Я говорю о своем настольном компьютере, который значительную часть времени я использую в качестве эмулятора мобильного телефона. На сегодняшний день на рынке так много телефонных аппаратов, а новые модели появляются настолько часто, что было бы невозможно порекомендовать какую-то определенную модель, не перенося сроки издания этой книги. Поэтому я советую использовать эмулятор Java, входящий в состав J2ME Wireless Toolkit, который вы можете найти на сопроводительном CD. Конечно, вы наверняка захотите протестировать созданные игры и на реальном сотовом телефоне, но вы оцените, насколько удобно применять эмулятор.
Так же, как и программирование игр для настольных компьютеров и консольных систем, создание игр для мобильных телефонов – дело непростое. Вам придется использовать и комбинировать различные приемы и методы программирования, не забывая и про хорошую порцию креативного мышления. Именно сочетание креативного мышления и технических навыков делает программирование игр столь притягательным. Добавьте к этому еще необходимость создания игры на миниатюрном устройстве, имеющем беспроводное соединение с сетью, и вы получите рецепт «техновеселья»!
Как построена эта книга
Эта книга разделена на пять частей, каждая из которых затрагивает различные вопросы программирования игр:
► Часть 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/! Здесь, в форуме, посвященном книге, вы, вероятно, сможете найти ответы на мои вопросы. Веселитесь!