Skip to content

vovasazonov/Cats-trip

Repository files navigation

Cats-trip

1. Описание приложения


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

Cats-trip - мобильная игра в жанре раннер для Android. Данный жанр означает, что пользователь (в процессе игры) управляет героем, который убегает от чего-либо и преодолевает различные преграды по пути. Главный герой игры – животное, которое любит путешествовать.

Доступные животные:

  • кот,
  • енот,
  • заяц.

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

Доступные бонусы:

  • Магнит - притягивает к себе все ближайшие монеты,

  • Удвоение монет - с его помощью множитель очков увеличивается вдвое.

  • Щит – помогает избежать столкновения с преградами (деревья, камни, снеговик),

  • Замедление игры – уменьшает темп игры.

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

1.2. Функциональные требования

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

  • Увеличить счет, чтобы попасть на вершину рейтинга: собрать монеты,

  • Побить рекорд, можно возвращаться к пройденной локации и увеличивать счет,

  • Приобретать новые предметы,

  • Менять главного героя.

1.3. Нефункциональные требования

  • Нужно избегать всевозможные препятствия, если игрок видит препятствие, необходимо передвинуть героя в безопасное место, нажав на экран или воспользоваться бонусом «Щит»,

  • Использовать бонусы: игрок может взять любой из собранных им бонусов, например, «Удвоение монет»,тогда счет будет увеличиваться и, следовательно, будет больше шансов попасть на вершину рейтинга,

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

  • Копить монеты. Можно использовать бонус «Магнит»,

  • Купив однажды нового животного, можно вернуться к предыдущему, обратившись в профиль «Доступные животные».

1.4. Макеты интерфейса

Главное меню игры

Главное меню игры

Процесс игры

Процесс игры

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

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

Магазин персонажей

Магазин персонажей

Коллекция купленных персонажей

Коллекция купленных персонажей

1.5. Описание хранимых данных

1.5.1. Данные пользователя

Содежится главная информация о пользователе, а именно:

  • Количество монет - здесь находится информация о количестве монетах, который пользователь имеет. В случае, когда пользователь потратил или приобрел монеты, информация обновляется.
  • Наилучший результат - хранит в себе наилучший результат, который пользователь смог достичь в игре. Под лучшим результатом имеется ввиду максимальное расстояние пути игрока от старта до проигрыша за одну игру.
  • Уровень пользователя - содержит информацию об уровне пользователя. Уровень пользователся зависит от опыта, который пользователь получил при прохождении задания.
  • Опыт пользователя - сожержит в себе весь опыт, который набрал пользователь. В зависимости от опыта, складывается уровень пользователя.
  • Тип аккаунта - хранит в себе булеевское значение, которое говорит, является ли аккаун премиум или нет. При премиум аккаунте у пользователся убирается "надоедливая реклама", появляется больше заданий, получает всех скинов из магазина.
1.5.2. Животные, которые имеет пользователь

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

  • Приобретенные животны - хранит всех животных, приобретнные пользователем. Эти животные можно просмотреть в разделе профиля у пользователя.
  • Текущее животное - указывает на животное, приобретенное пользователем, которым он играет в игре. Текущее животное можно поменять, купив новое в магазине, или выбрать другое среди имеющихся животных в резделе профиля.
1.5.3. Задания

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

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

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

2. Используемые СУБД


В ходе выполнения работы, участниками команды будут использоваться следующие СУБД:

  • MS SQL - является одной из наиболее популярных (СУБД) в мире. Для организации баз данных MS SQL Server использует реляционную модель. Реляционная модель предполагает хранение данных в виде таблиц. Для взаимодействия с базой данных применяется язык SQL. Клиент (например, внешняя программа) отправляет запрос на языке SQL посредством специального API. СУБД должным образом интерпретирует и выполняет запрос, а затем посылает клиенту результат выполнения;

  • MySQL - представляет систему управления реляционными базами данных (СУБД). На сегодняшний день это одна из самых популярных систем управления базами данных. MySQL обладает кроссплатформенностью, имеются дистрибутивы под самые различные ОС. Благодаря поддержке огромного количества типов таблиц, MySQL является достаточно гибким;

  • MariaDB - ответвление СУБД MySQL. MariaDB является фактически альтернативой MySQL, разрабатывается полностью открыто. СУБД имеет множество улучшений производительности Inodb, MyISAM и движка обработки запросов, поддерживает GIS, ликвидацию таблиц, виртуальные и динамические колонки, репликацию с несколькими источниками, роли и др;

  • MongoDB - кроссплатформенная документоориентированная СУБД, классифицированная как база данных NoSQL, MongoDB отходит от традиционных основ реляционной структуры базы данных в пользу JSON-подобных документов с динамическими схемами, что делает интеграцию данных в определенных видах приложений проще и быстрее. Запросы могут возвращать определенные поля документов, а также включают в себя пользовательские функции JavaScript. .

3. ER - диаграмма


ER диаграмма

4. Основные операции с БД


Основные операции с базами данных в SQL включают:

  • создание базы данных – команда: CREATE DATABASE;

  • просмотр информации о базах данных:

Оператор SHOW DATABASES выводит на экран список баз данных на сервере,

Оператор SHOW TABLES показывает список таблиц в базе данных,

Оператор DESCRIBE выводит структуру таблицы,

Оператор SHOW STATUS позволяет просматривать подробную информацию о текущем состоянии сервера,

Оператор SHOW TABLE STATUS выводит подробную информацию о таблицах в базе данных.

  • установка параметров базы данных,

  • переименование и удаление базы данных – команда: DROP DATABASE;|DELETE,

  • выбор данных из таблицы: SELECT,

  • добавление значений в таблицу – INSERT,

  • изменение уже существующей записи или множеств записей в таблице SQL- UPDATE.

5. Команда


Команда состоит из 4-х человек группы ИВТ-364. Состав команды: Козина С.А., Кочура О.А., Кучерова М.С., Сазонов В.С.

Работа с СУБД

За каждым из участников команды закреплена работа с определенной СУБД:

  • MS SQL - Козина С.А
  • MySQL - Кочура О.А
  • MariaDB - Кучерова М.С
  • MongoDB - Сазонов В.С

Каждым из членов команды должна быть изучена СУБД и создана база данных, на основе разработанной ER - диаграммы. Помимо изучения своей СУБД, необходимо иметь представление о всех используемых командой систем управления БД.

Работа над приложением в целом

  • Разработка сервера - Сазонов В.С.

  • Реализация взаимодействие Unity с сервером - Кучерова М.С., Сазонов В.С.

  • Разработка на Unity необходимых функционалов для приложения - Козина С.А., Кочура О.А., Сазонов В.С.

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

6. Архитектура приложения на верхнем уровне


7. Описание использованных инструментов


  • GitHub - веб-сервис для хостинга IT-проектов и их совместной разработки, используется всеми участниками команды для разработки,

  • draw.io - редактор, предназначенный для разработки ER - диаграммы,

  • Unity - среда разработки игры,

  • Node.js - программная платформа, предназначенная для написания сервера,

  • Markdown - язык разметки, предназначенный для разработки файла Readme,

  • Balsamiq – сервис, предназначенный для разработки макетов интерфейса.

Языки программирования:

About

Code of game Cats Trip

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published