Суббота, 18.05.2024, 17:13
Приветствую Вас Гость | RSS
Форма входа
Поиск
Календарь
«  Май 2024  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Глава 1: Приступая к работе

Глава 1: Приступая к работе

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

Это первая глава книги, которая готовилась в качестве практического руководства, представляющая пошагово то, как создать игру для платформы Windows Phone 8. Тем не менее, это не будет просто "простая игра с очень ограниченным функционалом", потому что вы узнаете, как оснастить её 2D и 3D графикой, поддержкой аудио и видео, картами, геолокацией, дополненной реальностью, распознаванием и синтезом речи, а также интеграцией с социальными сетями, обменом данными с помощью веб-сервисов, и даже больше!

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

Начнем приключение связанное с программированием игр для платформы Windows Phone 8!

Платформа Windows Phone

Книга связана с разработкой игр для Windows Phone. Это одна из существующих мобильных платформ, и создана компанией Microsoft. Её новая версия (Windows Phone 8) была выпущена в последнем квартале 2012 года. Она работает под управлением Windows Phone 8.0 OS, которая отличается от Windows Phone 7.1 OS, установленной на устройствах Windows Phone 7.5. Тем не менее, на устройствах Windows Phone 8 вы можете запускать приложения, разработанные для предыдущей версии этой операционной системы.

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

Начиная с Windows Phone 7, Marketplace (в настоящее время "Магазин Windows Phone") выбран в качестве централизованного места, в котором пользователи могут просматривать, читать информацию и приобретать или загружать приложения. Таким образом, возможность установки программ непосредственно на устройство, без необходимости загрузки их из магазина, ограничена. Конечно, разработчики могут легко поставить своё программное обеспечение непосредственно на девелоперски разлоченные устройства, чтобы проверить его, прежде чем опубликовать в магазине.

Платформа Windows Phone, поддерживает интеграцию со многими интернет-источниками, в том числе с социальными сетями (например, Facebook и Windows Live), а также с учетными записями электронной почты. Эти источники могут автоматически обновляться, и данные могут быть представлены пользователю в удобном виде, например, путем информирования об входящих сообщения электронной почты и с использованием фотографий из Facebook в качестве изображений, представляющих контакты в телефоне.

Платформа Windows Phone, вводит определенные кнопки, которые позволяют вернуться, в главное меню, и поиск данных в различных источниках, включая Интернет с использованием Bing.

Оформление системы можно регулировать, указав тип фона (темно-или светло-), а также цветовой акцент, который виден в главном меню и список приложений. Новейшая версия Windows Phone поддерживает три разрешения экрана - два в соотношении 15:09 (480 х 800 и 768 х 1280 пикселей) и один в 16:09 (720 х 1280 пикселей).

Что касается внутренних концепций, платформа Windows Phone 8, похожа на операционную систему Windows 8, которая установлена на настольных ПК, ноутбуках и планшетах. Одним из видимых сходства является существование Windows Phone Runtime, который имеет множество функций, общих с настольной версией Windows 8, названной Windows Runtime. Как уже упоминалось в http://msdn.microsoft.com/library/jj681687, Windows Phone Runtime обеспечивает инфраструктуру и множество функций специфичных для телефона, в том числе API, для сенсоров и датчиков местоположения. Windows Phone Runtime доступен из любой модели программирования, используемой при разработке приложений для этой платформы.

Управляемая, нативная, и гибридная разработка

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

Управляемый метод

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

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

В случае платформы Windows Phone 8, управляемый подход поддерживается языком C# вместе с XAML, который кратко представлен в Приложении B: Языки и технологии.

Нативный метод

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

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

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

В случае Windows Phone 8, нативный подход используется в проектах, созданных в языке Си++ с использованием технологии Direct3D. Это действительно мощный план действий, который позволяет разработчику использовать существующие участки кода, которые подготовлены на C++, или даже включают дополнительные промежуточные решения, такие как продвинутые системы для обнаружения столкновений.

Гибридный подход

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

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

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

Платформа Windows Phone 8 поддерживает гибридную разработку путем объединения частей, созданных на C++ и Direct3D с другими, которые основаны на C# и XAML. Такой подход очень полезен в случае игр, и описывается в этой книге.

Первые шаги

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

Набор средств разработки программ

Для программирования приложений и игр для платформы Windows Phone 8, доступен специализированный SDK (Software Development Kit). Он называется Windows Phone SDK 8.0 и содержит несколько инструментов, которые образуют законченную среду для разработки мобильных приложений, в SDK входят:

• IDE — Microsoft Visual Studio Express 2012 для Windows Phone

• Эмуляторы для платформ Windows Phone 7 и 8

• Много полезных программ, например, для регистрации телефона

• Пакеты SDK для дополнительных технологий

Для установки SDK, вам необходимо скачать инсталлятор с сайта http://www.microsoft.com/download/details.aspx?id=35471. Для использования IDE вместе с эмулятором, компьютер должен работать под 64-битной операционной системой Windows 8 в издании Pro или более, с включенным Hyper-V. Более того, процессор должен поддерживать аппаратную виртуализацию, Второй Уровень адресов (SLAT), а также аппаратное предотвращение выполнения данных (DEP). Подробнее и дополнительные требования представлены на http://msdn.microsoft.com/library/ff626524.

Интегрированная среда разработки

Windows Phone 8 приложения могут разрабатываться с использованием различных версий Microsoft Visual Studio 2012 IDE, в том числе:

• Максимальная, Премиум и Профессиональная - поддерживают много функций полезных при создании проектов, сочетающих различные технологии

• Экспресс версии - посвящены конкретной технологии и содержат ограниченное подмножество функций (по сравнению с версиями, упомянутыми ранее).

Для создания игры, описанный в этой книге, используется Microsoft Visual Studio Express 2012 для Windows Phone. Он доступен бесплатно, и вполне достаточен для разработки простых проектов. После установки SDK, ярлыки для запуска интегрированной среды разработки должны появиться в меню Пуск.

Если у вас уже есть другая версия Microsoft Visual Studio 2012 (например, Максимальная), вы также можете использовать её для создания приложений под Windows Phone 8. Во время установки Windows Phone SDK 8.0, необходимые дополнения будут настроены автоматически.

Microsoft Visual Studio Express 2012 для Windows Phone должна быть зарегистрирована онлайн. Необходимый сайт открывается после выбора опции "Регистрация продукта" из меню "Справка". Вы должны войти в учетную запись Майкрософт, а затем заполнить онлайн форму. Затем ключ продукта генерируется и отображается на веб-сайте, а также отправляется на адрес электронной почты. После вставки его в окно в интегрированной среде разработки, программное обеспечение может быть успешно зарегистрировано и должно отобразиться сообщение "Product Key Applied" (Ключ продукта принят).

Регистрация учетной записи разработчика

Установки SDK не достаточно для публикации созданных приложений и игр в магазине Windows. Для выполнения этой операции, а также для тестирования программного обеспечения на телефоне, требуется учетная запись разработчика. Процесс её создания довольно прост и описан на сайте http://dev.windowsphone.com/en-us/join.

После успешной регистрации, вы можете войти центр разработчика Windows Phone и увидеть "Панель" (Dashboard), на которой представлено много полезной информации. Она включает в себя данные счёта, информацию о зарегистрированных телефонах, и некоторые отчеты. В случае публикации платных приложений, важно заполнить налоговую анкету и предоставить другую необходимую информацию, в соответствии с сообщениями, доступными на веб-сайте в учётных данных.

Регистрация телефона

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

На каждой учетной записи разработчика, могут быть зарегистрированы три устройства.

Чтобы зарегистрировать аппарат Windows Phone 8, вы должны выполнить следующие действия:

  1. Подключите его к компьютеру с помощью кабеля USB и разблокируйте экран. Далее, телефон должен быть автоматически распознан операционной системой.
  2. Включите передачу по мобильной связи или настройте Wi-Fi подключение на телефоне.
  3. Запустите Windows Phone Developer Registration tool (устанавливается с SDK) на машине разработчика (например, из меню Пуск).
  4. Убедитесь, что утилита показывает статус "Идентификация устройства Windows Phone 8". Нажмите на кнопку Регистрация, чтобы разблокировать телефон.
  5. Нажмите на кнопку "Регистрация" и введите данные для учетной записи Майкрософт на сайте, который откроется в новом окне.

Через несколько секунд, статус должен поменяться на "Поздравляем! Вы успешно разблокировали свой Windows Phone". Теперь вы сможете увидеть информацию о телефоне на "Панели" в центре разработчика Windows Phone. Помимо отображения данных зарегистрированных телефонов, вы также можете удалить некоторые телефоны и проверить даты их регистрации.

Концепция игры

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

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

Цель

Игра называется "Space Aim 3D" и ее основной целью является - управление космической ракетой для достижения конечной планеты. Пользователю необходимо поворачивать телефон, чтобы указать направление ракеты и избежать астероидов. Игра представляется 3D-графикой и показывает мир с точки зрения ракеты, как показано на следующем скриншоте (справа). По достижении планету, номер уровня увеличивается. Когда ракета проходит астероиды, пользователь получает очки.

Игра содержит неограниченное количество уровней, но с каждым последующим уровнем сложность возрастает, что проявляется в увеличении скорости и возрастании числа астероидов. Пользователь имеет ограниченное число ракет, но может получить дополнительные путем достижения, определенного числа очков. По умолчанию, после каждых 100 000 пунктов, пользователь получает дополнительную ракету. При столкновении ракеты с астероидом, ракета разрывается, и пользователь должен воспользоваться другой. Игра заканчивается, когда у игрока заканчиваются ракеты.

Экраны

В игре используется набор экранов (также известный как страницы), которые могут быть открыты только в определенном порядке. Экраны показаны на следующем рисунке в виде окружностей с именами внутри. Они связаны стрелками, представляющими способ того, как пользователь может изменить текущий активный экран. Например, игрок может перемещаться с экрана "Меню" (Menu) на экран "Справка" (Help), и вернуться точно таким же образом. Более сложный пример включает страницу "Игра" (Game). В этом случае, игрок может перемещаться из главного "Меню" в "Игра", но возвращение возможно только через "Пауза" (Pause) или экран "Результат" (Result).

Страницы делятся на нативную и управляемую части. Как показано на предыдущем рисунке, "Игра", "Пауза", и экран "Результат" реализованы с использованием нативного подхода разработки. Остальные страницы включены в управляемую часть проекта.

Главная страница называется "Меню" и запускается сразу после запуска приложения. На этом экране можно запустить игру (после нажатия на "Play!"), и перейти к "Карта", "Мир", "Звания", "Настройки", "Сеть", и "Справка", как показано на следующем рисунке (слева). Значок микрофона будет использоваться, чтобы начать процесс перемещения на другой экран, на основе результатов распознавания речи. Фоном страницы служит подготовленное изображение, представляющее собой космическое пространство.

Страница "Игра" показывается во время игры, и отображает игровой мир с точки зрения космической ракеты. Вид включает астероиды и целевую планету. С помощью 3D-графики, эти объекты становятся все больше, когда ракета приближается. Некоторая дополнительная информация (номер текущего уровня и оставшихся ракет, а также количество очков) отображается снизу, как показано на предыдущем рисунке (справа).

Можно поставить на паузу во время игры. В таком случае, отобразится дополнительный экран ("Пауза"), как показано на следующем рисунке (слева). Затем пользователь может легко возобновить игру, перезапустить её с первого уровня, а также вернуться в главное меню. Как упоминалось ранее, игра заканчивается, когда у пользователя заканчиваются ракеты. В этом случае показывается специальный экран, называемый "Результат". Он содержит информацию о счете и уровне, а также кнопки перемещения в главное меню и перезапуска игры, как указано на рисунке ниже (справа). Более того, игрок может отправить результат, таким образом, он может быть принят во внимание при расчете глобальных высших оценок.

Помимо описанных выше экранов, приложение оснащено ещё несколькими страницами, включая "Карта", которая представлена на следующем наброске (слева). Она показывает текущее местоположение, а также позиции других игроков в окрестностях с использованием данных GPS. Страница "Карта", в добавок, позволяет запускать навигацию к последнему месту другого игрока. GPS координаты, вместе с именами игроков, обрабатываются с помощью специальной веб-службы, расположенной на внешнем сервере. По умолчанию, отправка текущих данных о местоположении - отключена, таким образом, другие игроки не видят ваш индикатор на карте. Однако, когда оно включено, текущее местоположение игрока могут увидеть все желающие.

Экран "Мир" выполняет аналогичную роль "Карта". Тем не менее, он представляет данные в дополненной реальности, в виде специальных индикаторов представляющих расположение других игроков в 3D-мире, как показано на следующем рисунке (справа). На заднем плане, вы можете увидеть изображение с камеры. Что важно, размер индикатора зависит от расстояния до игрока, то есть, он увеличивается, когда игрок приближается. Страница "Мир", так же поддерживает запуск навигации к другому игроку.

Экран "Звания" (Ranks) представлен на следующем рисунке (слева) и показывает высшие оценки в игре, разделенных на три категории:

Локальная (Local) – только от текущего устройства

За последние 24 часа (Last 24h) – Выполнено кем угодно, но с ограничением времени (24 часа)

В общем (Overall) – Выполнено кем угодно, без ограничений по времени

В каждой категории показаны только десять лучших результатов, с именем игрока и счетом. По умолчанию, все результаты сохраняются только локально. Чтобы отправить их в глобальной рейтинг, игрок должен нажать на кнопку "Отправить результат" (Send result) на странице "Результат" (Result).

Следующий экран, называющийся "Настройки" (Settings) и позволяющий настроить игровые параметры, разделен на две группы, связанные с пользователем и игровые параметры, как видно на следующем рисунке (справа). Первая часть позволяет вам указать имя игрока и открыть веб-сайт с политикой конфиденциальности.

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

Страница "Сеть" поддерживает настройки в отношении социальных сетей, а также за получение последней информации от RSS-канала, и открытие веб-сайта проекта. В левой части страницы "Сеть", доступны две группы (Facebook & Twitter, и "Оценить"), как показано на следующем рисунке (слева). Первая группа позволяет публиковать обновления на стене Facebook и твитить об игре "Space Aim 3D". Другая просто позволяет пользователю оценить игру.

Последний экран игры ("Справка") показан на следующем рисунке (справа), и содержит некоторую информацию о цели игры, управлении игрой, и контактные данные. Это может быть прочитано пользователем в случае каких-либо проблем с игрой или сразу же после её установки. В группе "Контакты", игрок может открыть веб-сайт проекта и его профиль на Facebook, а также отправить электронную почту автору.

Архитектура

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

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

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

Стоит отметить, что мобильная игра может общаться с внешними частями, связанными с социальными сетями Facebook и Twitter. Они используются, чтобы добавить сообщение на стену в Facebook, а также для обновления статуса Twitter.

Языки и технологии программирования

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

Интегрированная среда разработки является инструментом использующимся для создания всех частей проекта. Тем не менее, игра использует различные языки и технологии, таким образом, вы будете использовать две IDE: "Microsoft Visual Studio Express 2012 for Windows Phone" (для создания игры) и "Microsoft Visual Studio Express 2012 for Web" (Для подготовки веб-службы).

Первая группа языков и технологий посвящена управляемой разработке. Она содержит C# язык, .NET Framework, XAML и WCF. Управляемый подход позволяет создать пользовательский интерфейс и бизнес-логику самым простым способом. Тем не менее, наиболее важная часть игры использует нативную разработку, совместно с языком Си++, C++/CX (C++ Component Extensions) и Direct3D технологией. Таким образом, определенная часть игры может добиться повышения производительности.

Краткая информация о языках и технологий, используемых для создания игры "Space Aim 3D" представлена в Приложении B, Языки и технологии.

Краткие выводы

Эта глава является только введением в процессе разработки игры для платформы Windows Phone 8, которая и является основной темой всей книги. Со всё возрастающими возможностями мобильных устройств, разработчики могут создавать замечательные проекты, которые иногда даже похожи на версии для настольных компьютеров или консолей! Много новых технологий, 3D-графика, датчики, беспроводная связь, а также огромная вычислительная мощность позволяет создавать большие проекты, которые могут использовать люди со всего мира! Это может быть еще более интересным, если вы посмотрите на статистические данные, представленные в предисловии. Без всяких сомнений, мобильные игры являются важной отраслью и вы также можете принять в ней участие, создавая свои собственные решения!

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

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

Теперь, вы знаете, цель для этой книги, так что давайте перейдем к следующей главе, создадим новый проект, и изучим, как создать первый экран в игре!