用途:为现有浏览器游戏添加“可解锁功能”(gateable features),生成后续任意变现层、订阅或权限系统可开启的脚手架,而非直接接入具体变现 SDK。
主要能力:产出皮肤选择器、死亡后续玩流程、奖励模式、存档槽、每日挑战等钩子,均通过 EventBus 连接,并统一经过单一能力检查接缝 isEntitled(key)。默认 isEntitled 对所有键返回 false,此时游戏必须完全正常;当变现层开启某项权限后,对应功能点亮。
分层:使用 bronze/silver/gold 游戏式分级。bronze 为默认,即所有人本就拥有的核心循环,不为其搭建任何功能;本技能只在 silver 与 gold 生成 2–3 项功能。下游映射示例:silver→sub.games 的 supporter(约 3–8 美元/月)或 Play.fun 中等积分;gold→founder(约 150 美元/年)或高积分。映射需在第二步输出中说明。
原则:不得锁住核心循环(“锁皮肤,不锁重力”);偏好加法而非减法(加奖励模式,不缩小免费模式);匹配游戏节奏;每个可解锁功能在锁定态下须无损降级。
使用方式:先读取 package.json 判断引擎,阅读 Constants.js、EventBus.js、GameState.js、main.js 与主要场景;第二步以表格提出候选功能(功能、层级、权限键、新增内容、锁定路径、事件、状态字段);交互模式下等待创作者确认,流水线模式自动取前 2–3 项;第三步创建 src/systems/Entitlements.js、追加事件与状态(reset() 区分持久与瞬时字段)、新增 GATEABLES 常量、创建各功能模块,模块入口调用 isEntitled(key) 分支,并增量更新 render_game_to_text()。
验证与限制:npm run build 通过,npm run dev 在默认锁定态下核心循环与改动前一致;临时让 isEntitled 返回 true 确认各功能激活后还原;若测试用 toEqual 比较快照需更新基线;在 progress.md 追加 ## Gateables 节。不要创建进入游戏前的标题页或皮肤选择优先流程,可解锁 UI 仅从暂停菜单、设置或 GameOverScene 打开。若 Entitlements.js 已接真实变现层则不要改,只追加权限键。具体安装命令、价格与平台支持,资料未提供。