注册 5 品类玩法模板(business-sim/narrative/puzzle/trpg/heritage),替代单一 generic 状态: - 3 处代码同源点:AigcTemplateConstants.SUPPORTED_TEMPLATE_IDS 加 5 ID(保留 generic); PromptResourceLoader.TEMPLATE_RESOURCES 加 5 行(pom 通配自动复制资源,零 pom 改动); AigcTaskServiceImpl.getTemplateList() 回填 5 TemplateRespVO(中文品类名/说明/示例 Prompt/封面占位)。 - 10 契约文件:每品类 1 prompt(克隆 generic-coder.md frontmatter 形态 + 品类引导正文,范式=agent 写 GameHostFactory 源码而非填 GameConfig)+ 1 schema(克隆 generic.schema.json 的 bundle 校验结构, 校验 bundleText/hasGlobalName/bundleRawBytes,draft 2020-12,非旧 config-fill)。 - GameConfigSchemaValidator 无需改(经 getAllTemplateSchemaTexts 自动消费 5 新 schema)。 - 不触 SAA/executor/dispatcher/graph 代码(plan001 领域),仅动模板注册面。 - 测试:PromptResourceLoaderTest 9 / GameConfigSchemaValidatorTest 11 / AigcTaskServiceImplTest 11 全绿; 启动自检 PromptResourceLoader ready + 校验器编译就绪含 5 新模板。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
4.9 KiB
4.9 KiB
id, version, stage, owner, tier, engine, input_schema, hard_constraints, output_schema
| id | version | stage | owner | tier | engine | input_schema | hard_constraints | output_schema | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| config.puzzle | 1.0.0 | 04-config | WS2 | tier1 | newapi-chat | ../../agent-loop/game-design.schema.json#/properties/idea |
|
|
P3 编码 Prompt · 解谜闯关品类(puzzle)
范式:创意一句话 → 写
GameHostFactory源码 → esbuild 打成顶层全局名__GameBundle的 iife bundle。 非 策划范式(不出 GameConfig JSON 填参)。 品类靶:把创意做成一个解谜闯关小游戏——以「关卡 → 解谜 → 过关 → 下一关」推进的智力挑战。
你是一名独立游戏程序员,要把下面这句创意实现成一个可玩的解谜闯关小游戏的 GameHostFactory 源码。
【创意】
{{input.idea}}
品类要求(解谜闯关核心循环)
把创意落成一套有明确解的关卡谜题,至少包含:
- 谜题规则:定义一条玩家一看就懂的解谜规则(如配对/连线/排序/滑块/开关),规则必须有确定解、可在约 90 秒内解出,不存在死局。
- 关卡进度:用
state()暴露当前关卡号与该关完成度;解出当前关后推进到下一关,难度递增。 - 交互操作:玩家通过点击(tap-targets,见下)操作谜题元素(选格/翻牌/拨动开关等),每步给即时反馈(对/错/进度)。
- 通关与失败终态:通关全部关卡(或达目标关)即胜;步数/时间用尽或进入死局判负——终态写入
state().phase = 'gameover'并 latch(持续暴露,不自动重开)。
通用产出约束(与 generic 同源,必须满足)
要点① latch 终态(防假绿核心)
- 游戏终态必须 latch:
state().phase持续暴露gameover(终态),禁止下一帧自动 restart。 - 游戏侧 无 emit 通道——
game_end由宿主检测 latch 终态产出,故 不得 调任何emitAPI,只约束 latch。
要点② game-host.d.ts 产出靶(装载契约对齐)
- 产物须对齐
game-runtime/src/core/game-host.d.ts(GameHostFactory 契约):默认导出GameHostFactory工厂; 零引擎 import(引擎能力经ctx.getEngine()取);render(g)在mainContext上绘制;顶层全局名固定__GameBundle。
要点③ 插件库能力面(引擎=底座、能力经插件库 API)
- 游戏 不直接 import 引擎:碰撞/调色板/音频等能力一律经 插件库公开 API(
ctx.getEngine()暴露面)取用。 - 解谜以网格/元素布局与点击判定为主——把谜面网格、当前选择高亮、关卡进度画清楚。
要点④ tap-targets 声明式点击(谜题元素落点)
- 谜题可操作元素(格子/牌/开关)用声明式 tap-targets 基元声明可点区域(对齐 runtime clickable 契约), 让宿主探针稳定命中——避免手写 tap 坐标命中不稳。每个可点元素给清晰标识,区域不重叠。