返回 Skills
小游戏创作
突破纯文本选择:把剧情高潮做成可玩小游戏,通过变量回传深度影响主线走向与结局。
小游戏代码必须包含 init, onComplete, destroy 接口;必须提供跳过/兜底按钮,防止玩家卡关。
1
第 1 步:剧情契合度与玩法设计
结合当前场景的高潮事件,确定小游戏机制(密码锁/连线解谜/反应QTE/记忆翻牌/轻战斗),设计输入与结算变量。
用到的工具:
getGameInfogetDsl请帮我针对当前场景设计一款小游戏。要求:1. 玩法紧贴故事高潮;2. 耗时 30-90 秒;3. 明确回传给剧情的结算变量(如 puzzle_solved、combat_win、intel_score),以及后续分支如何利用这些变量。
完成标准:玩法规则、视觉概念与结算变量表获批,与剧情上下文天衣无缝。
2
第 2 步:剧本变量与分支条件配置
在剧本 initialState 中声明小游戏相关变量,并在场景后续编写条件分支选项与失败兜底。
用到的工具:
addVariableaddChoiceupdateChoiceConditionsetGameDsl请在剧本中注册小游戏使用的变量,并在小游戏场景下配置基于变量的选项分支(例如:* [继续前进] -> next (if: unlocked == true))。每个场景必须留有一个无条件选项作为兜底。
完成标准:变量在 DSL 中完成声明,选项分支条件完备,逻辑无死路。
3
第 3 步:编写自包含 ES 模块代码
严格按 MiniGamePlayer 规范编写单文件 JavaScript 代码,实现 init、onComplete、destroy 接口。
用到的工具:
uploadAsset请编写单文件标准 ES 模块代码。必须实现:init(container, variables) 挂载画布与渲染;onComplete(callback) 回传变量字典;destroy() 清理定时器与事件。样式自带局部 CSS,支持响应式与触控,并提供跳过兜底。
完成标准:输出可独立运行的 JavaScript 模块代码,语法无错,完全符合生命周期契约。
4
第 4 步:上传 CDN 并挂接场景 DSL
使用 uploadAsset 上传代码获取公网 URL,将 minigame 节点写入场景标题后的首个 YAML 块。
用到的工具:
uploadAssetsetGameDslgetDsl请将写好的小游戏 JS 转为 base64,调用 uploadAsset 上传到素材存储获取 URL。然后将 minigame: { prompt, variables, url } 挂进目标场景的 YAML 元数据块中,先 dryRun 校验再写库。完成标准:小游戏代码成功上传,场景 YAML 包含有效的 minigame 配置且 dryRun 通过。
5
第 5 步:播放页实机调试与体验优化
在 /play/<slug> 实际打开小游戏,验证操作手感、结算时机、变量回传与分支跳转顺畅。
用到的工具:
getGameInfoupdateGameMeta请给出小游戏的试玩检查清单,指导我在播放页进行实机测试:1. 点击开始后加载是否顺畅;2. 通关或失败时变量是否正确生效;3. 场景选项是否根据结算状态实时解锁。
完成标准:小游戏在真机/浏览器中完美通关,变量同步成功驱动后续故事展开。