【问题标题】:How to design database for a game with user progress如何为具有用户进度的游戏设计数据库
【发布时间】:2018-10-17 17:43:54
【问题描述】:

我正在尝试构建一个游戏,它的关卡很少,每个关卡都有不同的任务。

游戏有关卡表

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

还有任务表

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

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

任务零件表

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

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

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

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

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

第一个问题是,每次用户想要查看他的进度时它应该比较表格还是我应该以某种方式记录用户进度? 第二个问题是像这样在游戏中存储和跟踪用户进度的好方法吗?

【问题讨论】:

  • 任务的一部分和任务是否连续执行?
  • @MaximFedorov,实际上不,用户可以跳过部分任务,稍后再返回。
  • 进度表有什么结构?

标签: database algorithm database-design


【解决方案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)

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    • 1970-01-01
    • 2011-09-06
    • 1970-01-01
    相关资源
    最近更新 更多