Данная статья демонстрирует поэтапную разработку программного продукта, которая включает в себя: анализ предметной области страйкбола, обзор и исследование существующих решений, проектирование программного продукта на основе составленных требований, описание инструментов и технологий, использованных в ходе разработки и подведение итогов. Статья может заинтересовать программистов, страйкболистов и студентов, которые хотят узнать о способах разработки и применения социальных приложений для организации игр, GPS-трекинга для командования боем и исследовании эффективности использования таких систем по отношению к текущим способам организации и проведения игр.
Ключевые слова : страйкбол, GPS, онлайн-игры, командные военно-тактические игры, разработка приложений с распределенной архитектурой, iOS, мобильные приложения.
Введение. Страйкбо́л (англ. Airsoft) — это командная тактическая военно-спортивная игра, в ходе которой участники используют страйкбольное пневматическое оружие, стреляющее пластмассовыми шарами. Игры проводятся на открытых и закрытых полигонах среди сформировавшихся команд и одиночек. Численность участников игры может варьироваться от 50 до 3000 одновременно. Страйкбол является официальным видом спорта по приказу Минспорта «О включении страйкбола во Всероссийский реестр признанных видов спорта», который был подписан 14 мая 2018 года, а в каждом крупном городе существует федерация и большое количество команд.
Многие страйкболисты являются «выходцами» из сообщества геймеров компьютерных игр, в которых имеется богатый исторический опыт по правильной разработке и организации проведения командных онлайн-игр. Игроки имеют свои личные страницы, на которых они могут демонстрировать свои достижения, принадлежность к какому-либо клану или команде, снаряжение, статистику полезных действий и проведенных игр. На таких площадках удобно организованно создание и проведение игр, приглашение игроков, с последующей автоматической системой подведения итогов прошедшего матча. Во время игрового процесса на мониторах игроков работает мини-карта, на которой игрок, команда, организатор или командир могут видеть расположение своих союзников, других игроков если это предусматривает сценарий или уровень доступа наблюдателя, точки, которые являются целями текущего режима игры и другую полезную в бою информацию.
На данный момент страйкбольное сообщество для представления правил, регламента, организации игр и регистрации команд в большей мере использует социальные сети, которые не предоставляют всех инструментов, подходящих для этой предметной области, и не могут правильно выполнять поставленные перед организаторами задачи [1]. На самих играх участники и организаторы используют или напечатанные заранее карты, или мобильные приложения с GSP-трекингом, со стандартными картами без специальных функций, помогающих лучше и быстрее командному блоку и союзникам взаимодействовать, понимать поставленные задачи, видеть цели и принимать тактические маневры.
Идея данной статьи заключается в том, чтобы объединить существующие возможности компьютерных командных онлайн-игр и информационно-организационную структуру социальных сетей для их последующего использования в страйкболе.
Предметная область. Игрок (рис. 1.). Всоответствии с документом «Правила проведения страйкбольных игр и мероприятий, организованных Федерацией страйкбола Пермского края», игроком является лицо, достигшее 18 лет, имеющее при себе обязательный минимально необходимый для игры комплект снаряжения и имеющий допуск на мероприятие [2]. Игрок должен иметь специальный позывной, являющийся его уникальным идентификатором для быстрого понимания адресата сообщения при обращении через рацию или коммуникации незнакомых между собой игроков и команд.
Рис. 1. Игрок с минимально необходимым комплектом снаряжения
Команда (рис. 2.) . В соответствии с тем же документом страйкбольной командой признается добровольное объединение от 5 и более единообразно (внутри своей команды) одетых игроков, имеющее название и командира (представителя), являющегося совершеннолетним (18 лет и более) полностью право — и дееспособным лицами [2]. Главной отличительной чертой команды является ее камуфляж и однообразное снаряжение. Большинство команд условно делят на две стороны: темную и светлую. За светлой стороной закрепляются команды, которые в основном вооружении и снаряжении используют российские образцы. За темной, соответственно, команды использующие образцы вооружения стран блока НАТО.
Рис. 2. Команды FAD и Спектр с флагами
В ходе подробного исследования видов мероприятий и игр были собраны их значимые характеристики на таблице 1 [3, 4, 5, 6].
Таблица 1
Категории игр и мероприятий
Вид мероприятия |
Полигон |
Количество участников |
Время в часах |
Особенности |
Тренировка |
Крытый, открытый, маленький или средний размер |
10–100 |
2–6 |
Командные, смешанные, целевые |
Большие игры |
Открытый, большой размер |
300–3000 |
24–60 |
Применение крупной техники, разбивка лагерей, сложный сценарий |
CQB [1] |
Крытый |
до 50 |
2–6 |
Бой в закрытом пространстве с простейшим сценарием с быстрыми раундами по 5–20 минут |
СталкерСтрайк |
Открытый, большой размер |
100–500 |
24–60 |
Множество сторон (фракций), ролевые инструменты и правила, множество специальных локаций, техники, устройств. Подробный, нелинейный сценарий, с большим количеством обособленных задач |
Приватные игры |
Крытый, открытый, маленький или средний размер |
до 100 |
Любое |
Многие параметры определяются лично организаторами. Нет публичной регистрации, команды приглашаются организаторами в личном порядке. Разнообразный сценарий. |
Воскресные игры |
Открытый, среднего размера |
60–500 |
10–24 |
Возможно применение мелкой техники, простой сценарий |
MilSim [2] игры |
Открытый, большой размер |
40–150 |
24–60 |
Применение техники, сложного сценария, навигации и специализированных устройств |
Проектирование архитектуры разрабатываемой системы. Скомбинировав архитектуры систем социальных сетей и GPS-позиционирования, спроектируем и изобразим архитектуру, подходящую для нашего продукта на рисунке 3.
Рис. 3. Архитектура разрабатываемого программного продукта
Данные с GPS спутников поступают на мобильные устройства и передаются в мобильное приложение. С помощью сети интернет, приложение отправляет запрос с данными на сервер, где их «встречает» программа-распределить. Request Distribution определяет тип запроса и направляет его для обротки дальше, правильному получателю. В случае если это геолокационные данные, он отдает их на обработку программному блоку Navigation System API, который в свою очередь обрабатывает полученный запрос и отправляет или «достает» данные в\из базу данных. Если же мы взаимодействуем с мобильным приложением используя функции социальной сети, запрос передается службе Social Network API, а дальше, согласно схеме, снова к базе данных и обратно. Если пользователь использует систему через браузер, то Request Distribution отправит запрос сначала в Web-приложение, затем оно обработает Front-end запрос. Если пользователь работал с картой, то приложение будет взаимодействовать с Navigation System API, а если с социальными функциями — выполнит необходимую бизнес-логику и передаст его на Back-end сервису Social Network API, который отправит или достанет нужные данные из\в хранилища.
Разработка. Сервер расположен на машине с установленной операционной системой macOS Catalina и встроенный веб-сервером Apache. В качестве экземпляра базы данных использовался зарекомендовавший себя MySQL. Создание и контроль производились через систему управления MySQL Workbench, а администрирование через phpMyAdmin. Для взаимодействия приложения и базы данных, на веб-сервере было разработано собственное API. Для этого использовалась среда разработки PhpStorm и язык PHP. Один из методов запроса данных в формате JSON вы можете видеть на рисунке 4.
Рис. 4. Метод запроса данных в формате JSON
Главной частью системы стало мобильное iOS приложение, реализующее интерфейс для пользователя. Оно разрабатывалось в среде разработке Xcode, на языке Swift. Интерфейс спроектирован с помощью встроенного инструмента Storyboard. При разработке использовался подход Model-View-Controller. На рисунке 5 вы можете наблюдать интерфейс и реализацию страниц входа, регистрации, профиль игрока, команды и страницу мероприятия с возможностью перейти на интерактивную карту. Для реализации геолокационных функций использовались библиотеки MapKit и Core Location. Для тестирования использовались встроенные в Xcode модульные тесты и тесты пользовательского интерфейса [7].
Рис. 5. Интерфейс разработанного приложения
Заключение . Практическая значимость статьи заключается в возможности использования разработанного программного продукта для оценки его страйкбольным сообществом по параметрам: качество проводимых игр, вовлеченность людей которым интересны военно-тактические игры, упрощение взаимодействия игроков между друг другом до, в и после игры, их осведомленности о достижениях коллег «по цеху» и возможности внедрения новых игровых механик и сценариев игр. Данные результаты докажут или опровергнут необходимость разработки полноценной системы такого формата и создадут для этого все необходимые условия.
Литература:
- Федерация страйкбола Пермского края. — Текст: электронный // ВКонтакте: [сайт]. — URL: https://vk.com/fas59com (дата обращения: 24.05.2020).
- Правила проведения страйкбольных игр и мероприятий организованных «Федерация страйкбола пермского края». — Текст: электронный // ВКонтакте: [сайт]. — URL: https://vk.com/doc-53458552_497428777?hash=1b71619931e0720d43&dl=e45643d21f8992d3a6 (дата обращения: 24.05.2020).
- Воскресные игры в Перми. — Текст: электронный // ВКонтакте: [сайт]. — URL: https://vk.com/fspk_voskresky (дата обращения: 24.05.2020).
- CQB Турнир «Гладиатор». — Текст: электронный // ВКонтакте: [сайт]. — URL: https://vk.com/gladiator2020 (дата обращения: 24.05.2020).
- Ролевая игра с элементами страйкбола. — Текст: электронный // ВКонтакте: [сайт]. — URL: https://vk.com/permstalker (дата обращения: 24.07.2020).
- MilSim мероприятие «Грозовой перевал-4. Охота на ISAF». — Текст: электронный // ВКонтакте: [сайт]. — URL: https://vk.com/gp4fad (дата обращения: 24.05.2020).
- Плаксин, М. А. Тестирование и отладка программ для профессионалов будущих и настоящих / М. А. Плаксин. — 3-e изд. — 2015: Лаборатория знаний, 2015. — 167 c. — Текст: непосредственный.
[1] CQB (Close Quarters Battle) – это бой в ограниченном пространстве
[2] MilSim (аббревиатура от Military Simulation) – страйкбольное мероприятие с модифицированными правилами для максимального ролевого приближения к реальным боевым действиям