Faqat Litresda o'qing

Kitobni fayl sifatida yuklab bo'lmaydi, lekin bizning ilovamizda yoki veb-saytda onlayn o'qilishi mumkin.

Kitobni o'qish: «Создание игр для мобильных телефонов»

Shrift:

Об авторе

Майкл Моррисон (Michael Morrison) – разработчик и создатель игр, а также автор различных книг по компьютерным технологиям и интерактивных курсов в Internet. Кроме своей основной профессии писателя и фрилансера, Майкл является креативным директором компании Stalefish Labs, развлекательной компании, которую он основал вместе со своей женой Машид (Masheed). Коммерческим дебютом этой компании была игра Tall Tales: The Game of Legend and Creative One-Upmanship (http://www.talltalesgames.com/). Когда Майкл не сидит за компьютером, не играет в хоккей, не катается на скейтборде и не смотрит фильмы со своей женой, он любит гулять у пруда. Вы можете посетить сайт Майкла в Internet (http://www.michaelmorrison.com/).

Посвящение

Моему давнему другу Рэнди Вимсу (Randy Weems), который научил меня почти всему, что я знаю о программировании игр, и помог разработать мою первую игру для мобильного телефона. Мы потратили на это целую ночь почти 15 лет назад.

Благодарность

Спасибо Майку Стефенсу (Mike Stephens), Лоретте Ятс (Loretta Yates), Марку Ренфроу (Mark Renfrow) и другим замечательным людям из компании Sams Publishing House за то, что они превратили работу над этой книгой в интересный опыт. Также хочу выразить огромную благодарность моему другу и жене Машид за поддержку.

Мы хотим услышать вас

Как читатель этой книги вы – самый важный критик и рецензент. Мы ценим ваше мнение и хотим знать – что делаем правильно, а что, с вашей точки зрения, можно улучшить, какие разделы мы должны еще осветить или рассмотреть более полно.

Как издатель Sams Publishing я жду ваших комментариев. Вы можете отправить мне электронное или обычное письмо, рассказать, что вам понравилось в книге, а что нет, а также поделиться мнением о том, как мы можем сделать наши книги лучше.

Пожалуйста, обратите внимание, что я не смогу вам помочь в решении технических проблем, связанных с темой этой книги. Для этого у нас существует специальная служба поддержки, куда я перенаправлю все технические вопросы.

Пожалуйста, не забудьте указать автора и название книги, а также свое имя, адрес электронной почты и телефон. Я тщательно изучу ваши комментарии и передам их автору и редакторами, работавшими над изданием.

Электронная почта: feedback@samspublishing.com

Почтовый адрес: Michael Stephens,

Associate Publisher,

Sams Publishing,

800 East 96th street,

Indianapolis, IN 46240 USA

Поддержка книги

Если вы хотите узнать больше об этом и других изданиях Sams Publishing, посетите наш Web-сайт (www.samspublishing.com). В поле Search (Поиск) введите ISBN (0672326655) или название книги, которую вы ищете.

Введение

Итак, я сижу в кресле стоматолога, жду, пока подействует укол новокаина и мне запломбируют коренной канал. Внезапно ко мне приходит мысль, что я могу потратить это время с куда большей пользой, чем просто ждать. Хотя стоматологическое кресло и слюнявчик ограничивают свободу действий, они не смогут помешать мне сразиться с несколькими сотнями моих близких друзей и заклятых врагов. Быстрым движением руки я достаю из кармана мобильный телефон, поддерживающий 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/! Здесь, в форуме, посвященном книге, вы, вероятно, сможете найти ответы на мои вопросы. Веселитесь!

Часть 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 и даже переносных игровых устройств, мобильные телефоны широко распространены во многих социальных и экономических категориях. Поскольку всем близка идея максимально гибкой коммуникации, мобильные телефоны могут не угодить только компьютерщикам, любителям технических новинок или геймерам. Мобильные телефоны – одни из самых мощных компактных устройств, подходящих для программирования игр. Такое сочетание огромной аудитории и быстро растущих технических возможностей делает мобильные телефоны новым рубежом для разработчиков игр.

В копилку Игрока

Поставщики беспроводных услуг связи уже создали инфраструктуру продажи и доставки мобильных игр пользователям. В отличие от традиционных игр для персональных компьютеров и игровых консолей, для которых необходима упаковка, CD-ROM и место на полке в магазине, мобильные игры можно доставлять на рынок прямо по воздуху. Это значительное подспорье для тех, кто хочет ворваться на рынок мобильных игр.

Хорошим аргументом может послужить то, что мобильные телефоны открывают значительные возможности для разработчиков игр. Это приводит нас к выводам: что необходимо для разработки мобильных игр, что, в свою очередь, раскрывает технологические причины, почему эта книга рассматривает вопросы создания игр только для мобильных телефонов. Имея ограниченные аппаратные возможности и уникальные требования операционных систем мобильных телефонов, игры существенно отличаются от тех, что создаются для других устройств. Разработка игр для мобильных телефонов требует учета специфических особенностей и требований.

Поэтому, хотя вы можете перенести игру, написанную для настольного или переносного компьютера, в реальность, мобильные игры требуют особых приемов разработки, чтобы они могли удовлетворять особым ограничениям, накладываемым их размером и технологической спецификой. Кроме того, мобильные телефоны поддерживают работу с беспроводными сетями, поэтому многие мобильные игры разрабатываются с учетом возможности одновременной игры нескольких участников посредством беспроводной сети.

Первая игра для мобильного телефона

Чтобы понять, что представляют собой игры для мобильных телефонов, полезно обратиться к истории. Я хочу вернуться в 1997 год, когда была создана первая мобильная игра, поставлявшаяся на телефонах производства фирмы Nokia. Эта игра называлась Snake и была очень простой как с точки зрения графики, так и с точки зрения самого процесса игры: вы управляете бегающей по экрану змеей, которая должна съедать шарики и расти (рис. 1.1).

Рис. 1.1. Классическая игра Snake – пример одной из первых игр для мобильных телефонов


Несмотря на то что Snake очень простая игра, она навсегда изменила образ мобильного телефона – он стал не только средством общения. Вскоре после появления Snake на свет появилось огромное количество других игр, и люди начали больше думать о телефоне как о средстве развлечения.

В копилку Игрока

Игра Snake – компьютерная игра, существовавшая задолго до появления мобильных телефонов. Некоторые предыдущие версии этой игры появились на персональных компьютерах Commodore VIC-20 и Commodore 64, хотя я не удивлюсь, если узнаю, что она появилась еще раньше.

Важно понять, что игра Snake – это быстрая игра, длящаяся всего несколько минут или даже секунд. Даже без дополнительных пояснений вы можете быстро разобраться в игре и веселиться! Не страшно, если игру прервет телефонный звонок, потому как вы с легкостью сможете к ней вернуться. В этом смысле Snake заключает истинный дух мобильный игры – она простая, интуитивно понятная и веселая. Несомненно, вы увидите и сложные игры для мобильных телефонов, но я думаю, что пользователи мобильных телефонов предпочитают игры, подобные Snake.

Рынок мобильных игр

Если логика людей, ожидающих авиарейса или находящихся в кресле пациента, вас не убедила о перспективах рынка мобильных игр, то, вероятно, это смогут сделать некоторые цифры. По оценкам одной нью-йоркской исследовательской фирмы, в 2005 году 200 миллионов человек будут играть в игры на своих мобильных телефонах, тем самым создав рынок стоимостью около 6 миллиардов долларов. Это не долгосрочный прогноз – это реальность! Ключ к пониманию цифр заложен в том, чтобы осознать, что несмотря на общий спад продаж на рынке мобильных телефонов число пользователей этих устройств будет постоянно расти и значительно увеличится в течение следующих нескольких лет. Это и является причиной появления новых моделей телефонов, обладающих более обширными возможностями поддержки игр.

По некоторым оценкам, 200 миллионов в 2005 году – это весьма скромная цифра. Некоторые эксперты в сфере беспроводных технологий предсказывают, что в 2006 году число людей, играющих в мобильные игры, достигнет 850 миллионов. Это очень много! Если вы сравните эти цифры с числом обладателей традиционных игровых приставок или персональных компьютеров, то увидите, что коммерческий потенциал рынка мобильных телефонов чрезвычайно высок.

Но, может быть, я перегибаю палку. Может быть, вы хотите создавать игры лишь для собственного удовольствия и не стремитесь завоевать львиную долю мирового рынка мобильных игр. Может быть, вы смотрите на мобильные игры как на средство общения с другими людьми, средство дружеских соревнований. Поэтому давайте оставим капитализм в стороне, и взглянем на мобильные игры с социальной точки зрения.