Игнатов Д. А., Рочев К. В.
Разработка игры «Korean Football»

УДК 004:794.5, ВАК 05.13.18, ГРНТИ 50.41.25

Разработка игры «Korean Football»

Creation of the game “Korean Football”

Д. А. Игнатов, К. В. Рочев

D. A. Ignatov, K. V. Rochev

Ухтинский государственный технический университет, г. Ухта

Ukhta State Technical University, Ukhta

В статье рассматриваются вопросы, связанные с разработкой мобильной игры «Korean Football». Особое внимание акцентируется на исследовании предметной области, моделировании системы и описании результатов разработки программного продукта.

The article discusses the issues related to the development of the mobile game “Korean Football”. Special attention is focused on studying the domain, modeling the system and describing the results of software product development.

Ключевые слова: казуальная игра, мультиплеер, геймплей, конечный автомат

Keywords: casual game, multiplayer, gameplay, finite state machine

Введение

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

Заказчиком игры, которая выступает объектом автоматизации в данной выпускной квалификационной работе, является компания по разработке игр «Unnyhog FZ-LLC». Во время пребывания в Южной Корее разработчикам было предложено реализовать настольную игру, которая в прошлом была популярна среди корейцев всех возрастов. Даже не имея прямых цифровых аналогов, игра в этой стране остается признанной и незабытой.

Создание цифрового аналога на популярных устройствах не только удовлетворит развлекательные потребности жителей Южной Кореи, которые по-новому взглянут на модернизированную версию старой игры, но и вовлечет пользователей с других стран. Игра должна стать одним из новых свободно распространяемых продуктов компании по разработке игр «Unnyhog FZ-LLC», который поможет ей обрести известность в корейском и других рынках, собрать новых пользователей, получить необходимые связи, а также заработать деньги на внутриигровых покупках и рекламе.

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

Предпроектное исследование

Разрабатываемая игра берет истоки из старой настольной игры, имевшей популярность в Южной Корее. Участвуют всего два игрока. Для игры необходим только расчерченный на определенное количество полей лист (чаще всего на восемнадцать), две ручки (или любых других твердых предмета тонкой продолговатой формы) и монетка. Суть состоит в том, чтобы толкать своей ручкой (толстым концом) монетку ко вражеским воротам, роль которых исполняет крайняя средняя клетка на стороне поля соперника. Один из игроков выступает в качестве нападающего, а другой в качестве защитника. При наступлении определенных моментов в игре игроки меняются ролями.

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

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

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

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

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

    Обзор аналогов осуществлялся с целью поиска систем, которые реализуют схожую функциональность. Одним из таких аналогов стала игра по типу аэрохоккея Glow Hockey [1]. В результате была составлена таблица сопоставления функциональных возможностей на основе критериев:

    1) бесплатность – отсутствие цены за приобретение программного продукта;

    2) ИИ – наличие возможности игры против искусственного интеллекта;

    3) мультиплеер на 1 устройстве – наличие возможности совместной игры на одном устройстве;

    4) мультиплеер на 2 устройствах – наличие возможности совместной игры на разных устройствах;

    5) смена внешнего вида игровых объектов – наличие возможности кастомизации внешнего вида игровых объектов в инвентаре (мяча, персонажа и т. д.);

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

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

    8) рейтинг и статистика – наличие отслеживаемого, фиксируемого и сравниваемого прогресса игроков.

    После исследования онлайн-рынка мобильных игр было выявлено, что прямых аналогов игры с таким же геймплеем и правилами на данный момент не существует. Это и стало одной из главных причин разработки игры «Korean Football». Поэтому были рассмотрены самые близкие программные продукты.

    Таблица 1. Сопоставление функциональных возможностей аналогов

    Glow Hockey

    Korean Football

    Бесплатность

    Да

    Да

    ИИ

    Да

    Да

    Мультиплеер на 1 устройстве

    Да

    Да

    Мультиплеер на 2 устройствах

    Нет

    Да

    Смена внешнего вида игровых объектов

    Ограниченная, но бесплатная

    Расширенная, покупается за выигранное в матчах золото

    Появляющиеся на поле бонусы

    Нет

    Да

    Квесты

    Нет

    Да

    Рейтинг и статистика

    Нет

    Да

     

    Проектирование информационной системы

    Основываясь на анализе предметной области, была составлена контекстная диаграмма процесса «как будет» с точки зрения игры (рис. 1). Результатом декомпозиции процесса стала диаграмма потоков данных (рис. 2).


    Рисунок 1. Контекстная диаграмма


    Рисунок 2. Диаграмма потоков данных

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


    Рисунок 3. Архитектура системы


    Рисунок 4. Логическая модель БД

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

    Результаты разработки игры

    Результатом разработки игры стал почти готовый к эксплуатированию программный продукт на игровом движке Unity [2], написанный на языке программирования C#. Архитектура игры представляет собой трехзвенную клиент-серверную архитектуру. Данные находятся на хостинге beget [3] и связываются с бизнес-логикой игры через php-скрипты на слое доступа к данным. Бизнес-логика основана на следующих основных контроллерах, отвечающих за определенные составляющие игры:

  • контроллер меню;
  • контроллер связи с базой данных;
  • контроллер аудио;
  • контроллер искусственного интеллекта на основе конечного автомата;
  • контроллер предметов, инвентаря и магазина;
  • контроллеры игрового процесса.

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



    Рисунок 5. Меню авторизации и меню профиля

    На главном меню отражены самые основные функциональные кнопки, через которые пользователь сможет попасть либо сразу в матч на игровое поле, либо к необходимым подменю. Одним из таких подменю является инвентарь, объединенный с магазином, в котором игрок сможет как купить различные вариации игровых предметов, так и надеть любой из уже купленных (рис. 6).



    Рисунок 6. Главное меню и меню инвентаря

    Другим подменю является меню тренировки, где пользователь может сыграть против искусственного интеллекта, против друга на этом же устройстве, или против случайного игрока через интернет (рис. 7).



    Рисунок 7. Меню тренировки и меню присоединения к созданному матчу

    Основной функциональной возможностью продукта, конечно же, является участие в матче. В нем можно изучить и опробовать все тонкости игрового геймплея и победить соперника (рис. 8). Модели для персонажей с их анимациями были взяты с онлайн-сервиса Mixamo [4].



    Рисунок 8. Игровая сцена с ракурса игрока и с побочного ракурса

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

    Для реализации этой цели и большего разнообразия были эмулированы поведения нескольких распространенных типов игроков: «агрессора», «выжидателя» и «тормоза». В данной игре это было легко достигнуто даже путем одного лишь изменения значений констант в логике ИИ. При попадании в бой против ИИ, будет случайным образом выбран один из этих типов искусственного интеллекта со своим набором констант, а, следовательно, и со своим поведением. Само поведение основано на модели Finite State Machine – конечного автомата, в котором может быть активно только одно состояние (при котором ИИ выполняет определенный набор действий), и для выполнения другого набора действий ИИ должен поменять свое состояние. Но для перехода в другое состояние есть свои условия, как зависящие от внешних факторов, так и от самого ИИ.

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


    Рисунок 9. Схема состояний и переходов ИИ

  • Idle (бездействие) – начальное состояние ИИ при запуске игры.
  • SlowlyCircle (медленное блуждание вокруг стартовой позиции) – переход в это состояние осуществляется через секунду после начала игры.
  • Tease («подразнивание» соперника, то есть создание иллюзии того, что вот-вот будет совершен удар) – переход в это состояние осуществляется при получении искусственным интеллектом роли нападающего, а также после каждого его удара по мячу.
  • Hit (настоящий удар по мячу) – переход в это состояние осуществляется при дожидании подходящего момента для удара, то есть когда соперник убрал своего персонажа с одного из лучших путей для мяча.
  • BeatOff (попытка отбивания мяча под управлением соперника) – переход в это состояние осуществляется при ударе противника по мячу.
  • Defend (быстрое и сконцентрированное блуждание по линиям перед мячом в ожидании удара соперника) – переход в это состояние осуществляется при получении искусственным интеллектом роли защитника, а также после каждого неудачного отбивания вражеского мяча.

    Заключение

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

    Для решения поставленных задач в ходе разработки было проделано следующее:

  • создан прототип с рабочим игровым процессом и интерфейсом;
  • создана база данных и реализованы все связанные с ней функции;
  • разработан мультиплеер для совместной игры;
  • разработан искусственный интеллект для одиночной игры;
  • осуществлено портирование на целевые платформы.

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

    Возможными перспективами развития проекта являются: соединение с необходимыми и распространенными онлайн-сервисами: для показа рекламных баннеров, на которых разработчик может заработать, для отслеживания более подробной статистики игроков и их достижений, вроде GameCenter. Также будут добавлены новые поля с большим пространством для перемещения игроков, новые эффекты, движения камер и многое другое. Планируется эксплуатировать игру в интернет-магазины Appstore и Google Play под крылом компании «Unnyhog FZ-LLC».

    Список литературы

    1. Cтраница продукта от разработчика Natenai Ariyatrakool «Glow Hockey» в интернет-магазине Google Play [Электронный ресурс]. URL: https://play.google.com/store/apps/details?id=com.natenai.glowhockey (дата обращения 23.03.2018).

    2. Сайт игрового движка и средства для разработки игр Unity [Электронный ресурс]. URL: https://unity3d.com/ru/ (дата обращения 14.02.2018).

    3. Сайт хостинга beget [Электронный ресурс]. URL: https://cp.beget.com (дата обращения 07.03.2018).

    4. Сайт онлайн-сервиса для импортирования моделей и анимаций Mixamo [Электронный ресурс]. URL: https://www.mixamo.com (дата обращения 05.04.2018).

    5. Дейт К. Дж. Введение в системы баз данных, 8-е издание : пер. с англ. М. : Издательский дом «Вильямс», 2005. 1328 с.: ил. – Парал. тит. англ.

    6. Конноли Томас, Бегг Каролин. Базы данных. Проектирование, реализация и сопровождение. Теория и практика. 3-е издание: пер. с англ. М. : Издательский дом «Вильямс», 2003. 1440 с.: ил.

    7. Маракасов Ф. В., Николаева Н. А., Некучаева Н. А. Дипломное проектирование : методические указания. Ухта : УГТУ, 2011. 30 с.

    List of references

    1. Page of product “Glow Hockey” from developer Natenai Ariyatrakool in Google Play internet store. Mode of access: https://play.google.com/store/apps/details?id=com.natenai.glowhockey, accessed March, 23, 2018.

    2. Official website of game engine and game development platform Unity. Mode of access: https://unity3d.com/ru/, accessed February, 14, 2018.

    3. Official website of hosting beget. Mode of access: https://cp.beget.com, accessed March, 07, 2018.

    4. Official website of online service for importing models and animations Mixamo. Mode of access: http://solutions.1c.ru/catalog/mdm, accessed April, 05, 2018.

    5. Date C. J. Introduction to Database Systems, 8-th Edition. Publishing House “Williams”, 2005.

    6. Connoly Thomas, Begg Caroline, Databases. Designing, development and maintenance. Theory and practice, 3-rd edition, Publishing House “Williams”, 2003.

    7. Marakasov, F. V., Nikolaeva, N. A., Nekuchaeva, N. A., Diploma Designing : Guidelines, Ukhta : USTU, 2011.

VN:F [1.9.17_1161]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.17_1161]
Rating: 0 (from 0 votes)
VN:F [1.9.17_1161]
Стиль изложения
Информативность
Сложность вопроса
Научная новизна
Коммерциализуемость
Rating: 0.0/5 (0 votes cast)