Как создать базу данных для игры с прогрессом пользователя - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь построить игру, в которой есть несколько уровней и разные миссии на каждом уровне.

Игра имеет Таблица уровней

levels
--------------
id
description
...

Итакже Таблица миссий

missions
--------------
id
level
description
.....

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

Таблица частей миссии

mission_parts
-----------------
id
mission_id
description
.....

Я предлагаю, чтобы в игре были следующие таблицы для отслеживания прогресса пользователя

  • Пользователь Уровень Прогресс
  • Пользователь Миссия Прогресс
  • Пользователь Mission_Parts Прогресс

И все время проверяя прогресс пользователя, как только пользователь завершит все части миссии - миссия выполнена, и как только пользователь выполнит все миссии определенного уровня, уровень будет выполнен.

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

Первый вопрос: стоит ли сравнивать таблицы каждый раз, когда пользователь хочетувидеть его прогресс или я должен как-то записывать прогресс пользователя?И второй вопрос - это даже хороший способ хранить и отслеживать прогресс пользователя в такой игре?

1 Ответ

0 голосов
/ 17 октября 2018

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

Таблица user_level_progress сохраняет уровень выполненного пользователем

user_level_progress
--------
user
level

Таблица user_mission_progress сохраняет пропущенные и выполненные задания пользователя

user_mission_progress
--------
user
mission
status (completed, skipped)

В таблице user_mission_parts_progress хранятся пропущенные и выполненные части миссии пользователя.

user_mission_parts_progress
--------
user
mission_part
status (completed, skipped)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...