Studio / ROBLOX
没人注意到的第一份奖励:一个虚构的 Roblox 原型故事
一枚交出的电池与一把蓝色扳手:用虚构故事学习完成反馈、物品位置、发放与保存的区别,并准备尚未填写结果的测试计划。
没有说“完成了”的工坊 #
这是一篇虚构的教学故事。码头、“灯笼工坊”原型、开发者米拉和玩家莉娜都是为分析界面问题而创作的,不是真实评价、人物传记或已完成的测试报告。我们没有为这段场景修改本站作者的五款游戏。下面的改进都是对这个小型虚构原型的建议。
码头边的小船轻轻晃动。工坊桌上的灯灭了,看守人请莉娜拿来一枚电池。第一个任务的奖励是一把蓝色扳手,可用于下一次维修。拿电池、交给看守人、获得扳手:任务很小,路线她也已经明白。问题发生在路线结束时:她怎么知道自己的工作被接受了?
1. 电池消失,问题仍然在 #
莉娜把电池放到桌上。灯亮了,手里的物品消失,看守人转向小船。角落仍写着“带来电池”。金币计数没有变化,因为这次奖励不是金币。莉娜看看灯,又看看空手:“我已经拿到扳手了吗?还是要再按一次?”
米拉知道,在设计里扳手应该进入工具栏。莉娜不知道这层关系。电池消失可能被理解成提交、丢失或故障。再加一个指向工坊的箭头不能解决问题,因为玩家已经到了。缺少的是对已完成动作的回答。米拉在本子上写下:交出电池后,玩家应该能说出什么结果?
2. 庆祝闪光没有回答问题 #
米拉首先想到在桌上增加火花。下一版想象场景里,灯被漂亮的光晕围住。效果令人愉快,却只表示发生了某件事。奖励是什么?放在哪里?是否需要重复提交?这些问题仍然存在。更响的声音也不会说出物品名称,尤其当玩家关闭声音时。
米拉保留一个简短的灯光点缀,但不再把它当作完整的确认系统。她在纸上画三个空格:完成的任务、收到的物品、可以进行的下一步。如果某一格不能用简单话填写,动画也修复不了含义。原型由此得到一个约束:先决定要回答什么,再选择支持这个回答的效果。
3. 奖励约定只需要一行 #
装饰之前,米拉写下:“第一个电池任务向工具库存发放一把蓝色扳手。”角色保留它;再次尝试结束同一个初始任务,不会再增加第二把。这是虚构原型的规则,不是所有 Roblox 奖励的通用规则。可重复任务需要另外的条件。
现在相关指标明确了:库存中的扳手记录和初始任务状态,而不是通用金币数字。米拉也写出什么算完成、何时开放下一次维修,以及哪些数据要在重新进入后存在。一行约定连接界面与玩法,但还不能证明实现正确。它可以让矛盾显现:一次初始提交拿到两把扳手,就违反了这个规则。
4. 消息跟随已确认的动作 #
米拉建议在当前任务附近显示“电池已交付,获得蓝色扳手”。这应该在完成条件被检查、游戏状态中已经发放奖励后出现,而不是只因为按了按钮。等待期间需要另一种回答:“正在检查交付。”这样玩家才能区分请求和结果。
消息下面有“打开工具”。简短音效和光效可以陪伴消息,但不能代替它。日志只在对应状态下显示任务完成。文字说出具体物品和动作,而不是含糊的“成功!”米拉还需要检查位置:手机上不应挡住控制按钮,也不应在玩家来得及看之前就消失。这里没有规定万能显示时长,要通过实际界面检查。
5. 消息关闭后仍能找到奖励 #
虚构的莉娜打开工具。在新方案里,卡片标着“蓝色扳手”,图标也与消息一致。短暂强调只指向这张卡。旁边写着用途:“用于下一次维修。”玩家不用凭陌生图片猜哪件物品刚刚加入。
通知关闭以后,库存仍是核对结果的地方。米拉不同时强调商店、收藏、设置和全部后续任务。眼下重要的是一个任务与一个工具的联系。以后再次查看记录时,名称也应相同。这里指原型自己的库存,不是购买平台头像物品,也不是自动给账号发放可在所有 Roblox 游戏通用的道具。奖励属于故事中设计的游戏系统。
6. 任务状态与保存状态不同 #
米拉摆出卡片:任务进行中、交付检查中、奖励已收到、结果已为下次进入保存。最后一张不会因为屏幕上出现物品而自动成立。若发放已确认、持久保存仍在等待,界面可以说“扳手已收到,正在保存……”而“已保存”需要自己的依据。
开发者需要精确的内部状态,玩家需要看得懂的回答。等待信息不能同时像错误和完成。如果只知道提交请求,不能把扳手显示成已经拥有。如果发放已知而保存尚未确认,也不能把本次会话当作下次进入的承诺。下面的示意图帮助在写代码前讨论区别,而不是代替实现或验证。
7. 再按一次是在检查规则 #
莉娜可能错过回答后再次按按钮。米拉建议暂时把按钮改成“检查中”,避免界面鼓励无限点击。但改变按钮本身并不能保护发放:重复请求和奖励资格要由服务器逻辑处理,不只是外观问题。
初始任务应识别已经处理过的完成,返回当前状态,而不是再给一把扳手。技术计划要包含重复请求、延迟回答,以及改变奖励后、保存数据前发生中断的情况。本文没有提供现成事务,也不保证 exactly-once。作者必须为物品和任务完成设计一致的规则,再在独立测试版本验证。好看的界面不能替代这一步。
8. 重新进入会提出另一个问题 #
故事里,米拉看到扳手卡片就差点宣布完成改进。后来她翻到另页:“莉娜退出再回来会看到什么?”现在拥有扳手和后来恢复扳手是两个检查。物品、初始任务记录以及下一次维修权限要一致,不能只看漂亮标签。
等待或未确定的保存需要诚实状态,例如“正在检查保存”,而不是无条件说“一切已保存”。失去连接并不能让人猜奖励一定消失,然后立刻再发一个。恢复状态要放入独立测试场景。保存测试使用独立版本:Studio 访问正式数据可能影响真实进度,所以本故事不建议在运行中的游戏上开启这种访问。
9. 表格让疑问变成可检查的建议 #
米拉不再只写“让奖励更清楚”。她把每个问题与可见变化、验证问题连起来。旧目标仍显示?需要一致的完成状态。不知道获得什么?需要物品名称和对应库存。关闭后找不到?需要持久可看的记录,而不是不停重放闪光。
第一张表包含建议,不是测试结果。第二张表是未填写的计划,设备、版本、观察还需要记录。空结果比编造勾号好。不要让参与者重复你事先说出的答案;问发生了什么、会去哪里检查物品,再记录动作。数据里数量正确,也不代表玩家注意到了提示,两者要分别观察。
| 改动之前 | 建议 | 怎样检查 |
|---|---|---|
| 电池消失,没有解释 | 确认后说出交付与扳手奖励 | 玩家能描述发生了什么吗? |
| 只看见金币 | 打开对应工具库存 | 能找到扳手卡片吗? |
| 日志仍显示旧目标 | 让完成状态与下一维修一致 | 日志与奖励状态相符吗? |
| 再按似乎是新请求 | 明确等待;服务器识别已处理完成 | 重复操作会改变扳手数量吗? |
| 屏幕物品被当作已经保存 | 区分发放与持久保存状态 | 重进后物品与任务能恢复吗? |
10. 把方法用于自己的第一份奖励 #
选择自己游戏的一个任务。写清玩家交出或完成什么、得到什么,以及以后在哪里查看。只指出相关指标:工具、收藏记录、经验或另一个预定结果。奖励在别的系统时,不要让人盯着金币。
定义动作之前、检查期间、发放之后,以及计划提供的确认保存之后,各自应是什么状态。为重复操作、重新进入、关闭声音、小屏幕准备独立场景。一次修改一个混淆原因,保留用于比较的版本。Creator Hub 把反馈解释为对动作的回应,并建议优先显示当前需要的信息。扳手和整个场景都是我们的原创例子,不是复制的游戏案例。
| 场景 | 观察内容 | 设备 / 版本 / 结果 |
|---|---|---|
| 一次初始交付 | 消息、一把扳手、完成与下一步 | — |
| 重复请求与延迟回答 | 没有第二次发放;状态一致 | — |
| 消息关闭与静音 | 仍能找到物品,并理解结果 | — |
| 小屏幕 | 文字可读,控制可用 | — |
| 确认保存后重新进入 | 扳手、任务状态、维修权限 | — |
| 保存中断或结果未确定 | 诚实状态;恢复时不猜测再次发放 | — |
11. 莉娜终于知道包里有什么 #
在虚构原型的结尾,灯亮了,没有漫长的烟花。消息说出已交的电池和收到的扳手。莉娜打开工具,看到一致标签,理解下一次维修的邀请。她不再为了确认是否发生了任何事而试着重复交出已经消失的电池。
这是故事的结尾,不是留存增长测量。米拉还保留测试计划,尤其是保存与重复请求。但设计思路已经完整:第一份奖励不只要存在于数据,还要在动作故事中有看得懂的位置。读者可以带走规则、表格和问题,把电池换成自己的任务,检查自己的场景,而无需借用别人代码或虚构玩家评价。
原始资料
Roblox Creator Hub — Onboarding techniquesUI and UX design
Onboarding
Data stores
Securing the client-server boundary