我有一个网站,在那里我做了一个“任务生成器”来鼓励参与。我已经硬编码了 3 组任务(Easy、Med、Hard)。
简单的任务有 6-8 个可能随机发生的案例
- 更新 N 次你的英雄(N 是随机数)
- 更新特定技能
- 让你的英雄休息一天
- ETC..
Med 和 Hard 需要 1 项较难完成的任务,并从 Easy 任务中增加了 2 项。
我的生成器工作得很好,但我想知道如何设计奖励系统,这样用户就很难玩游戏了。
我遇到的问题是:
- 用户可能决定快速完成任务,然后在获得“已完成徽章”后立即将其删除
例如
更新 3 次你的英雄
添加新技能
向其他英雄发送消息
我认为一个问题是该人可能决定更新 3 次,选择一项新技能并发送一条消息,然后删除 3 次更新(有这样的功能)删除该技能并删除他发送的消息。
到目前为止,我已经提出了以下想法,但我正在寻找做过类似事情的人的意见。
- 第一种方法: 在数据库中硬编码一个表,其中包含每个可能组合的列,例如 row1 - 更新 | row2 - 新技能等... 缺点:恐怕行会很长,而且很难管理和添加新类型的挑战。整个概念变得非常僵化。
- 第二种方法: 为每个任务分配一个唯一的 ID,一旦技能或更新或任何添加的内容将其附加到任务编号。缺点:如果生成器每个任务平均需要 3 次更新,则每个成员每天都会获得 3 次任务(可以及时延长),这使得每个用户每天大约需要 10 次更新,再加上数据更新的实际记录对于几千名用户来说,它的数量很快就会增加。我会说 90% 的数据将毫无用处,只会产生账单。
- 第三种方法: 在表格中添加一列,其中包含更新、技能(以及任务中使用的所有其他表格)。然后,当用户添加新技能(例如)时,挑战 ID 将添加到技能表中的列中,如果技能被删除,任务将退回到“未完成”(更新和其他技能)缺点:当挑战是“让英雄休息 1 天”时,这可能会变得非常混乱,因为如果生成器在两天之间要求两次,用户将失去该类型的第一个成就,因为挑战 ID 将被覆盖。
一个大问题是——当用户决定偷工减料并删除他们的一些技能时会发生什么。我想他们的任务会开始堆积吗?(有点像惩罚)