Проектирование игр для мобильных устройств на базе операционной системы Android

 

Оглавление


Введение

1. Постановка задачи

1.1 Обзор существующих мобильных платформ

1.2 Google play

2. Аналитический раздел

2.1 Описание предметной области

2.2 Архитектура Android

2.2.1 Ядро

2.2.2 Среда выполнения и Dalvik

2.2.3 Системные библиотеки

2.2.4 Фреймворк приложения

2.3 Android SDK

2.4 Среда разработки NetBeans IDE

2.5 Параметры исполнительного сервера

3. Этап проектирования

3.1 Клиентская часть

3.1.1 Разработка экранов приложения и их взаимодействия

3.1.2 Алгоритм игры

3.1.3 Графический интерфейс и обработка касаний экрана

3.2 Серверная часть

3.2.1 Установка и настройка Сервера

3.2.2 Проектирование БД

3.2.3 Взаимодействие клиента и сервера

4. Руководство пользователя

4.1 Экраны приложения

Заключение

Введение


В наше время сложно представить себе человека без сотового телефона, планшетного компьютера, смартфона или любого другого портативного мультимедийного устройства. Мы привыкли к тому, что всегда под рукой не только средство связи, но и множество полезных функций, таких как: калькулятор, органайзер, конвертер, календарь, часы. Смартфоны становятся новой мобильной игровой платформой, соревнуясь с классическими карманными игровыми системами вроде Nintendo DS или Playstation Portable.

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

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

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

android интерфейс игра пользователь

1. Постановка задачи


Основной целью данной работы является разработка клиент-серверного игрового приложения на примере игры в шашки для мобильных устройств на базе операционной системы Android. И изучение среды разработки Netbeans IDE.


1.1 Обзор существующих мобильных платформ


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

Наиболее распространённые операционные системы и платформы для смартфонов:

)Symbian OS - занимала большую часть рынка ОС для смартфонов до конца 2010г. По состоянию на начало 2010 года на базе этой ОС осталась всего 1 платформа: Series 60, которая используется преимущественно в устройствах Nokia, а также некоторых моделях Samsung;

2)BlackBerry OS (RIM) - устройства на этой системе широко используются в основном в США, так как спецслужбы некоторых стран не заинтересованы в использовании этих смартфонов в своей стране из-за того, что все входящие и исходящие данные шифруются с помощью алгоритма шифрования AES;

)Windows Mobile и Windows CE - компактная ОС компании Microsoft, выпускается с 1996 года и занимала крупный сегмент рынка ОС для смартфонов до 2010 г. В настоящее время переживает постепенный отказ от поддержки и разработки;

)Windows Phone 7 - разработка компании Microsoft, кардинально отличающаяся от Windows Mobile; 8

)Palm OS - некогда популярная платформа, в настоящее время аппараты на базе Palm OS малораспространены. Последний смартфон под управлением данной операционной системы был представлен в конце 2007 года (Palm Centro);

)Linux - широкого распространения не получили, однако традиционно считаются перспективным направлением. Смартфоны на базе Linux распространены в основном в Азии;

7)Bada - новейшая мобильная платформа, разработанная компанией Samsung. Первым телефоном на новой платформе стал S8500 Wave;

8)Android - портативная (сетевая) операционная система для коммуникаторов, планшетных компьютеров, электронных книг, цифровых проигрывателей, наручных часов и нетбуков основанная на ядре Linux. Изначально разрабатывалась компанией Android Inc., которую затем купила Google. Впоследствии Google инициировала создание альянса Open Handset Alliance (OHA), который сейчас занимается поддержкой и дальнейшим развитием платформы. Android позволяет создавать Java-приложения, управляющие устройством через разработанные Google библиотеки. Android Native Development Kit позволяет портировать (но не отлаживать) библиотеки и компоненты приложений, написанные на Си и других языках;

9)iOS (до 24 июня 2010 года - iPhone OS) - мобильная операционная система разрабатываемая и выпускаемая американской компанией Apple <#"justify">В настоящее время Android развивается экспоненциально: каждый год число пользователей данной ОС неуклонно растет. Согласно последнему отчету компании Canalys, ведущему аналитику хай-тек индустрии, операционная система Android занимает 69,2% мирового рынка мобильных устройств. Безусловно, этот факт привлекает множество разработчиков к созданию мобильных приложений именно для Android. Пожалуй, на сегодняшний день это самая популярная и интересная система. Разработчикам даны уникальные возможности. Установив набор бесплатного программного обеспечения, можно создавать программы под данную систему и продавать их в специализированном интернет-магазине.


1.2 Google play


Google play был открыт для публики в октябре 2008 года компанией Google. Это онлайн-магазин приложений, позволяющий пользователям находить и устанавливать сторонние приложения. Магазин доступен как с помощью приложения на телефоне, как и с использованием браузера на компьютере. Магазин позволяет независимым разработчикам предлагать свои приложения бесплатно или за деньги. Пользователи могут получить доступ к магазину после регистрации учетной записи Google. Покупатель вправе вернуть приложение в течение 15 минут после покупки, чтобы получить свои деньги обратно. Ранее время возврата составляло 24 часа, и столь резкое его уменьшение не слишком обрадовало пользователей. Программисту, чтобы публиковать свои приложения, необходимо зарегистрироваться в Google в качестве разработчика Android. Это будет стоить ему $25 единовременно. Уже через несколько минут после успешной регистрации становится возможным публиковать свои творения. В Google play отсутствует процесс утверждения опубликованного приложения, но имеется система разрешений. Пользователю перед установкой демонстрируются разрешения, которые необходимо предоставить приложению для его работы. Эти разрешения включают в себя доступ к телефонным службам, сети, карте памяти и т.д. Установка приложения совершается только после одобрения пользователем этих разрешений. Система полагается на пользователя в данном вопросе. Надо сказать, что для настольных приложений (особенно это касается Windows-систем) такой подход работает не слишком хорошо. Что касается Android - пока это эффективная мера; всего несколько приложений были удалены с Google play по причине их вредоносного поведения. Для продажи своих приложений разработчик должен дополнительно зарегистрировать учетную запись типа Google Checkout Merchant (это делается бесплатно). Все финансовые операции используют эту учетную запись.


2. Аналитический раздел


2.1 Описание предметной области


Android - это основанная на Linux платформа для мобильных устройств, разработанная Open Handset Alliance (OHA), инициированным Google. Она позволяет создавать Java-приложения, управляющие устройством через разработанные Google библиотеки. Также есть возможность писать приложения на Си и других языках программирования с помощью Android Native Development Kit.1.5 (Cupcake) - выпущено 30 апреля 2009 года. Среди основных улучшений появилась поддержка записи и просмотра видео в режиме камеры; поддержка Bluetooth A2DP; возможность автоматически подключаться к Bluetooth-гарнитуре.

Первым устройством, работающим под управлением Android, стал разработанный компанией HTC смартфон T-Mobile G1, презентация которого состоялась 23 сентября 2008 года. Вскоре последовали многочисленные анонсы других производителей смартфонов о намерении выпустить устройства с Android.

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

.Открытость - Android позволяет получить доступ к основным функциям мобильных устройств с помощью стандартных вызовов API.

2.Разрушение границ - можно объединять информацию из интернета с данными телефона, например контактной информацией или данными о географическом положении, чтобы получить новые возможности.

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

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

Гибкость Android имеет свою цену: компании, предпочитающие разрабатывать собственные пользовательские интерфейсы, вынуждены постоянно гнаться за релизами новых версий ОС. Устройства, выпущенные всего несколько месяцев назад, становятся устаревшими, поскольку операторы и производители не хотят создавать обновления ПО, чтобы пользователи могли применять новые возможности Android. Так, например, многие эксперты отмечают, что платформа базируется на Java, поэтому преимущества и возможности операционной системы Linux на Android используются не в полной мере. Также в платформе не используется ни один из популярных графических инструментов (toolkit) и библиотек (например, Ot или GTK), что делает маловероятным появление большого числа приложений, портированных с полноценного варианта Linux для домашнего компьютера на данную платформу из-за отсутствия по умолчанию X-сервера и распространенных графических библиотек. Кроме того, появилась информация о том, что Google будет по своему усмотрению удалять приложения на телефонах пользователей, если нарушаются условия их использования.

К недостаткам платформы можно также отнести и невозможность установки некоторых приложений на карту памяти. Данный пробел разработчиков является существенным, в особенности, если у телефона небольшой объем встроенной памяти (например, у T-Mobile G1 он составляет всего 70 Мб).

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

Большая часть кода лицензирована под Apache License 2 открытой и неограниченной лицензией Допускается свободное использование исходного кода для создания собственных систем. Однако системы, объявленные как совместимые с Android, должны для начала пройти Android Compatibility Program - процесс, удостоверяющий базовую совместимость со сторонними приложениями, которые созданы сторонними разработчиками. Совместимые системы могут вливаться в экосистему Android, включающую в себя Android Market.


2.2 Архитектура Android


C точки зрения программиста, Android - платформа, абстрагирующая разработчика от ядра и позволяющая ему создавать код на Java. Android обладает несколькими полезными возможностями. Во-первых, это фреймворк, предлагающий большой набор API для создания различных типов приложений и, кроме того, обеспечивающий возможности повторного использования и замены компонентов, которые предлагаются платформой и сторонними приложениями. Во-вторых, наличие виртуальной машины Dalvik, отвечающей за запуск приложений на Android. Кроме того, к услугам разработчика набор графических библиотек для 2D - и 3D-приложений, поддержка мультимедиа-форматов (Ogg Vorbis, MP3, MPEG-4, H.264, PNG), API для доступа к камере, GPS, компасу, акселерометру, сенсорному экрану, джойстику и клавиатуре. Имеется даже специальное API для воспроизведения фоновых звуковых эффектов, которое пригодится нам при разработке игр. Не все Android-устройства обладают всеми этими возможностями - налицо аппаратное разделение. Конечно, список возможностей Android не исчерпывается упомянутыми мной. Однако для разработки игр они будут наиболее важны. Архитектура Android формируется из набора компонентов. Каждый компонент построен на основе элементов более низкого уровня. На рис. 1. представлен краткий обзор главных компонентов Android.


Рисунок 1 - Обзор архитектуры


2.2.1 Ядро

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


2.2.2 Среда выполнения и Dalvik

Среда выполнения Android, являющаяся надстройкой над ядром, отвечает за порождение и выполнение приложений Android. Каждая программа работает в собственном процессе со своей виртуальной машиной Dalvik. Dalvik запускает программы в байт-кодовом формате DEX. Java-файлы с расширением CLASS преобразуются в формат DEX с помощью специальной утилиты dx, имеющейся в SDK. Формат DEX занимает намного меньше места в памяти, чем классические файлы типа CLASS, что достигается большим сжатием, разбиением на таблицы и слиянием нескольких CLASS-файлов. Виртуальная машина Dalvik взаимодействует с библиотеками ядра, предлагающими базовый функционал для Java-программ. Эти библиотеки располагают большим, но не полным набором классов, доступных через Java SE.

До Android 2.2 (Froyo) весь код был интерпретируемым. В Froyo был представлен отслеживающий JIT-компилятор, способный компилировать части байт-кода в машинный код на лету. Это значительно увеличивает производительность приложений, требующих больших вычислений. JIT-компилятор может использовать возможности процессора, специально предназначенные для сложных вычислений, например для операций с плавающей точкой. Кроме того, в Dalvik включен собственный сборщик мусора (Garbage Collector, GC). Он работает по принципу "отметить и убрать", что иногда ставит разработчиков в тупик. Однако если внимательно им пользоваться, можно эффективно применять его при разработке игр. Каждое приложение, запускающееся в экземпляре виртуальной машины Dalvik, имеет в своем распоряжении от 16 до 24Мбайт оперативной памяти. Это необходимо держать в уме, жонглируя картинками и звуковыми ресурсами.


2.2.3 Системные библиотеки

Помимо библиотек ядра, предлагающих некоторую функциональность Java SE, существует также набор родных библиотек на C/C++, создающих основу для фреймворка приложения (расположенного на уровень выше, чем библиотеки рис. 1.1). Эти системные библиотеки в большинстве своем отвечают за сложные (прорисовка графики, воспроизведение звука, доступ к базе данных), не очень подходящие для виртуальной машины Dalvik. API в них обернуты с помощью классов Java во фреймворк приложения, который используется при написании игр.


2.2.4 Фреймворк приложения

Фреймворк приложения связывает вместе системные библиотеки и среду выполнения, создавая таким образом пользовательскую сторону Android. Фреймворк управляет приложениями и предлагает продуманную среду, в которой они работают. Разработчики создают приложения для этого фреймворка с помощью набора программных интерфейсов на Java, охватывающих такие области, как разработка пользовательского интерфейса, фоновые службы, оповещения, управление ресурсами, доступ к периферии и т.д. Все ключевые приложения, поставляемые вместе с ОС Android (например, почтовый клиент), написаны с помощью этих API. Приложения, будь они с интерфейсом или с фоновыми службами, могут связываться с другими приложениями. Эта связь позволяет одному приложению использовать компоненты других. Простой пример - программа, делающая фото-снимок и потом обрабатывающая его. Приложение запрашивает у системы компонент другого приложения, обеспечивающий это действие. Далее первое приложение может повторно использовать этот компонент (например, от встроенного приложения камеры или от фотогалереи). Подобный алгоритм снимает значительную часть ноши с программиста, а также позволяет настроить многообразие аспектов поведения Android.


2.3 Android SDK


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

К основным возможностям SDK можно отнести:

)отладчик, способный отлаживать приложения, запущенные на реальном устройстве или эмуляторе;

2)профиль памяти и производительности, помогающий обнаружить утечки памяти и найти неэффективный код;

)эмулятор устройства, основанный на QEMU (виртуальной машине с открытым кодом, эмулирующей различные аппаратные платформы), он довольно точен, хотя не всегда быстр;

)утилиты командной строки для связи с устройствами;

)скрипты и утилиты для создания пакетов и развертывания приложений.

SDK может быть интегрирован в Netbeans - открытую популярную и функциональную среду разработки (IDE) для Java. Эта интеграция достигается с помощью плагина Android Development Tools (ADT), добавляющего новые возможности в Netbeans для создания проектов для Android, их исполнения и отладки в эмуляторе или на устройстве, создания пакетов для их развертывания на Android Market. SDK и плагин ADT для Eclipse постоянно обновляются, в них добавляются новые возможности. Поэтому регулярно их обновлять - хорошая идея. Любой хороший SDK должна сопровождать исчерпывающая документация. Android SDK не исключение - помимо документации с ним поставляется много примеров. Кроме того, найти руководство разработчика и полное описание API для всех модулей фреймворка приложения можно на официальном сайте.


2.4 Среда разработки NetBeans IDE


NetBeans IDE - свободная интегрированная среда разработки приложений на языках программирования Java, JavaFX, Python, PHP, JavaScript, C, C++ и ряда других.

Проект NetBeans IDE поддерживается и спонсируется компанией Oracle, однако разработка NetBeans ведется независимым сообществом разработчиков-энтузиастов (NetBeans Community) и компанией NetBeans Org.

По качеству и возможностям последние версии NetBeans IDE не уступают лучшим коммерческим (платным) интегрированным средам разработки для языка Java, таким, как IntelliJ IDEA, поддерживая рефакторинг, профилирование, выделение синтаксических конструкций цветом, автодополнение набираемых конструкций на лету, множество предопределённых шаблонов кода и др.

Для разработки программ в среде NetBeans и для успешной инсталляции и работы самой среды NetBeans должен быть предварительно установлен Sun JDK или J2EE SDK подходящей версии - это исполнительные среды Java, в которых выполняются программы. Среда разработки NetBeans по умолчанию поддерживала разработку для платформ J2SE и J2EE. Начиная с версии 6.0 Netbeans поддерживает разработку для мобильных платформ J2ME, C++ и PHP без установки дополнительных компонентов.


2.5 Параметры исполнительного сервера


Неотъемлемой частью клиент-серверного приложения является сам сервер, в нашем случае необходим определенный набор программного обеспечения - это веб-сервер для возможности подключения и аутентификации пользователей, СУБД для работы с базой данных и PHP для обработки запросов пользователей. Существует множество вариантов сборок вышеуказанного программного обеспечения, но для себя я выбрал самый простой в установке и использовании и к тому же полностью бесплатный сервер LAMP.- акроним, обозначающий набор серверного программного обеспечения, широко используемый во Всемирной паутине. LAMP назван по первым буквам входящих в его состав компонентов:- операционная система Linux;- веб-сервер;- СУБД;- язык программирования, используемый для создания веб-приложений (помимо PHP могут подразумеваться другие языки, такие как Perl и Python).

Хотя изначально эти программные продукты не разрабатывались специально для работы друг с другом, такая связка стала весьма популярной из-за своей гибкости, производительности и низкой стоимости (все её составляющие являются открытыми и могут быть бесплатно загружены из Интернета). Набор LAMP входит в состав большинства дистрибутивов Linux и предоставляется многими хостинговыми компаниями.

Так как в начальном этапе работы клиент - серверного приложения, сервер будет обслуживать лишь двух клиентов, нам не столь важен выбор комплектующих сервера, поэтому было принято решение об установки бесплатно виртуальной машины Oracle VM VirualBox на рабочую станцию с четырехъядерным процессором Intel Core i3 2.40Ghz и тремя гигабайтами оперативной памяти под управлением ОС Windows XP x86.

В качестве операционной системы для LAMP сервера, я выбрал Ubuntu Server 12.10, которая так же является абсолютно бесплатной и доступна для скачивания на официальном сайте.

3. Этап проектирования


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

Для начала необходимо определить правила игры, в данном случае пользователю будет предоставляться возможность выбора правил таких как:

.Количество выигрышей для общей победы (сколько раз игроку А нужно победить игрока Б, чтобы одержать победу)

2.Можно ли рубить назад

.Цвет, которым будет играть создающий игрок

.Тип игры (обычные шашки или поддавки)

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


3.1 Клиентская часть


Для разработки приложения необходимо определить основные положения в игре.

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

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

.Проход в дамки - если пользователь достиг противоположного конца доски, то его шашка становится дамкой.

.Игра окончена - если у игрока нет возможности сделать ход, то он проиграл.


3.1.1 Разработка экранов приложения и их взаимодействия

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

Экраны в приложении вызываются в определенном порядке, в соответствии с действиями пользователя. Более наглядно схема взаимодействия экранов представлена на рисунке 2.


Рисунок 2 - Схема взаимодействия экранов


3.1.2 Алгоритм игры

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

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


3.1.3 Графический интерфейс и обработка касаний экрана

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


3.2 Серверная часть


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


3.2.1 Установка и настройка Сервера

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

Установка операционной системы довольно проста, все что необходимо - это выбрать язык, размер жесткого диска выделенного под ОС, тип сетевого адаптера и самое важное пакет программного обеспечения LAMP server.

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

)Linux - операционная система Linux. При выборе операционной системы сервера важную роль сыграла стоимость. В отличии от Windows, Linux бесплатен и не требует наличия лицензии в случае если используется в коммерческих целях;

2)Apache - веб-сервер, в данном случае необходимый для общения клиента с сервером по протоколу HTTP. Является бесплатным, кроссплатформенным программным обеспечением;

3)MySQL - Свободная реляционная система управления базами данных;

)PHP - скриптовый язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений.


3.2.2 Проектирование БД

Для обработки запросов пользователей создана СУБД, с двумя сущностями.


Рисунок 3 - Сущности СУБД


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


Рисунок 4 - Связь СУБД


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


Рисунок 5 - Инфологическая модель базы данных


Схема базы данных была создана при помощи бесплатного онлайн генератора dbdsgnr [], созданного разработчиками компании Google. Данный сервис значительно упрощает процесс создания баз данных. Нарисовав схему в графическом интерфейсе, как указанно на рисунке 6, программа генерирует набор запросов [], для создания базы данных.


Рисунок 6 - Таблицы базы данных

В таблицах, изображенных на рисунке 1, содержатся переменные необходимые для создания игры. Таблица Game содержит переменные, такие как тип игры, цвет хоста, количество игр до победы и можно ли рубить назад. Таблица Go необходима для передачи параметров хода между клиентами.

3.2.3 Взаимодействие клиента и сервера

Создавая игру либо делая ход, пользователь инициирует класс, который обращается к php-скрипту, находящемуся на сервере. В зависимости от параметра, с которым происходит обращение, скрипт записывает либо считывает параметры таблиц Game и Go. Схему взаимодействия клиентов с сервером можно увидеть на рисунке Х.


Рисунок 7 - Схема взаимодействия клиентов с сервером


4. Руководство пользователя


Приложение "Checkers" может быть установлено на любое мультимедийное устройство под управлением операционной системы Android версии не ниже 2.2 Обязательным условием для использования приложения, является наличие интернета.


4.1 Экраны приложения


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


Рисунок 8 - Экран приветствия


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


Рисунок 9 - Экран выбора действия перед началом игры


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


Рисунок 10 - Экран выбора правил игры


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


Рисунок 11 - Экран загрузки


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


Рисунок 12 - Информационный экран


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


Рисунок 13 - Экран выбора хоста


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

Как только оба игрока готовы к игре, они направляются на игровой экран, где отрисовывается поле, что отражено на рисунке 14.

Рисунок 14 - Игровой экран


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


Рисунок 15 - Игровой экран с активной шашкой


Рисунок 16 - Экран завершения игры


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

Заключение


В результате проделанной работы было разработано игровое клиент-серверное приложение, которое возможно установить на любое мультимедийное устройство под управление операционной системы Android версии не ниже 2.0.

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

Работа приложения была протестирована на двух устройствах, различного типа:

смартфон SONY Xperia Arc S

планшетный компьютер Samsung Galaxy Tab2 7.0.

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

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


Оглавление Введение 1. Постановка задачи 1.1 Обзор существующих мобильных платформ 1.2 Google play 2. Аналитический раздел 2.1 Описание пр

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ