我正在尝试构建一个游戏,该游戏的关卡数量很少,每个关卡的任务不同。
游戏具有关卡表
levels
--------------
id
description
...
还有任务表
missions
--------------
id
level
description
.....
每个任务都有一部分,例如,用户一步一步地执行任务,使用可以完成一部分任务并离开游戏。所以我需要跟踪用户进度。
任务零件表
mission_parts
-----------------
id
mission_id
description
.....
我建议游戏必须具有以下表格来跟踪用户进度
并一直检查用户进度,一旦用户完成所有任务部分-任务完成,并且一旦用户完成特定级别的所有任务,就完成级别。
在新登录时,它将级别,任务和任务部件表与相同的用户表进行比较,并返回每个级别,任务,部件的用户进度。
第一个问题是,用户每次想查看其进度时是否应该对表进行比较,还是应该以某种方式记录用户进度? 第二个问题是这样存储和跟踪用户进度的好方法吗?
答案 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)
您可以基于这些表显示用户进度。当然,您必须在用户完成任务时将完成的级别,任务和任务的一部分保存在这些表中