如何为具有用户进度的游戏设计数据库

时间:2018-10-17 17:43:55

标签: database algorithm database-design

我正在尝试构建一个游戏,该游戏的关卡数量很少,每个关卡的任务不同。

游戏具有关卡表

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

还有任务表

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

每个任务都有一部分,例如,用户一步一步地执行任务,使用可以完成一部分任务并离开游戏。所以我需要跟踪用户进度。

任务零件表

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

我建议游戏必须具有以下表格来跟踪用户进度

  • 用户级别进度
  • 用户任务进度
  • 用户 Mission_Parts 进度

并一直检查用户进度,一旦用户完成所有任务部分-任务完成,并且一旦用户完成特定级别的所有任务,就完成级别。

在新登录时,它将级别,任务和任务部件表与相同的用户表进行比较,并返回每个级别,任务,部件的用户进度。

第一个问题是,用户每次想查看其进度时是否应该对表进行比较,还是应该以某种方式记录用户进度? 第二个问题是这样存储和跟踪用户进度的好方法吗?

1 个答案:

答案 0 :(得分:1)

您是对的,如果用户可以跳过部分任务或任务,那么您应该存储用户进度。这些表的结构可能如下:

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)

您可以基于这些表显示用户进度。当然,您必须在用户完成任务时将完成的级别,任务和任务的一部分保存在这些表中