Проект представляет собой мобильную игру в жанре MMORPG с использованием геолокации для перемещения игрока
- RetteraDev (Кирилл Трофименко)
- Jeegermeister (Анастасия Лампасова)
Цель проекта заключается в поддержании здорового образа жизни населения, борьбу с лишним весом, а также культурно-историческое просвещение игроков
- Моб - монстр, чудовище, враждебно-настроенное существо. Из убитых мобов получают лут и экспу
- Лут - предметы, выпадаемые с убитых монстров
- Экспа (exp) - количество опыта, получаемое в ходе игры за выполнение квестов, убийство мобов, использование специальных предметов
- Левел или lvl - уровень чего-либо в игре
- Кап - самый большой уровень персонажа, предмета или навыка в игре
- Аккаунт или акк - учётная запись пользователя
- Апнуть навык - усовершенствовать, усилить навык
- Апнуться - получить новый уровень. Ап происходит после накопления определённого количества опыта
- Ачивка, ачива - награда, полученная в игре за выполнение заданного условия, выраженная в получении очков достижений, звания или предмета. Достижения используются для сравнения мастерства игроков и повышения интереса к игровому процессу
- Босс - огромный моб, "король" монстров. За победу над Боссом герои получают большое количество опыта и лута
- Фарм - целенаправленный сбор лута, ресурсов, ачивок, путём убийства мобов, посещения данжей, арен, сражений
- ХП - Количество здоровья, от англ. "Health Points"
Группа лиц | Балльная оценка уровня власти (0-5 баллов) | Балльная оценка уровня интереса (0-5 баллов) | Методы взаимодействия |
---|---|---|---|
Подростки (от 12+) | 3 | 4 | Ключевой стейкхолдер: Необходимо следить за "трендами" постоянно обновлять приложение и стараться заинтересовать больше индивидов из этой группы. Постоянно придумывать новые задания и обновлять контент |
Люди с сидячим (малоподвижым) образом жизни | 1 | 4 | Нужно информировать о всех изменениях, проводить опросы о степени удовлетворенности пользованием приложения |
Люди с сидячей работой | 2 | 4 | Нужно информировать о всех изменениях, проводить опросы о степени удовлетворенности пользованием приложения |
Люди, имеющие лишний вес или сердечно-сосудистые заболевания | 3 | 4 | Ключевой стейкхолдер: Необходимо консультироваться с врачами, постоянно обновлять базу заданий для данной группы |
Родители | 4 | 4 | Ключевой стейкхолдер: По возможности оповещать родителей о длительности прогулки и в случаее опасности разрешить просмотр местоположения ребёнка |
Врачи | 5 | 4 | Ключевой стейкхолдер: Постоянно консультироваться и прислушиваться к рекоменациям, на их основе обновлять задания |
Государство | 5 | 5 | Ключевой стейкхолдер: Постоянно отчитываться об общих достижениях людей использующих приложения |
Владельцы исторических музеев и парков | 3 | 5 | Ключевой стейкхолдер: Необходимо координироваться с организатарами для привлечения большего количества людей на мероприятия |
Стейкхолдер | Требования |
---|---|
Подростки (от 12+) | Хотят новую увлекательную игру с ярким дизайном, современной музыкой, частыми обновлениями, возможностью разивать своего аватара |
Люди с сидячим (малоподвижным) образом жизни | Хотят получать много и часто оповещения, кторые заставят их выйти на улицу |
Люди с сидячей работой | Хотят получать план маршрута до дома или/и работы через красивые места |
Люди, имеющие лишний вес или сердечно-сосудистые заболевания | Хотят иметь возможность записывать свои показатели в приложение, для контроля болезней.Хотят получать оповещения, которые заставят их выйти на улицу и рекомендации от врачей |
Родители | Хотят получть отчёт от приложения, где находятся их дели и сколько |
Врачи | Хотят чтобы люди меньше болели и меньше приходили к ним на приёмы создавая большую нагрузку на 1 специалиста в короткий промежуток времени |
Государство | Хочет меньше денег выделять на лечение людей. Более здоровое население |
Владельцы исторических музеев и парков | Хотят, чтобы в малоизвестные парки и музее приходило больше людей с минимальными тратами для рекламы |
-
F. Функциональные требования
-
Подготовка к игре
- Приложение должно уметь создавать новых и авторизовывать существующих пользователей в системе
- Приложение должно предоставлять возможность новым пользователям редактировать информацию о игровом аватаре. Установка никнейма, настройка внешнего вида персонажа
-
Настройка профиля
- Приложение должно иметь возможность установить медицинские противопоказания игрока
-
Игровой процесс
-
Геолокация
- Приложение должно уметь привязывать карту реального мира к игровому с использованием шестиугольных координат. Размер каждого шестиугольника ограничен максимальной точностью геопозициования в 5 метров
- Приложение должно уметь определять расположение парков и набережных. Такие места должны давать игроку за нахождение в этих шестиугольниках двойную награду
-
Задания для игрока
- Приложение должно предоставлять каждому игроку обновленный список заданий ежедневно, в зависимости от его часового пояса в полночь
- Приложение должно уметь следить за прогрессом и изменять его для каждого принятого игроком задания
- Приложение должно автоматически выдавать награду и завершать задание после достижения игроком указанного в задании ограничения
-
Взаимодействие
- Приложение должно уметь отправлять уведомления на мобильное устройство
- Приложение должно вести логирование конкретных типов действий пользователей и системы
-
-
-
U. Удобство использования
- Приложение должно помочь новому игроку понять игровой процесс через демонстрацию основных игровых механик
- Текст в приложении должен соответствовать V разряду зрительных работ. Минимальный размер объект различения составляет 1-5 мм
-
R. Надежность
- Сервер приложения должен гарантировать достоверность данных, хранимых в базе данных
- Приложение должно быть доступно не менее 95% времени в течение суток
- Сервер приложения должен обладать возможностью восстановления системы после сбоев
- До 1 минуты
- Основная база данных перестала отвечать, сервер переходит на взаимодействие с репликой
- IP адрес сервера перестал определяться DNS, автоматический перезапуск конфигураций
- До 4 часов
- Разработчик внес правки, которые повлекли за собой критические ошибки (сломан основной функционал, без которого приложение не работает, например авторизация, расчет местоположения и прочее)
- До 12 часов
- Физические неисправности сервера (вышел из строя жесткий диск, сгорел процессор), поиск и замена комплектующих
- Время не определено (от 1 секунды до нескольких суток)
- Отключение электричества
- Потеря интернет соединения
- Природные катаклизмы
- До 1 минуты
-
P. Производительность
- Пользователь, находясь в сети 3G, должен изменения в перемещении по карте с использованием геолокации не более чем за 2 секунды
- Время отклика системы на действия пользователя должно составлять не более 1 секунды
- Пропускная способность сервера должна обеспечивать беспрерывную работу не менее чем 10 тысячам пользователей
-
S. Поддерживаемость
- Приложение должно иметь возможность конфигурирования в реальном времени, без необходимости перезагружать сервер
- Приложение должно поддерживать устройства, работающие на операционных системах:
- iOS 9.0 - 16.0
- Android 7.0 – 12.0 (учитывая специфические особенности марок Xiaomi, Sony, Huawei)
- Сервер приложения должен уметь горизонтально масштабироваться на несколько физических компьютеров
-
+. Ограничения
-
Ограничения по безопасности
- Приложение должна уметь определять нечестных игроков, использующих для перемещения транспортное средство или VPN
- Приложение должно общаться с сервером приложения посредством безопасных протоколов TLS/HTTPS
-
Ограничения по проектированию
- Сервер должен хранить данные пользователей в реляционной базе для обеспечения их достоверности и целостности
- Сервер должен хранить данные о инвентарях игроков, геолокации и заданиях пользователя в нереляционной базе данных поскольку такие данные имеют неструктурированный формат
-
Ограничения реализации и разработки приложения
- Хранение данных пользователей необходимо реализовать с помощью реляционной БД PostgreSQL
- Хранение данных о инвентарях игроков, их маршрутов и прогресс выполнения заданий необходимо реализовать с помощью нереляционной БД MongoDB
- Для реализации серверной части проекта необходимо использовать язык программирования Golang
- Для реализации интерфейсной части проекта необходимо использовать язык программирования TypeScript
-
Требования к интерфейсам
- Взаимодейстие между сервером и мобильным приложением должно осуществляться с использованием протоколов
- HTTPS - получение данных по запросу (клику) пользователя
- WebSocket - передача геолокации и прогресса выполнения заданий
- Взаимодейстие между сервером и мобильным приложением должно осуществляться с использованием протоколов
-
Физические ограничения, накладываемые на технические (аппаратные) средства и окружение системы
- Устройство должно обладать операционной системой Android (v7.0 – v12.0) или iOs (v9.0 - v16.0)
- Устройство должно иметь доступ в интернет
- Устройство должно иметь возможность получать геолокацию
-