AI 做大型关卡时,每次重读几万字 JSON 是不是太笨重了?
修改于前天 06:51162 浏览开发心得
最近在用TapTapMaker 做一个横版二次元平台跳跃项目,随着关卡越来越复杂,遇到了一个很头疼的问题:编辑器导出的配置越来越大。最开始 AI 协作时,我是直接把完整 JSON 发给模型。后来关卡配置逐渐膨胀到几万字。于是出现几个问题:
- 对话框传输困难
- 积分消耗巨大
- AI 每次都要重新理解整个关卡
- 很难知道 AI 这次到底改了什么
于是最近花了一段时间折腾编辑器同步流程。最终做了几项优化:
1. 全量 JSON → 增量同步
原来:
完整关卡JSON
↓
发给AI
↓
AI分析差异
现在:
编辑器操作
↓
生成Intent
↓
合并修改
↓
输出Patch
↓
发给AI
AI只需要关注:新增了什么,删除了什么,修改了什么
而不需要重新阅读整个关卡。
例如下图:
左:编辑器完整操作表,6w+字符用于debug
中:events、intents、mergedIntents、patchPreview 四套信息。
右:最小操作集传输,只同步最小结构化改动

相同操作量三个阶段打出来的三份表
2. 编辑器内 Diff 预览
增加了变更预览:
新增节点
修改属性
新增对象
修改连接关系
每次同步前都能看到:本次修改了哪些内容
方便检查 AI 是否理解正确。

简易diff

把最小操作集列表粘到这里
3. Intent Merge
很多操作实际上会产生大量重复事件。
例如:
拖动节点
修改文本
修改输出连接
原始记录可能十几条,但最终只保留:节点最终状态

43项操作经中间层算法集成为8改动
减少同步体积。
4. 浏览器日志同步
后来发现可以直接通过浏览器日志让 AI 拉取同步数据。
于是:
手动复制JSON
变成:
编辑器输出同步日志
↓
AI读取日志
绕过了对话框长度限制。

现在不用复制粘贴了
5. 版本存档
目前采用:时间戳+Diff摘要+完整JSON快照
形式保存关键节点。
例如:2026-06-21
新增3个Trigger
修改Dialog节点
新增Camera演出
【全量json留档】
同时保留对应快照。方便回滚和排查问题。

文档结构
流程:编辑完成后在编辑器中点击保存,ai同步,导出diff三个按键,在对话框中输入同步编辑器改动,嗒啦啦可以自动拉取并按照标识分类日志,diff和全量json写进项目文档进行留存,最小操作集配置表写入文件进行重新构建,一条龙服务。
(为防止最小操作集吞操作的问题,协议中禁止了未拉取到全量json写入文档前提下的ai sync自动构建)

编辑器,后续优化ui,现在能用就行
这套东西本来只是为了处理:“几万字关卡配置已经传不动了”这个问题。但做到后面发现,它顺带解决了:
- 大型关卡配置同步
- AI上下文污染
- 修改审计
- 变更回溯
- 多轮协作维护
后续思路(还未实践,只是有想法):反向利用该架构,让ai基于编辑器操作将提示词可视化且可控的实现(比如帮我把策略节点连好),这样提示词和可视化可以归并进一套流程,防止一句话能讲清的事情手动连接几十节点,或者是拖一下物件解决的问题和ai描述半天位置
发帖只为记录开发心得,欢迎讨论。最后放一个新做的ui![[TapFamily1_阿巴阿巴]](https://img-tc.tapimg.com/market/images/8190b5e6cca7e9f31305d24ec0869cf3.gif)
![[TapFamily1_阿巴阿巴]](https://img-tc.tapimg.com/market/images/8190b5e6cca7e9f31305d24ec0869cf3.gif)



