355 500 произведений, 25 200 авторов.

Электронная библиотека книг » Майкл Моррисон » Создание игр для мобильных телефонов » Текст книги (страница 2)
Создание игр для мобильных телефонов
  • Текст добавлен: 15 октября 2016, 03:25

Текст книги "Создание игр для мобильных телефонов"


Автор книги: Майкл Моррисон



сообщить о нарушении

Текущая страница: 2 (всего у книги 35 страниц) [доступный отрывок для чтения: 13 страниц]

Культура мобильных игр

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

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

Создавая среду, в которой игроки могут подключаться к игре и отключаться без проблем, социальный аспект мобильных игр, вероятно, будет наиболее привлекательным. Мобильные коммуникаторы уже сделали мир меньше, а мобильные игры переводят вещи на новый уровень, позволяя людям всей планеты играть вместе вне зависимости от их физического местоположения. Игры могут преодолеть не только пространственные барьеры, но также языковые и культурные. Вам не нужно знать другого языка, чтобы играть в Pong или Snake. И даже более сложные игры сделаны так, чтобы преодолевать межкультурные барьеры.

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

Вероятно, вы не сразу сможете представить игру как средство культурной коммуникации, однако возьмите простую детскую (даже некомпьютерную) игру, подобные игры прошли не одно поколение и даже культуру. Подобно преданиям и легендам, игры, в которые играют люди, говорят многое об их культуре. Распространение игр по всему миру – это реальная возможность узнать других людей и поведать о себе.

Сильная сторона мобильных игр

Пожалуй, самое интересное в мобильных играх – это то, что их рынок до сегодняшнего дня не сегментирован. Новые жанры игр до сих пор не придуманы. Подумайте, как, например, можно использовать возможности GPS (Global Positioning System – Глобальная Система Позиционирования) в играх. Технически возможно играть в рамках реальной географии мира. Иначе говоря, чтобы перемещать своего героя, вы сами должны перемещаться по миру, технология GPS делает это возможным.

Если вы думаете, что идея мобильной игры, взаимодействующей с GPS, – это фантастика, позвольте мне познакомить вас с игрой Pac-Manhattan. Pac-Manhattan – это оригинальная «крупномасштабная городская игра», которая использует карту города Нью-Йорк как игровое поле для игры Pac-Man.

Идея игры заключается в перемещении классической игры из виртуального пространства в реальный мир. Более того, героями игры являются непосредственно люди, бегающие по улицам Манхэттена. Игрок, Pac-Man, прокладывает свой путь через Парк Вашингтон Сквер, а его преследуют привидения Inky, Pinky и Clyde. На рис. 1.2 показана игровая карта Pac-Manhattan, которая превращает улицы Нью-Йорка в игровой лабиринт.

Рис. 1.2. Игровая карта Pac-Manhattan превращает улицы Нью-Йорка в игровую карту

Используя мобильные телефоны и сеть WiFi для передачи данных, центр управления обновляет данные о положении игроков и отображает их на сайте Pac-Manhattan (http://www.pacmanhattan.com/). На рис. 1.3 показан пример картинки из игры Pac-Manhattan в самом разгаре действий. Помните, что все действия игры разворачиваются на улицах реального города.

Рис. 1.3. Игра Pac-Manhattan очень похожа на оригинальную Pac-Man, однако в ней перемещаются реальные люди по улицам Нью-Йорка

Хотя для реализации Pac-Manhattan требуются нестандартные коммуникативные возможности, в сущности, эта игра не попадает под данное нами определение мобильной игры, потому что мобильные телефоны в ней используются исключительно как голосовые коммуникаторы. Другими словами, на мобильном телефоне нет как таковой игры, вы с такой же легкостью можете использовать walky-talky (переносная рация). Более интересная с технической точки игра Pac-Manhattan основывалась бы на использовании мобильных клиентов GPS, определяющих местоположение игрока и отправляющих эти данные на центральный сервер. По слухам, ребята из Pac-Manhattan сейчас работают над этим, поэтому следите за новостями на сайте!

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

Если вы хотите развернуть действия Pac-Manhattan на улицах вашего города, то на сайте этой игры можно загрузить пакет «In Your City Kit», который содержит всю информацию, необходимую для постановки игры в вашем городе. Предупреждаю, что эта игра намного опаснее своего компьютерного прототипа, поэтому вы играете на свой страх и риск.

GPS в игре Pac-Manhattan – это лишь один из примеров того, как мобильные телефоны могут объединять не совместимые ранее технологии и открывать новые горизонты для создания мобильных игр. Мы живем в чрезвычайно удивительное и динамичное время мобильных игр!

Знакомство с мобильными платформами

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

Хотя «ландшафт» мобильных игр изменяется быстро, приходит день, когда та или иная платформа становится доминирующей. Можно составить список платформ, подходящих для написания мобильных игр:

► Java 2 Micro Edition (J2ME);

► Binary Runtime Environment for Wireless (BREW);

► Symbian;

► Windows Mobile Smartphone.

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

Еще одна платформа для мобильных игр – это SMS или Short Message Service (Служба коротких сообщений). SMS – это технология, которая позволяет отправлять и получать короткие сообщения от игрового сервера. SMS – это предыдущий этап развития мобильных игр, который можно использовать для текстовых игр и чатов, но эту платформу сложно применять для создания чего-то другого. Кроме того, за отправку SMS необходимо платить, а это может оказаться весьма накладным при большом объеме получаемых/отправляемых сообщений.

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

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

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

Java 2 Micro Edition (J2ME)

J2ME – это компактная версия популярного языка программирования Java, созданного Sun Microsystems. Многие и не подозревают, что изначально Java создавался как язык программирования мобильных устройств, поэтому он вернулся к истокам и воплотился в J2ME. J2ME содержит широкий спектр инструментов для разработки и богатый программный интерфейс приложения (application programming interface, API) для разработки приложений для мобильных телефонов, известных как MIDlets (о значении этого термина речь пойдет позже).

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

Эта платформа наиболее широко поддерживается производителями мобильных телефонов в США. Такие гиганты, как Motorola, Nokia, Research in Motion (RIM) и Samsung, поставляют телефоны, поддерживающие J2ME.

Binary Runtime Environment for Wireless (BREW)

В отличие от J2ME, поддерживаемого широким спектром телефонных аппаратов, BREW – это платформа, ориентированная на телефоны с технологией Qualcomm's CDMA (Code Division Multiple Access – множественный доступ с кодовым разделением каналов). Но это не говорит о том, что BREW имеет весьма ограниченное распространение. Для создания игр для платформы BREW разработчики часто используют язык программирования C или C++ в сочетании с BREW API. BREW также поддерживает такие языки разработки приложений, как XML и даже Java.

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

Платформа BREW нашла наибольшее распространение в Азии (особенно в Японии и Южной Корее). В США на сегодняшний день Alltel и Wireless – это лидирующие поставщики беспроводных решений, предлагающие телефоны с поддержкой BREW.

Symbian

Symbian – это мобильная операционная система, которая имеет существенное отличие от BREW. Оно заключается в том, что это открытая операционная система, доступная по лицензии любому производителю мобильных телефонов. Операционная система Symbian была разработана компанией Symbian Ltd., которая является консорциумом компаний Motorola, Nokia, Panasonic и Sony/Ericsson. Благодаря простоте лицензирования, эта ОС поддерживается многими моделями телефонов.

Существует масса возможностей при разработке приложений для Symbian, поскольку эта операционная система поддерживает такие языки программирования, как C++, Java и Visual Basic. На сегодняшний день большинство мобильных игр и приложений для Symbian написаны на C++, поскольку это обеспечивает большое быстродействие и интеграцию с операционной системой, нежели аналоги, созданные с использованием Java. Несомненно, Java начинает компенсировать недостаток в производительности между приложениями, написанными на этом языке, и собственным кодом, но все-таки в большинстве случаев собственные программы работают эффективнее, чем Java-аналоги. Это особенно важно, если дело касается игр, где каждая доля мощности процессора на счету.

Так почему бы не остановиться на Symbian, а не на Java? Простой ответ заключается в том, что Java распространен широко, в то время как Symbian – это лишь одна из операционных систем.

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

Windows Mobile Smartphone

Вы ведь не думали, что Microsoft будет сидеть в стороне и спокойно следить за развитием мобильных игр без собственной операционной системы, не так ли? Конечно, нет! Компания Microsoft немного преуспела, выпустив операционную систему Windows Mobile, устанавливаемую на карманных компьютерах и усовершенствованных мобильных телефонах, известных как смартфоны (Smartphone). Хотя некоторые Pocket PC могут выполнять функции мобильных телефонов, все-таки они ближе к PDA, нежели к телефону, хотя бы по своим габаритным характеристикам: Pocket PC имеет достаточно широкий экран (240х320), а для ввода используется перо (stylus).

Хотя Pocket PC как устройства не очень похожи на мобильные телефоны, операционная система Windows Mobile – это совершенно иное дело. Компания Microsoft смиренно ждет времени, когда технологии мобильных телефонов смогут соответствовать требованиям недавно выпущенной операционной системы Smartphone, которая является разновидностью Windows Mobile для мобильных телефонов. Эта операционная система привлекает прежде всего тем, что она не является «урезанным» вариантом Windows Mobile. Главное ее отличие заключается в измененном интерфейсе (ввиду меньших размеров экрана и отсутствия электронного пера). В итоге вы получаете полноценную систему Windows Mobile в мобильном телефоне с логотипом Smartphone.

Но что это значит с точки зрения перспективы разработки мобильных игр? Это значит, что вы можете использовать те же самые инструменты API, которые сегодня применяются для создания игр для Pocket PC, например, С, С++ или Microsoft C# в сочетании с Windows Mobile API. Разработка игр для Pocket PC активно ведется в течение нескольких последних лет, поэтому в некотором смысле Smartphone изначально получает значительный толчок, несмотря на то, что эта операционная система является сравнительно новой для рынка.

Компании Motorola и Samsung производят смартфоны в США на основе AT&T Wireless и Verizon Wireless. Однако ввиду силы компании Microsoft, я вижу в скором будущем быстрое увеличение количества предлагаемых на рынке устройств, снабженных этой операционной системой.

Java как платформа для мобильных игр

Если вы умудрились прочитать все примечания «В копилку Игрока», то вы уже знаете, что в этой книге внимание будет уделено именно J2ME. Я объясню такое решение чуть позже, а пока рассмотрим, что же представляет собой эта технология, и какие возможности она предоставляет с точки зрения программирования мобильных игр.

Что такое Java?

Ранее я упоминал, что изначально Java был языком программирования, который позволял сетевым устройствам связываться друг с другом. Если быть более точным, то Java зарождался как проект в Sun, целью которого было научиться внедрять компьютеры в повседневную жизнь. Одной из основных задач проекта было заставить все компьютеризованные устройства взаимодействовать друг с другом. Как выяснилось, Sun опередил свое время в попытке использовать Java для соединения бытовых приборов. Однако компания быстро отреагировала и завершила работу над проектом, сделав Java успешным Web-ориентированным языком программирования.

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

Почему Java?

Даже если бы Java был идеально приспособлен для разработки приложений для мобильных телефонов, он бы не нашел широкого применения без поддержки промышленности. На сегодняшний день Java – доминирующая технология разработки программного обеспечения для мобильных телефонов. Все говорит о том, что Java укрепится на рынке и, вероятно, расширит свой сегмент. По оценкам ряда специалистов к 2007 году будет продано 450 миллионов телефонов, поддерживающих Java, что составит 75 % рынка сотовых телефонов.

Разработчики активно используют Java, поскольку эта платформа является открытой. Это значит, что если вы разработали код, то его можно использовать в различных мобильных устройствах. К сожалению, такая «открытость» Java была несколько осложнена наличием API других производителей и различиями аппаратного обеспечения различных устройств. Тем не менее вы можете написать код и, не внося никаких изменений, использовать его на разнообразных мобильных телефонах. Сравните это с платформой BREW, созданной специально для телефонов, работающих в сетях Qualcomm CDMA.

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

С технической точки зрения, несмотря на то что Java и J2ME «более открыты», чем BREW, тем не менее они до сих пор не являются языками программирования с открытым кодом. Все разновидности Java-технологии, включая J2ME, принадлежат Sun Microsystems. К счастью, Sun была очень любезна и дала возможность свободного формирования стандартов Java однако многие разработчики до сих пор лоббируют их, чтобы перевести Java в сообщество Открытого Кода.

Интересный виток взаимоотношений между Java и BREW случился в конце 2002 года, когда в свет вышла виртуальная машина Java для устройств, работающих на платформе BREW. Это означает, что BREW-устройства могут эффективно работать с Java-приложениями, как будто они изначально поддерживали Java. Но при этом Java не конкурировала с BREW как платформа для разработки игр. Однако поскольку телефоны, поддерживающие только Java, не поддерживают BREW, появление виртуальной машины означает увеличение доли на рынке, если вы используете Java.

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

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

Java и программирование мобильных игр

Вы знаете «что» и «почему», а теперь важно рассмотреть вопрос «как». Иначе говоря, как программировать мобильные игры с помощью Java? Прежде всего при программировании игр вызывают интерес следующие области технологии:

► графика и анимация;

► звук;

► пользовательский ввод;

► работа в сети.

В следующих нескольких разделах рассматривается каждый из этих вопросов с точки зрения J2ME.

Графика и анимация

Стандартный API включает поддержку всевозможных графических элементов, таких как, например, изображения, двухмерные графические примитивы (линии, прямоугольники, эллипсы и т. д.) и анимация. В терминах анимации J2ME поддерживает спрайты – изображения, свободно перемещаемые по экрану вне зависимости от других. API среды J2ME также поддерживает детектирование столкновений спрайтов, что позволяет определять, столкнулись ли два спрайта. Это очень важное свойство, необходимое для создания практически любой игры в стиле «экшн». Вы познакомитесь со спрайтами в главе 5.

Другая интересная особенность J2ME – это замощенные слои. Вы можете выбрать небольшое изображение и замостить им фоновый слой. Такие слои используются в играх для создания больших перестраиваемых карт, что позволяет сэкономить память. Благодаря удобному менеджеру слоев в J2ME можно с легкостью управлять несколькими слоями. Таким образом, можно создать один слой – полностью фоновый, который можно использовать как декорацию, и еще один слой – для создания преград на пути героя игры. В главе 10 рассказывается о замощенных слоях, а в главе 11 речь идет о менеджере.

Обработка ввода пользователя

Пользовательский ввод очень важен для игр: он определяет, как удобно игроку взаимодействие с игрой. Также ввод очень важен потому, что определяет первичный интерфейс между игроком и игрой. J2ME поддерживает клавишный ввод, который на сегодняшний день является единственным способом ввода на мобильном телефоне. Существует возможность непосредственно считывать состояние клавиш на телефоне, это очень важно, если вы хотите обеспечить высокую степень взаимодействия игрока и игры. Особенности обеспечения ввода через J2ME API описаны в главе 6.

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

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

Использование звука в играх

«Большую тройку» самых важных элементов мобильных игр завершает звук. J2ME поддерживает воспроизведение цифрового звука в форматах PCM или WAV, а также музыку в формате MIDI. Поддержка звука основана на Java Media API – API, предназначенного для записи и воспроизведения звука и видео на мобильных устройствах. Для разработки игр все, что вам понадобится узнать, – это как в нужный момент воспроизвести звук и, может быть, видео.

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

Чтобы не уходить далеко от разработки игр, в этой книге будут рассмотрены лишь вопросы воспроизведения аудио средствами J2ME.

В главе 8 вы познакомитесь с программированием звуков, а также звуковым форматом WAV и музыкальным MIDI.

Мобильные сети

Самой привлекательной возможностью мобильных игр будет, вероятно, возможность работы в сети. Помня это, вы можете понять, что ориентированный на сети Java чрезвычайно удобен как платформа для мобильных игр. Сетевые возможности Java являются неотъемлемой частью его среды выполнения. В отличие от других языков программирования игр (C или C++), язык Java был ориентирован на поддержку сетей.

Объедините сетевую ориентированность Java и независимость этой платформы, и вы получите игровую платформу, которая преодолевает все преграды на пути доступности пользователю. Это очень важно, особенно когда вы поймете, что пользователи захотят играть в игры на различных устройствах и в различных беспроводных сетях. Игрок не должен вникать в проблемы, связанные с отличиями мобильных телефонов разных производителей. Благодаря поддержке сетей языком Java разработчикам теперь не нужно заботиться о различиях аппаратного обеспечения.

О сетевых мобильных играх речь пойдет в главе 14, а в главе 15 будет рассмотрен пример создания такой игры.


    Ваша оценка произведения:

Популярные книги за неделю