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

4

我正在尝试制作一个游戏,它有几个关卡,在每个关卡上有不同的任务。

游戏中有关卡表

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

还有任务表

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

每个任务都由若干部分组成,例如用户逐步完成任务的各个部分,用户可以完成任务的几个部分并离开游戏。因此,我需要追踪用户的进度。 任务部分表格
mission_parts
-----------------
id
mission_id
description
.....

我建议在游戏中添加以下表格来追踪用户进度:
  • 用户 等级 进度
  • 用户 任务 进度
  • 用户 任务部分 进度
需要不断检查用户的进度,一旦用户完成所有任务部分 - 任务就完成了,一旦用户完成某个等级的所有任务,该等级就完成了。
在新登录时,将比较 等级、任务和任务部分 表格与同一用户的表格,并返回每个等级、任务、部分的用户进度。
第一个问题是,用户想要查看自己的进度时,是否应该每次都比较表格,还是我应该以某种方式记录用户的进度?第二个问题是,在像这样的游戏中存储和跟踪用户进度是否是一个好的方式?

任务的部分和任务是依次执行的吗? - Maksym Fedorov
@MaximFedorov,实际上不是这样的,用户可以跳过任务的一部分,稍后再回来完成。 - Nick D
进度表有什么结构? - Maksym Fedorov
1个回答

3

您说得对,如果用户可以跳过任务的某个部分或整个任务,则应存储用户进度。这些表的结构可能如下:

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)

您可以根据这些表格显示用户的进度。当用户完成它们时,您必须在这些表格中保存已完成的级别、任务和任务的部分。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接