好游科技 2026 年中业务进展与下半年规划公告

2026 上半年工具矩阵与内容平台双线推进:月活跃用户突破 80 万,7 个版本迭代,下半年聚焦出海、开放与提效三大方向。222

返回资讯列表

发布于 2026年10月5日 70 次浏览

Agent 可编程技术栈选型(唯一版 · 2026-10)

五轮追问合并:存量工程 → 新项目 → 多端一次导出 → 全自建 → LayaAir vs Cocos 对比

2026-10-06 | 本文件是以下五篇的唯一留存版,原五篇已并入此处并删除(归档见交付说明):

篇原文件名回答的问题
1agent-tech-stack-review-2026-10.md存量工程(Cocos 2.4.15)为什么难被 agent 编程,能救到哪一步
2agent-first-stacks-new-project-2026-10.md只看新项目,哪些栈能全 agent 编程
3agent-plus-multiplatform-stacks-2026-10.mdAI 全编码 ∩ 一次导出七端,交集还剩什么
4code-first-selfbuilt-multiplatform-2026-10.md代码优先+全部自建,能不能做到全平台
5layaair-vs-cocos-对比审查报告-2026-10.mdLayaAir 与 Cocos 逐条对比,新项目该选谁

编号约定:判据 C1–C10;决策 D1–D73(跨篇连续,编号不重复);证据标注 [实测]/[文档]/[推论] 各篇自注。


第 1 篇 · 可被 AI Agent 全面编程的游戏技术栈梳理(微信小游戏为主目标)

原文件:docs/agent-tech-stack-review-2026-10.md(已并入本篇)

可被 AI Agent 全面编程的游戏技术栈梳理(微信小游戏为主目标)

调研日期:2026-10-06 | 适用工程:水泊风云录(Cocos Creator 2.4.15) 本文所有"本机数字"均为当场实测(命令见附录),所有"外部事实"均带来源链接;推测/待验证项统一编号为 D1…D10。

2026-10-06 追加:本文=第一代(存量工程视角:214 个 prefab 怎么办、三条路线 A/B/C)。新项目选型另出第二代稿 agent-first-stacks-new-project-2026-10.md(判据扩到 C1–C10、候选栈铺到 6 组、含资产管线与发布/验证回路),其决策编号从 D11 起,与本文 D1–D10 不复用。


0. 速查结论(先看这一屏)

一句话:你的判断需要修正一半——Cocos 2.4.15 确实没有 agent 通道(无 MCP、场景真源是编辑器产出的 JSON),但 Cocos Creator 3.8+ 已有第三方 MCP(Funplay,105 个工具,可直接读写 scene/prefab/component);真正决定 agent 能不能干活的是"真源是不是文本 + 有没有自检回路",其次才是引擎名字。

栈Agent 改场景/界面的能力微信小游戏多平台广度对本工程的代价定位
Phaser 4.2.1 + TS + Vite★★★★★ 纯代码即场景,可无头自证✅ 自维护 adapter(已有 MVP 案例)网页/各小游戏需逐端 adapter⚠️ 全量重写(含 214 prefab 内容)新项目首选
kaplay / Excalibur / Pixi8+ECS★★★★★ 同上,体量小、语料少✅ 同 adapter 路线窄全量重写小项目/原型
Eva.js(阿里互动引擎)★★★★☆ ECS + JSON 场景,无编辑器⚠️ 主要面向淘宝/支付宝互动,微信侧要自证阿里系强,微信弱全量重写谨慎(社区 1782★)
Cocos Creator 3.8.x★★★★☆ 走 MCP 通道(GUI 在场)+ 官方 CLI 构建✅ 官方一键发布,最省事✅✅ 最广(微信/抖音/QQ/快手/支付宝/B站/H5/原生)⚠️ 2.x→3.x prefab 格式转换(D1)续命路线
Cocos Creator 2.4.15(现状)★★☆☆☆ 只能改 .ts;.prefab/.fire 手改即脏✅ 已跑通(含分包/远程资源)同上(2.x 版本较老)0只做局部改造
LayaAir 3.x★★★☆☆ 引擎开源、代码建场景可行,但发布依赖闭源 IDE✅ 官方文档齐官方支持多端全量重写只有 3D 需求时看
Godot 4 + 社区小游戏适配★★★★☆ .tscn/.gd 是纯文本,天然可 diff⚠️ 社区工具(Web 导出改造,≈20MB、仅 WebGL2)桌面/移动强,小游戏非官方全量重写小游戏目标下不推荐
Unity / 团结引擎(WebGL 转换)★★★☆☆ 编辑器 MCP 很成熟(unity-mcp 14.7k★)但小游戏必须过 GUI 转换工具✅ 官方转换链路小游戏 + 原生全量重写 + 版号/审核流程不推荐(2D 重 UI 是它的短板)
Egret / cocos2d-x 2-3 / Hilo / CreateJS————已停更,排除

我的建议(可推翻):不要为了 agent 而重写。走 两段式:

  1. 现在(0-2 周,留在 2.4.15):把"UI 真源"从 prefab 里搬出来 —— 工程已有 40 处 new cc.Node、46 处 addComponent 的代码建 UI 先例(assets/scripts/ui/commonTip/ProbDisclosure.ts:87,114,131),把它升级为声明式布局 DSL + 运行时构建;再把已经跑得通的 npm run typecheck(实测 0 错误)接进 CI,并补无头 Chrome 截图回归。agent 立刻获得"全面编程"的 80%。
  2. 下一个新项目 / 或本 project 的 v2:直接 Phaser 4 + TS + Vite + 自维护 weapp-adapter,真源 100% 是文本,agent 可无人值守、可并行多子代理。
  3. 只有当你想让 agent 继续改存量 214 个 prefab 时,才值得考虑升 3.8.x + Funplay MCP(注意:MCP 要求编辑器 GUI 打开,属于"人在场"模式,见 §2 的 Mode B)。

1. 为什么"agent 改不动"——本工程的实测病因

指标实测值含义
场景文件1 个 assets/Scene/HallScene.fire,5402 B(只有 Canvas + Main Camera)场景本身几乎空,不是瓶颈
Prefab214 个 / 4,440,599 B / 249,238 行 JSON内容的真正载体,agent 的死角
├ Spine 包装 prefab155 个 / 50,227 行(assets/bundles/battle/spine/*,141 个含 sp.Skeleton)只是 sp.Skeleton 外壳,代码里一次初始化调用即可替代
└ UI 型 prefab58 个 / 198,883 行(其中 47 个含 Button/ClickEvent/Widget/Label/ScrollView/Toggle)真正需要重写/迁移的面板只有 约 47 个
序列化组件统计cc.Color 3636 / cc.Size 2093 / cc.Node 2093 / cc.PrefabInfo 2093 / cc.Sprite 851 / cc.Label 384 / cc.Widget 240 / cc.Button 138 / cc.ClickEvent 169 / sp.Skeleton 1412093 个节点摊在 47 个面板上 ≈ 45 节点/面板,每个节点被拆成 4 段序列化块
TypeScript110 个文件 / 30,924 行目前 agent 唯一能安全操作的部分(≈内容总量的 11%)
最重的三个面板UIShop.prefab 30,951 行、UIBattle.prefab 12,040 行、UIHeroInfo.prefab 10,979 行改一个商店按钮 = 在 3 万行 JSON 里定位 fileId
引擎版本project.json:4 → 2.4.152.x 无 MCP 生态(Funplay 要求 3.8+)
依赖node_modules 只有 typescript/iconv-lite/safer-buffer;tsconfig.json:5-6 = target: es5 + experimentalDecorators,未开 strict只有类型检查一层自证能力,且没接线(见下方根因 3)

根因是三条,不是"引擎不支持 AI":

  1. 真源不是文本可读形式:.prefab 虽是 JSON,但靠 fileId/_id/uuid 互相引用,改错一个字符串就静默丢引用,且人看不出 diff;agent 没有可视化确认手段。
  2. 构建与预览必须 GUI:settings/wechatgame.json + 构建面板产出 build/wechatgame,tools/post-build-wechat-subpackage.sh:27,43-48 只是把 bundle 搬到 subpackages/{name}/ 的后处理,且脚本自己就在 :54 要求"请用微信开发者工具重新编译验证";agent 拿不到"构建是否成功"的退出码 → 无法闭环。
  3. 自检回路只建了一半:package.json 已有 typecheck(tsc --noEmit),2026-10-06 实测退出码 0、0 条错误(本地 node_modules 带 typescript 5.9.3);但 CI 只有两个 python 步骤(.github/workflows/reskin-check.yml:23,26 = validate_spine.py + scan_old_theme_residuals.py),没有 npm ci、没有 typecheck;也没有 eslint、没有单测、没有截图回归。结论:agent 目前唯一可用的自证手段是类型检查,而且没人把它接进回路里。

这三条在 Cocos 2.4 里也能全部治(见 §5 路线 A),所以"要不要换栈"其实是投入产出比问题,不是能力有无问题。


2. 判据:什么才算"能被 agent 全面编程"(7 条,按权重排序)

#判据为什么现状(2.4)Phaser4Cocos3.8+MCPLaya3Godot4Unity+小游戏
C1场景/界面有纯文本真源(代码或可手写 DSL,无不可读 ID)agent 只能可靠编辑文本❌ 89% 在 prefab JSON✅⚠️ 文本但含 uuid⚠️ .ls 是 JSON,IDE 产出✅ .tscn 可 diff⚠️ YAML+guid
C2不打开 GUI 就能构建出可运行包(CLI 退出码可信)决定能否无人值守/CI❌ D3✅ vite build✅ 官方 CLI❌ IDE 发布✅ headless export❌ 转换工具 GUI
C3能无头跑起来并截图(agent 自证"真的画对了")否则只能靠人眼验收⚠️ web 构建+Chrome(D4)✅ Chrome/Puppeteer⚠️ 同左✅✅⚠️
C4类型/静态检查可当门禁(TS strict、lint 能抓错)agent 的第一道回路⚠️ typecheck 实测 0 错误但未进 CI、无 eslint✅✅✅❌ GDScript 弱✅ C#
C5LLM 语料密度(npm 周下载、star、文档站稳定度)决定幻觉率中(中文语料多但 2.x API 已老化)极高:phaser 545,951/周、40,410★高中:2,204★中高
C6一次可并行多改(多子代理同时改不同面板不冲突)决定产能上限❌ 二进制化 JSON 必冲突✅ 按文件天然分片❌ 编辑器单实例、MCP 串行⚠️✅❌
C7平台 SDK 差异被隔离在单层内(wx/tt/qq/ks 与广告/支付/开放数据域)换栈不重复踩坑⚠️ 散落⚠️ 需自建✅ 官方导出层✅⚠️⚠️

两种 agent 工作模式,必须先选一个:

  • Mode A|文本真源直改(对应 C1+C2+C3+C6):agent 写 .ts/.tscn/DSL → CLI 构建 → 无头截图 → 断言。特点:可无人值守、可并行、可回归,代价是所有场景必须文本化。
  • Mode B|MCP 驱动编辑器(Cocos Funplay / unity-mcp / godot-mcp):agent 调工具在编辑器里建节点、挂组件、存 prefab。特点:存量工程零重写,但要求编辑器进程开着(HTTP 服务 127.0.0.1:8765 跑在编辑器内)、单实例串行、产出仍是二进制化 JSON(diff 噪声大、难以 code review)。
  • 结论性判断:Mode A 是产能上限更高的那个;Mode B 只是"不想重写"的补偿手段。你现在的痛苦本质是 Mode A 不成立,而 Mode B 也没有(2.4 无 MCP)。

3. 候选栈逐条说明(只写会影响决策的部分)

Phaser 4(MIT,v4.2.1,2026-07-09;40,410★,npm 545,951 次/周)

  • agent 友好度最高的现实选择:场景=Scene 类里的代码,UI=自写布局函数;没有编辑器、没有 uuid,tsc --noEmit + vite build + Puppeteer 截图三件套全部命令行可得。
  • 微信小游戏已被验证:2026-08 有开发者做出 "Phaser4 in 微信小游戏 最小可行性验证",用自写 weapp-adapter.js(不依赖第三方库),需 patch 的点:npm 包导出方式、document/window polyfill、XMLHttpRequest、真实 WebGL 上下文;作者结论"无需降级"。
  • 风险:① Phaser 没有成套 UI 框架(按钮/滚动列表/输入框/富文本要么用社区 RexUI,要么自建)——而你的游戏是 47 个面板、384 Label、138 Button、9 ScrollView、1 EditBox 的重 UI 结构,这块是自付成本;② Spine 运行时(你有 141 个 sp.Skeleton 包装)在 Phaser 侧要走官方 spine-ts 运行时,资源可复用但要重接;③ 音频/字体/热更/分包策略全部自己实现——你现在这层是 Cocos 内置的远程资源 + 手工后处理脚本(settings/wechatgame.json:5、tools/post-build-wechat-subpackage.sh),换栈要整体重建。

Cocos Creator 3.8.x + MCP(升级路线)

  • agent 通道确实存在:Funplay MCP for Cocos(Cocos 商店 #8913)面向 3.8+,本质是嵌在编辑器里的 HTTP 服务(http://127.0.0.1:8765),让 AI 在 scene/editor 上下文执行 JS,提供 105 个工具管理 node/prefab/component,并有路径穿越等安全检查、限制在当前工程根目录。安装=把扩展放进工程 extensions/ 或编辑器菜单 "Funplay > MCP Settings"。商店里还有 #9469 "Cocos Creator AI MCP 助手"、#8586 "Cocos Agent"(页面 JS 渲染,本文未能读到功能详情,见 D2)。
  • 小游戏侧最省事:官方发布链路 + 官方分包/远程资源/开放数据域支持;平台广度是所有候选里最广的(微信/抖音/QQ/快手/支付宝/B站/H5/原生 App)。
  • 代价:.scene/.prefab 仍是 uuid 引用的 JSON,agent 直改文本依然危险(要靠 MCP);MCP = 人在场、单实例、不可并行;extensions/ 目前不存在于本工程,需新建。
  • 2.4.15 → 3.8 的迁移成本必须先量:2.x 的 .fire/.prefab 与 3.x 格式不兼容,cc.* 全局 API → import from 'cc'、组件生命周期与渲染管线全变。官方 2.x→3.x prefab 迁移工具现状 = D1(这条直接决定该路线是否可行;不要在没有结论前投入)。

LayaAir 3(引擎 MIT,2,204★,最近推送 2026-09-24)

  • 引擎源码开源、.ls 场景是 JSON 文本、可纯代码建场景;官方微信小游戏文档齐(adapter 为 weapp-adapter.js,分包在 IDE 里勾选)。
  • 卡点:IDE 闭源,发布流程设计为在 IDE 里点,因此 C2/C6(CLI 构建、并行)弱;社区体量与 LLM 语料明显小于 Phaser;2D 重 UI 生态一般。
  • 只有在要做 3D 或需要 Laya 的特定能力时才值得比。

Eva.js(阿里淘系互动引擎,MIT,1,782★,最近推送 2026-07-10)

  • 真 ECS + 纯代码/JSON 场景,无编辑器依赖,agent 友好度结构上很好;双 11 级互动场景背书。
  • 卡点:定位是淘宝/支付宝互动,微信小游戏侧适配与生态证据薄;社区小 → LLM 对其 API 熟悉度低(这是我的判断,不是实测),生成代码幻觉率会高于 Phaser;文档/示例中文为主但更新偏慢。
  • 若你未来主要投淘宝/支付宝小游戏,它的优先级要重排。

Godot 4(+ 社区小游戏适配)

  • Godot 场景文件 .tscn / 脚本 .gd 都是纯文本,是**唯一"编辑器型但 Mode A 完全成立"**的传统引擎(且 godot-mcp 生态也很热:最高 5,950★)。
  • 但小游戏是硬墙:官方 Web 导出是 WASM+线程模型,微信小游戏不支持;现仅有社区工具把 Godot 4.6.4 的 Web 导出改造到微信/抖音小游戏,MIT、9★、总包 ≈20MB、仅 WebGL2、不支持 EH。为"尽可能多平台"的目标选它=把上线风险押在一个人的仓库上。结论:排除。

Unity / 团结引擎(WebGL → 小游戏转换)

  • 反差最大的一格:编辑器 MCP 生态最成熟(CoplayDev/unity-mcp 14,710★,最近推送 2026-10-06,能管资源、控场景、改脚本、自动化任务;另有 unity-cli 315★、AnkleBreaker 268 工具的 UPM 插件)。
  • 但小游戏侧的约束正好打在你的游戏类型上:官方转换链路必须跑编辑器里的转换工具(C2 不成立),内存/字体(<3MB)/纹理限制明确,文档自己就指出 2D 重 UI 游戏面临字体/纹理限制;个人主体虽可免版号发行,但要吃 Unity License + 转换包体优化一整摊事。结论:为 agent 产能选 Unity 是本末倒置,排除。

已停更,别碰(避免被旧教程误导)

  • Egret/白鹭:2022 年 2 月停止维护;微信官方引擎适配页仍写着 Cocos/Laya/Egret,是历史文档,不要据此选型。
  • cocos2d-x v2/v3、Hilo(2016 后停更)、CreateJS、EaselJS:同上,教程多、活着少。

4. 平台侧硬约束(换栈不会帮你绕过,选型时要一起算)

  • 包体:主包 4MB;所有包合计 ≤30MB;普通分包无单独上限,独立分包 ≤4MB;入口 game.js,代码与资源同包(微信官方分包文档)。→ 你现在靠 REMOTE_SERVER_ROOT https://dd.qthy.cc 远程资源(settings/wechatgame.json)+ tools/post-build-wechat-subpackage.sh 拆 subpackages/battle|common,这套策略与引擎无关,换栈要重建(Phaser 侧=自己写 vite 插件产出分包结构)。
  • 适配层:小游戏无 DOM/BOM,weapp-adapter 模拟 document/window/canvas/localStorage;非 Cocos/Laya/Egret 的通用 H5 引擎都走这条路(微信官方引擎适配页)。已验证到 Phaser 4 可行(§3)。
  • 开放数据域(好友排行榜等):是独立的 openDataContext/index.js 上下文,不能与主包共享引擎实例——你已经在 build-templates/wechatgame/openDataContext/index.js 趟过了,换栈时这块必然重写,且 agent 只能靠真机验证(D5)。
  • 多平台(抖音/QQ/快手/支付宝/B站):API 高度同源,但广告/支付/实名 SDK 各端不同。
    • Cocos/Laya:官方导出面板直接给多端,这是它们对"尽可能多平台"的真实优势。
    • Phaser/自研:要自己维护一个 platform 抽象层 + 各端 adapter(我的估计:单端 1-3 人日,含真机调试;不是官方承诺)。
  • 审核/版号:与引擎无关,任何栈都要走软著/版号或"个人主体免版号"路径。

5. 三条路线与代价(估时为我的估计,需你按团队实际校准 = D6)

路线 A|留在 2.4.15,把"文本真源 + 自检回路"补起来 —— 推荐起点

0 重写风险,2 周内让 agent 产能翻倍量级。四步,每步都有验收判据:

步做什么验收判据(必须实测,不看文档)
A1把已有但没接线的门禁接上:package.json 的 typecheck(实测 0 错误)进 CI;补 eslint;CI 里加一条"故意坏样本"阳性对照故意写坏一个 .ts,CI 必须红;恢复后必须绿
A2UI 声明式布局层:定义 LayoutNode = {type, name, children, ...},运行时用 new cc.Node/addComponent 构建(沿用 ProbDisclosure.ts:87,114,131,141、UIBattle.ts:582,1120,1126 已有写法);新面板一律不建 prefab新面板的真源只有 .ts;agent 能在无编辑器条件下改出一个完整弹窗
A3Spine 真源瘦身:155 个 spine 包装 prefab(50,227 行)→ 一次 sp.Skeleton 初始化函数 + 一张"英雄/怪/技能/子弹 → sku 名 + 默认皮肤"表(进你现有 config_tables.xlsx 管线)删除这 155 个 prefab 后,战斗/主页动画逐项过;git ls-files 里 prefab 数从 214 → 59
A4构建/预览脚本化 + 无头截图:产出 web 包,用 Puppeteer 打开并截 5 个主面板;(2.4 CLI 构建现状见 D3)一条命令从源码到截图,退出码可信;截图能进 review

A2/A3 做完的实际效果:198,883 + 50,227 行的 JSON 里,真正需要人/agent 读的部分变成 ~1 万行 .ts,agent 从"改不动"变成"主力劳动力"。

路线 B|升 Cocos Creator 3.8.x + Funplay MCP(Mode B)

  • 收益:agent 能直接操作存量 scene/prefab;多平台官方导出;分包/远程资源现成。
  • 前置:D1(2.x prefab 能否自动迁移)必须先有结论,否则等于用 47 个面板 + 155 个 spine 包装的重做量去换一条 MCP 通道。
  • 上线代价:MCP 要求编辑器 GUI 在场、单实例,agent 不能并行,产出仍是 uuid JSON,review 困难;扩展装进 extensions/(本工程目前没有 extensions/,只有 packages/ 下三个 ai-* 扩展:ai-asset-pipeline / ai-asset-studio / ai-game-audio-forge,它们是否仍可用也要确认 = D7)。

路线 C|Phaser 4 + TS + Vite(Mode A 满分,新项目/v2 才做)

  • 收益:C1-C7 全绿;场景/界面/战斗逻辑全部文本真源;agent 可并行分片、可无人值守跑构建与截图回归;LLM 语料最厚(545,951 次/周)→ 幻觉率低。
  • 你要自付的清单(按你的实际内容量列):UI 组件层(47 面板 / 384 Label / 138 Button / 9 ScrollView / 1 EditBox)、Spine 接入(141 个骨架)、weapp-adapter(4 类 patch:npm 导出 / document+window / XHR / WebGL 上下文)、分包与远程资源、热更、开放数据域、各端 SDK、音频与字体子集化。
  • 明确不建议:为了 agent 产能把现有工程整体重写。§1 的数据说明产能瓶颈在"真源不是文本",这在路线 A 里就能解决。

6. 待确认清单(请你点选/答复;未答复我按括号内默认值自决)

#问题默认值(你不答时我这么做)
D1是否有渠道验证 Cocos 2.4.15 prefab → 3.8 的迁移工具实际效果(尤其 47 个 UI 面板)?按"无法自动迁移、需全量重做"评估,路线 B 判负
D2是否允许试用 Cocos 商店的 Funplay MCP / #9469 / #8586(均需编辑器 GUI、部分可能收费)?不试用,路线 B 不启动
D3本机是否已有 Cocos Creator 2.4 编辑器可执行文件,能试 --project/--build 命令行构建?假定不可用,A4 退化为"agent 只改源、人点构建"
D4web 平台构建能否在纯 Chrome(无小游戏环境)跑通全部逻辑(有无 wx.* 硬依赖)?假定有依赖,A4 里加一层 wx mock
D5是否有真机可用以验证开放数据域/广告/支付?把这些验收标为"仅人工,不进 agent 回路"
D6路线 A 的四步估时(我按 0.5/1.5/1/1 周估)与你的排期是否冲突?按我的估时排
D7packages/ 下三个 ai-* 扩展(2.4 面板式)现在还在用吗?能不能承担素材管线自动化?视为在用,A 阶段不动它们
D8是否真的需要 3D/多端中的"原生 App"?(会改变 B 与 C 的分值)只按"微信 + 尽可能多多端小游戏"算
D9Phaser 路线要不要做(作为 v2 或另一个小项目立项)?只做技术预研 spike(1 个面板 + 1 个战斗场景),不立项
D10docs/build-and-hotupdate-guide.md:60,113 的"目标平台未定/包体上限未定"口径要不要按现状(已配 wechatgame + 主包 4M/总包 30M)改写?不改别人文档,只在本次选型里按实测口径走

附录 A:本机实测命令与数字(2026-10-06)

# 引擎版本:project.json:4 -> "version":"2.4.15"
find assets -name '*.prefab' -printf '%h\n' | sort | uniq -c | sort -rn   # 214 个,spine 目录占 155
grep -rhoE '"__type__": ?"[A-Za-z][A-Za-z.]*"' assets --include=*.prefab | sed -E 's/.*"([A-Za-z][A-Za-z.]*)"$/\1/' | sort | uniq -c | sort -rn
# -> cc.Color 3636 / cc.Size 2093 / cc.Node 2093 / cc.PrefabInfo 2093 / cc.Sprite 851 / cc.Label 384
# -> cc.Widget 240 / cc.Prefab 214 / cc.ClickEvent 169 / sp.Skeleton 141 / cc.Button 138 / cc.ProgressBar 65
grep -rlE '"__type__": ?"(cc\.Button|cc\.ClickEvent|cc\.Widget|cc\.Label|cc\.ScrollView|cc\.Toggle)"' assets --include=*.prefab | wc -l  # 47
find assets -name '*.prefab' -exec cat {} + | wc -l       # 249238 行
find assets -name '*.prefab' -not -path '*spine*' -exec cat {} + | wc -l   # 198883 行(58 个)
find assets/scripts -name '*.ts' | wc -l ; find assets/scripts -name '*.ts' -exec cat {} + | wc -l  # 110 / 30924
for p in 'new cc.Node' 'addComponent' 'cc.instantiate'; do printf '%s ' "$p"; grep -roh -- "$p" assets/scripts --include=*.ts | wc -l; done   # 40 / 46 / 36(按出现次数,不是行数)→ 代码建 UI 已有大量先例
npm run typecheck; echo "exit=$?"      # 实测 exit=0、0 条错误(typescript 5.9.3 在 node_modules 里)
git log --oneline | wc -l; git status --porcelain | wc -l   # 11 / 104(工程已是 git 仓库,且有在途改动)

关键文件:project.json:4(2.4.15)、tsconfig.json:5-6(target es5、无 strict)、settings/wechatgame.json:2,5,7(appid wx9632ab7f64e42bf0 / REMOTE_SERVER_ROOT https://dd.qthy.cc / startSceneAssetBundle true)、build-templates/wechatgame/{game.json,main.js,project.config.json,openDataContext/index.js}、分包后处理 tools/post-build-wechat-subpackage.sh:27,43-48,54(搬到 subpackages/{name}/,脚本结尾仍要求"用微信开发者工具重新编译验证"= 人在场)、配置解包 export_config.py:29,32,94-96 → config_export/*.json、产物 assets/resources/dataconfig/allconfig.bin(695,761 B,实测 27 条目)、代码建 UI 先例 assets/scripts/ui/commonTip/ProbDisclosure.ts:87,114,131,141、assets/scripts/ui/UIBattle.ts:582,1120,1126。

纠偏(重要):export_config.py 的 shutil.rmtree() 删 xlsx 唯一源是旧缺陷,现已修复——代码里 rmtree 只出现在变更记录注释 :8 与 :14-15 的修复说明中,活代码走"备份上一版 json 到 config_export/_prev_json_<ts>/ + extractall 不删其它文件"(:39,92-96)。今后任何文档/记忆再引用"会永久删 xlsx"这条,属于旧口径。 同类过期口径(2026-10-06 实测已推翻 2026-10-05 审查基线中的两条):① "无 node_modules、npm run typecheck 跑不起来" —— 现在 node_modules 里有 typescript 5.9.3,npm run typecheck 退出码 0、0 条错误;② "工程不是 git 仓库" —— shuihu-master/.git 存在,git log 11 条提交,当前工作区有 104 项改动/未跟踪(=有在途工作,本次调研全程只读、不提交)。 另一处不一致(本文不改别人文档,仅登记):① shuihu-master/docs/README.md:4,12,152 写 "Cocos Creator 2.4.13",实测 project.json:4 为 2.4.15;② shuihu-master/docs/build-and-hotupdate-guide.md:60,113 仍写"目标发行平台未定(待办 1.6)、包体上限未定(待办 1.8)",而 settings/wechatgame.json 已配好小游戏 appid —— 见 D10。

附录 B:外部事实来源


第 2 篇 · 新项目 · Agent 优先技术栈全清单(主目标:微信小游戏)

原文件:docs/agent-first-stacks-new-project-2026-10.md(已并入本篇)

新项目 · Agent 优先技术栈全清单(主目标:微信小游戏)

版本 v2(只看新项目) | 2026-10-06 | 上一代:agent-tech-stack-review-2026-10.md(那份管"存量 Cocos 2.4.15 工程怎么办",本文管"从零立项选什么")

2026-10-06 第三次追加(重要更正):后续实测把本文三处口径改掉了——① COCOS 4 已于 2025-12-30 公布、彻底 MIT 开源、官方按"MCP/Agent 交付逻辑"重做并 CLI 化,但小游戏各端适配官方明说"分阶段解锁";② Cocos 3.8 的"命令行发布项目"要求图形会话(文档原文),只给 macOS/Windows 范例,Linux 无官方支持;③ Cocos/Laya 的官方渠道里没有 QQ 小游戏、快手小游戏、Bilibili、小米(Cocos 侧),所以"多端一次导出"必然有缺口。详见第三版 agent-plus-multiplatform-stacks-2026-10.md(决策编号 D25 起)。 阅读门槛:本文默认你已经接受 Mode A 工作流=真源全是文本 → 命令行构建 → 无头自证 → CI 出预览。凡 Mode A 不成立的栈,一律不进推荐位(只进"可选/排除"表并注明原因)。 标注规则:[实测] = 我这次亲自拉取并核对;[代理查证] = 调研子代理取证、我未逐条复测(URL 都在附录);[估] = 我的估计,不是官方承诺。决策编号从 D11 起,与上一代 D1–D10 不冲突。


0. 速查(先看这一屏)

一句话:新项目要"agent 全面编程",最优解不是找一个"支持 AI 的引擎",而是找一个真源全是文本、且能在无 GUI 环境下自证的组合。下表按品类给首选位,§3 再展开 3 套可直接开工的配方(含依赖清单与 agent 回路命令)。 默认栈:TypeScript + Vite + PixiJS 8(重 UI)/ Phaser 4(重玩法)+ 纯 JS 物理 + LDtk 文本关卡 + Aseprite CLI 序列帧 + 自维护 weapp-adapter + miniprogram-ci 出预览。

场景首选栈为什么是它次选
重 UI 的 2D(塔防/卡牌/放置/模拟经营)PixiJS 8.22.0 + @pixi/ui 2.4.1 [实测]唯一"渲染层现成 + UI 控件库官方在维护 + 全 MIT + 内置 TS 类型"的组合;界面全部是 .tsPhaser 4 + 自建控件层
重玩法的 2D(动作/弹幕/射击/物理解谜)Phaser 4.2.1 [实测]LLM 语料最厚(npm 545,951/周、40,410★);场景=代码;已有"Phaser4 跑通微信小游戏"的可行性验证PixiJS + 自研玩法层
超休闲 / 一周 demokaplay 或 自研 Canvas2D + TS真源最少、心智负担最低(kaplay 1,809★、2026-10-04 仍在推)[实测]Excalibur、LittleJS
3D / 2.5Dthree.js r186(自维护 adapter) 或 Babylon 9.29.0两者都能纯代码建场景;three 语料碾压(24,326,206/周 [实测]),Babylon 内置 TS 类型 + Apache-2.0 [代理查证]PlayCanvas(若接受云编辑器)
必须"多端一次导出"(微信+抖音+QQ+快手+支付宝+H5+原生)Cocos Creator 3.8.x(代码优先用法)+ Funplay MCP 兜底官方导出链路覆盖最广,平台 SDK 差异由引擎吃掉LayaAir 3

任何一条不满足就别选(硬门槛):① 场景/界面有纯文本真源;② 不开 GUI 能构建出包;③ 能无头跑起来并截图断言;④ 依赖是 MIT/Apache 且可商用;⑤ 资产(动画/地图/音效)的真源也能文本编辑(§4)。


1. 判据(C1–C10,比上一代多 3 条)

#判据新项目里的具体含义
C1场景/界面无不可读 ID 的文本真源没有 .prefab/.fire/.unity 这类 uuid 互引;界面是 .ts/.tsx-like DSL 或可读 JSON
C2无 GUI 构建vite build / 引擎 CLI 返回可信退出码;不要求开编辑器
C3无头自证同一份代码能在 Chromium(WebGL)里跑,截图 → 像素/节点断言
C4静态门禁TS strict + eslint;agent 第一道回路(no-restricted-globals 禁直连 wx.*,见 §6)
C5LLM 语料密度npm 周下载 + star + 文档站稳定度;有学术证据:web game 智能体编码基准里 Phaser 被选作目标引擎(OpenGame, arXiv 2604.18394 [代理查证])
C6可并行分片多个子代理同时改不同面板/关卡不打架(按文件天然分片)
C7平台 SDK 差异被单层隔离platform/ 目录内吸收 wx/tt/qq/ks 差异
C8资产真源可文本编辑(新)动画/地图/图集/音效的工程文件要么是文本、要么只"单向消费";见 §4 的可编辑性排序
C9发布/验证回路可 CLI 化(新)miniprogram-ci 能无开发者工具出预览二维码与上传体验版 [代理查证](我实测周下载 21,609 [实测]);但小游戏用不了 miniprogram-automator(0.12.1,2023-11-06 后未更新 [实测])→ 验收只能"无头浏览器自证 + 真机人工"
C10依赖许可可商用、无 GPL 传染(新)pixi.js/@pixi/ui/phaser/kaplay/planck/LDtk 全 MIT [实测/代理查证];Tiled 是 GPL(工具 GPL 不传染你的地图数据,但要知道);Spine/Rive/Live2D 编辑器为付费闭源

给预期:GameDevBench(arXiv 2602.11103 [代理查证])报告智能体在 2D 游戏任务上解题率约 33%。也就是说 agent 不是全自动流水线,上面 C1–C10 的全部意义就是把"剩下 67% 的失败"变成机器能当场发现的失败。


2. 候选栈全景(6 组,尽量铺满)

A. 代码优先 2D 引擎(Mode A 天生满分)

栈版本/许可/热度 [实测除非标注]agent 场景能力小游戏路径主要风险
Phaser 44.2.1(2026-07-09)/MIT/40,410★/545,951 次/周★★★★★ 场景=Scene 代码官方 Adapter + 自写 weapp-adapter.js(已有人跑通)无成套 UI 控件(RexUI 对 v4 的兼容=D18);v4 相对 v3 教程/语料迁移期
PixiJS 8 + @pixi/uipixi.js 8.22.0 MIT 1,502,200/周;@pixi/ui 2.4.1 MIT 21,482/周,peer pixi.js ^8.6.2,只依赖 tweedle.js★★★★★ 界面=组件树代码Adapter + WebGL 渲染器(v8 默认探 WebGPU,小游戏里需强制 WebGL=D19)玩法层(场景管理/输入/补间/物理)要自己或第三方拼
kaplay(Kaboom 后继)MIT/1,809★/2026-10-04 仍在推/9,593/周★★★★★ 声明式 API,代码量极小纯 JS/TS,走 Adapter社区小,重 UI 控件基本靠自建
Excalibur.jsMIT/14,986/周(版本未复核 [代理查证])★★★★★同上语料薄于 Phaser/Pixi
melonJS未核实:melon.js 包名在 npm 404,melonjs 未取到版本号★★★★☆未知证据不足,暂不推荐
LittleJS宣称 12KB 单文件(未核实)★★★★★未知文档薄,agent 语料更少
Eva.js(阿里淘系)MIT/1,782★/2026-07-10★★★★☆ ECS+JSON 场景,无编辑器面向淘宝/支付宝互动为主,微信侧证据薄社区与语料小,跨端要自证

B. 引擎型,但可被约束成"代码优先"

栈事实agent 能力备注
Cocos Creator 3.8.xcocos/cocos-engine 9,846★/2026-09-21/License 非标准 SPDX [实测]★★★★☆(代码建节点 + CLI 构建;MCP 让 agent 能读写 scene/prefab)新项目纪律:界面一律代码/JSON 建,不许往编辑器里拖 prefab,否则退化成 Mode B。Funplay MCP = 3.8+、105 工具、编辑器内 HTTP 127.0.0.1:8765(上一代文档已引)
LayaAir 3layabox/LayaAir 2,204★/MIT/2026-09-24 [实测];IDE 闭源★★★☆☆ 引擎可纯代码,发布依赖 IDE多端官方导出是真优势;3D 需求时再排前
Godot 4.tscn/.gd 纯文本、godot-mcp 生态 5,950★ [代理查证]★★★★☆(脱离小游戏满分)小游戏是硬墙:官方 Web 导出为 WASM+线程;社区适配 9★/≈20MB/仅 WebGL2 → 新项目主投小游戏则排除
PlayCanvas引擎 16,986★ MIT 2026-10-05;npm playcanvas 2.23.0 内置 d.ts 103,124/周;编辑器仓库亦 MIT [代理查证]★★★★☆(可纯代码用引擎)官方手册仍以云编辑器为主流程,能否完全离线发布未证 → 只有你接受"引擎当库用"才选

C. 3D / 2.5D

栈事实小游戏可行性建议
three.jsr186(2026-09-24)、three 0.186.1 MIT、包内不含类型(社区 @types/three 0.186.0)、24,326,206/周 [实测]官方适配仓库 wechat-miniprogram/threejs-miniprogram 799★、末次推送 2023-05-22、基于 r108 [实测] → 必须自己把 adapter 打到新版首选;语料碾压,且 glTF 资产是文本(§4)
Babylon.js9.29.0(2026-10-01)、@babylonjs/core Apache-2.0 + 内置 TS 类型、434,846/周;Inspector 自称"诊断工具"、官方 Editor 仓库 community-managed → 纯代码建场景成立 [代理查证]未找到官方/社区小游戏适配文档(只有 2020 踩坑帖)→ 风险最高想要"引擎自带全套(材质/动画/物理/后处理)"再选;spike 先行(D20)
A-Frame / WebXR 类面向 WebXR,非小游戏场景无依据排除

D. 无引擎 / 官方轻量件(agent 自由度最高,但要自己搭)

  • 纯 wx.createCanvas + 自研渲染/ECS + TypeScript:真源 100% 自己的代码,agent 无第三方 API 幻觉问题;代价是渲染器、图集、字体、补间、音频、调试面板全自研。适合超休闲或你想长期沉淀自有引擎(估 首版投入 3–6 人周)。
  • wechat-miniprogram/minigame-canvas-engine [实测:312★/MIT/2026-09-10 仍在推]:官方"轻量 canvas 2D 渲染引擎 + 开放数据域解决方案",用**组件树 + style 子集(纯文本配置)**描述 UI。→ 它是"排行榜/好友面板"这类开放数据域 UI 的最佳 agent 友好载体(那里你本来就不能跑主引擎),也可当作轻量 UI 层的参考实现。

E. 支撑库(新项目要用,且必须"纯 JS、无 WASM")

用途选它事实
物理/碰撞planck 1.5.0(内置类型)[实测下载量 217,176/周];备选 matter-js 0.20.0(MIT,2024-06-23,377,587/周)、cannon-es 0.20.0(内置 d.ts,158,451/周,但仓库末次提交 2024-01=维护弱)[代理查证]都是纯 JS,小游戏可用
物理(排除)rapier(WASM)@dimforge/rapier3d 0.21.0 [代理查证];而 WXWebAssembly 只有 instantiate(path)、path 必须指向代码包内 .wasm/.wasm.br、基础库 2.13.0+、SIMD 需微信 8.0.25+、iOS 不支持 Global [代理查证] → 别把上线赌在这上面
关卡/地图LDtk 1.5.3(.ldtk 即 JSON,schema 公开,MIT,2026-01);Tiled 1.12.2(TMX=XML,另有官方 JSON 格式与 CSV 图层数据,GPL,2026-05-27,有导出 CLI)[代理查证]两者 agent 都能直接生成/改
序列帧/图集Aseprite CLI v1.3.18.6(--batch --sheet --data 出 PNG+JSON);TexturePacker(CLI 存在,CI/Docker 需 Pro)[代理查证].ase 是二进制 → 只当输入,产物 JSON 才进 agent 可改面
音效ZzFX/ZzFXM(MIT,约 20 个数字参数=完全文本真源)[代理查证];播放层 Howler.js / Tone.js;小游戏有 wx.createWebAudioContext [代理查证]最终仍要烘焙成官方建议的 mp3/aac
构建/测试Vite + esbuild + TypeScript(strict) + Vitest + Playwright/Puppeteer(Chromium WebGL)全命令行,退出码可信,agent 闭环的地基

F. 新项目也别碰(理由各一句)

Egret(2022-02 停维护)· cocos2d-x v2/v3、Hilo(2016 后停更)、CreateJS/EaselJS · Defold/LibreFX 等需自编 WASM 的桌面系 · Godot 主投小游戏(社区适配 9★)· Unity/团结为 agent 产能而上(转换链路必须 GUI,且官方 QA 自陈 2D 重 UI 面临字体/纹理限制;团结小游戏文档自陈 WASM 单线程、无 SIMD、iOS 内存受限 [代理查证])· Spine/Rive/Live2D 工程文件当"agent 可改真源"(全是二进制或闭源 GUI)。


3. 三套可直接开工的配方(含 agent 回路)

配方①「重 UI 2D」——塔防/卡牌/放置/经营(对应你这类项目的默认解)

core:   Vite + TypeScript(strict) + PixiJS 8.22.0 + @pixi/ui 2.4.1(MIT)
逻辑:   自研 Entity-Component(或 miniplex,纯 TS)
关卡:   LDtk(.ldtk=JSON) → 编译进 src/levels/*.ldtk(agent 直接写)
动画:   Aseprite CLI 出 PNG+JSON 图集;程序化补间用 tweedle.js
音频:   ZzFX 参数数组(.ts) → 构建期烘焙 mp3/aac
平台:   src/platform/{wx,tt,qq,ks}.ts + eslint 禁业务层直连 wx.*
小游戏: 自维护 weapp-adapter.js(patch: document/window、XHR、Image、canvas 创建、WebGL 上下文)
回路:   tsc --noEmit → eslint → vitest → playwright 截图断言 → vite build --mode wxgame → miniprogram-ci preview
  • agent 干得了:整块界面、组件树、关卡 JSON、数值表、单测、素材命名对齐(因为全是文本)。
  • 人必须干:真机手感、审核、开放数据域联调、性能(iOS 内存)。
  • 里程碑 估:第 1 周把回路跑通(能构建+截图+出预览码);第 2–3 周把 5 个核心面板与 1 个战斗场景做完;第 4 周起 agent 可并行铺量。

配方②「重玩法 2D」——动作/弹幕/射击/物理解谜

core:   Vite + TypeScript(strict) + Phaser 4.2.1
物理:   planck 1.5.0 或 matter-js(Phaser 自带的 matter 版本较旧,需确认)
地图:   Tiled(TMX/XML 或 JSON,agent 可写;有导出 CLI)
UI:     自建控件层(按钮/列表/九宫格),或 RexUI(兼容性=D18)
回路:   同配方①
  • 为什么语料密度在这里最关键:玩法代码量大、API 面广,LLM 对 Phaser 的熟悉度是所有 JS 引擎里最高的(40,410★/545,951 次/周 [实测],且学术基准 OpenGame 直接选它作目标引擎 [代理查证])。

配方③「多端一次导出」——上线窗口紧、渠道多、老板要"微信+抖音+快手+支付宝+H5+App"

core:   Cocos Creator 3.8.x + TypeScript,但强制"代码优先"纪律:
        - 界面/战场节点一律 new Node()/addComponent 建(禁止 prefab 拖拽,
          或只允许" prefab 当纯资源壳、真源字段全在 .ts")
        - 关卡与数值走 JSON(沿用你已验证的 allconfig 式管线,但真源用 CSV/JSON 而非 xlsx)
兜底:   Funplay MCP(3.8+,105 工具)→ 仅用于"必须动存量 scene/prefab"的偶发场景
回路:   引擎 CLI 构建 → 无头浏览器/web 包截图 → miniprogram-ci preview/upload(各端各自的 CLI:微信 miniprogram-ci、抖音 tt-minigame-ide-cli)
  • 代价:C2/C6 弱于①②(编辑器在场、二进制化 JSON 的 diff 噪声),agent 产能天花板低于 Mode A。
  • 收益:平台 SDK、分包、远程资源、开放数据域这些"脏活"由官方吃掉;你要做的不是引擎而是纪律。

4. 资产管线:新项目最容易踩、也最致命的一坑(C8)

可编辑性排序(结论):

可 agent 直接读写  ▸  LDtk(.ldtk=JSON) ≈ Tiled(TMX/XML 或 JSON) ≈ .gltf(JSON) ≈
                      序列帧 PNG + 图集 JSON(Aseprite/TexturePacker 产物) ≈
                      ZzFX/jsfxr 参数数组 ≈ Live2D 的 .model3/.motion3/.physics3.json
只可"单向消费"     ▸  Spine 导出的 skeleton JSON(官方有格式文档,可读、可脚本生成,
                      但官方论坛明确:靠数据文件重建工程风险极大;.spine 是专有二进制)
                      DragonBones 导出 JSON(编辑器近乎停更,PRO 仓库 404,社区续作 LoongBones)
agent 完全改不动   ▸  Rive .riv(二进制+闭源编辑器)· Aseprite .ase · Spine .spine ·
                      Live2D .cmo3/.can3/.moc3 · .glb(二进制;且 Draco/Meshopt 压缩后
                      几何连结构层都不能靠文本改)

三条立项规则:

  1. 动画方案按"agent 能不能改"选:默认走序列帧 + JSON 图集 + 程序化补间(完全文本);骨骼动画只在确实需要时用 Spine,并把它的 skeleton JSON 当只读输入(美术在 Spine 里改,agent 只消费与装配),绝不让 agent 去写 .spine。
  2. 数值/关卡真源用 CSV/JSON,不用 xlsx:xlsx 是二进制(实测 你现在 config_tables.xlsx → allconfig.bin 的管线里,xlsx 与 json 已出现 10/191/924/13927 行漂移的历史教训);新项目把表拆成 CSV/JSON 进 git,构建期编译成运行时格式,agent 才能安全改数值。
  3. 3D 用 .gltf 不用 .glb(进版本库的那一份);压缩(Draco/Meshopt)只在构建产物阶段施加,别把压缩版当源。

5. 验证与发布回路(C9:决定能不能"无人值守")

环节能做什么事实与坑
构建vite build → dist/ + 小游戏包结构(game.js/game.json)全命令行,退出码可信;分包/远程资源要自建插件产出 subpackages/*
无头自证Playwright/Puppeteer 打开 web 构建,取 canvas 截图、跑 DOM-less 断言这是 agent 的主力验收;小游戏专属 API 用 wx mock;WebGPU 需回退 WebGL(D19)
出预览miniprogram-ci:preview 生成二维码、upload 传体验版,无需安装/打开开发者工具,需"代码上传密钥 + IP 白名单"2.1.31(2024-11-12)[代理查证],周下载 21,609 [实测];文档在小游戏树下
自动化操作真机模拟器miniprogram-automator⚠️ 官方文档只声明支持"小程序";小游戏树下的 auto 页复用的是小程序 API(pageStack/navigateTo 在小游戏不存在);0.12.1 且发布于 2023-11-06 [实测] → 不要把验收押它上面,除非 D17 spike 证明可用
开发者工具 CLIopen/preview/upload/auto、--auto-port,需在工具里开启服务端口只有 macOS(Contents/MacOS/cli) 与 Windows(cli.bat),文档无 Linux [代理查证] → CI 别设计"自动开工具";无 GUI 容器跑小游戏无官方依据
抖音侧官方 npm tt-minigame-ide-cli(bin tmg:login/preview/upload)2.1.1,周下载仅 258 [代理查证];未找到官方自动化 SDK;tt/wx 差异无官方对照表(D21)
包体红线主包 4MB/总包 ≤30MB/独立分包 ≤4MB [实测·官方文档]与引擎无关;远程资源/CMS 素材从第一天就设计进去

推荐的 agent 门禁顺序(每一步失败都要响亮,不许静默): tsc --noEmit → eslint(含"业务层禁直连 wx"规则)→ vitest run → playwright 截图 + 像素断言 → vite build → miniprogram-ci preview(人扫码)。


6. 多平台策略("尽可能多平台"的真实代价)

目标端引擎/官方支持代码优先栈(Phaser/Pixi/three)要做的
微信小游戏全栈可行自维护 weapp-adapter:官方 Adapter 页提供 weapp-adapter.zip(模拟 createElement/Image 等,非基础库需自行引入)[代理查证]
抖音小游戏Cocos/Laya 官方;官方 Adapter 页存在复用同一套 shim(tt.* 与 wx.* 高度同源)+ tmg CLI 出预览
QQ/快手/B站/支付宝/美团Cocos/Laya 官方导出面板给多端各端 adapter + 各自 CLI/上传方式;估 单端 1–3 人日(含真机调试)
H5 / Web全栈天然支持零成本(且这是无头自证的入口)
原生 AppCocos/Laya/Unity 官方;JS 引擎需 webview 套壳套壳会引入新坑,除非必须否则别承诺

纪律(一次定,永久省):把平台 API 关进 src/platform/,并用 eslint no-restricted-globals/no-restricted-syntax 禁止业务代码直接摸 wx/tt——否则"多端"会在半年后变成"每个功能改 5 处"。 运行时约束备忘([代理查证],来自官方文档):小游戏无 DOM/BOM、无全局 document/window、入口 game.js/game.json、GameGlobal 为全局、canvas 由 wx.createCanvas 取得、支持 Worker(createWorker,V2 有独立规则)、API 索引里没有 createSelectorQuery;官方对非 Cocos/Laya/Egret 的通用路径就是 Adapter 替换 BOM/DOM,另有面向 WASM/Emscripten 的"通用引擎适配方案"页。


7. 选型决策树(30 秒走一遍)

需要 3D/2.5D?
 ├─ 是 → 平台必须小游戏?
 │        ├─ 是 → three.js(自写 adapter) 先做 3 天 spike;spike 过 → 选它;不过 → 降级"2.5D 伪 3D(Pixi/Phaser)"
 │        └─ 否(Web/原生也要)→ Babylon 9(内置类型/组件最全)或 three
 └─ 否 → UI 面板数量级 ≥30 个?
          ├─ 是(塔防/卡牌/经营/放置)→ 配方①:PixiJS 8 + @pixi/ui
          └─ 否 → 玩法/物理/弹幕密集?
                   ├─ 是 → 配方②:Phaser 4 + planck
                   └─ 极简单局 → kaplay 或自研 Canvas2D
再叠加两个否决项:
 A. "首发就要 5 个以上小游戏端"? → 权重倒向 配方③(Cocos 3.8 代码优先 / Laya 3)
 B. "美术已定 Spine/Rive 且要求频繁调动画"? → 该项目的动画不进 agent 回路,写清人工环节

8. 推荐结论

默认解:新项目主投微信小游戏且要 agent 全面编程 → 配方①(PixiJS 8 + @pixi/ui)或配方②(Phaser 4),Vite + TS strict + 纯 JS 物理 + LDtk/Tiled 文本关卡 + Aseprite CLI 图集 + 自维护 weapp-adapter + miniprogram-ci。 为什么(3 条):① 只有"真源全文本 + 无 GUI 构建 + 无头自证"能同时把 C1–C10 打满,这是 agent 产能的地基,不是口味问题;② 2D 需求上它们成熟、MIT、语料厚(Pixi 1,502,200/周 + @pixi/ui 官方维护;Phaser 545,951/周 且被学术基准选作目标);③ 平台脏活(adapter/分包/预览)有官方依据可循,且不依赖任何闭源 GUI。 何时改选 Cocos 3.8 / Laya 3:多端渠道 ≥4 个、或团队已有人熟引擎、或要原生 App —— 这时官方导出链路省下的成本大于 Mode A 损失的产能,但要用"代码优先纪律 + MCP 兜底"把 agent 通道留住。 明确不推荐:Godot(小游戏靠 9★ 社区件)、Unity/团结(转换必 GUI、2D 重 UI 短板)、WASM 物理(rapier 撞上 WXWebAssembly 一堆限制)、把 Spine/Rive/Aseprite 工程当 agent 可改真源。


9. 待确认 D11–D24(你点选/答复;未答我按默认值自决)

#问题默认值
D11新项目主品类是"重 UI"还是"重玩法"?(定配方①还是②)按重 UI(配方①)出脚手架
D12是否接受自维护 weapp-adapter(估 3–5 人日起步,含音频/XHR/输入)接受,spike 里先做最小版
D13首发要覆盖几个小游戏端?(≥4 端则倒向配方③)只微信首发,架构预留 shim
D14有 3D/2.5D 需求吗?无;不做 three/Babylon spike
D15美术管线是否已定 Spine/Rive?若是,动画就划出 agent 回路按"序列帧 + 程序化动画"设计
D16是否允许付费工具(Spine Essential $69/Pro $379、TexturePacker Pro for CI)只用免费:Aseprite CLI / LDtk / Tiled / ZzFX
D17要不要我实测 miniprogram-automator 在小游戏里能否 evaluate/screenshot(决定要不要它)做一次 spike,不行就永久剔除
D18RexUI 是否兼容 Phaser 4?(决定重 UI 场景是否改用 Pixi 方案)不依赖 RexUI,UI 层自建
D19Pixi v8 在小游戏里强制 WebGL 的可行性与性能(需 spike)spike 通过才用 @pixi/ui
D20Babylon 9 的小游戏适配有无生产先例(我查到的是"未找到")不选 Babylon
D21tt/wx API 差异无官方对照表 → 是否允许我用"自建 shim + 双端断言"的方式收敛允许
D22CI 机器有无 Windows/macOS(开发者工具 CLI 只支持 mac/win)CI 只用无头浏览器 + miniprogram-ci,不碰开发者工具
D23服务端要不要一起定(排行榜/存档/广告回调)排行榜优先用官方开放数据域 + minigame-canvas-engine,不自建
D24首个可验证里程碑要不要我直接搭脚手架(空仓 + 门禁 + 1 个面板 + 1 个场景)等你点头再动手(本轮全程未改工程)

10. 实测回填(2026-10-06 当日,代码优先栈真跑验证)

按本文判据在 水泊风云录/Demo/ 搭了一个最小工程(Phaser 4.2.1 + TS + Vite,配方②),把"写玩法 → 门禁 → 构建 → 无头自证 → 出小游戏包"整条链跑通:

环节结果
check-imports(机械守卫)+ tsc --noEmit + 双端构建全绿
垫片设备路径单测(Node + 假 wx + 真产物)24/24
小游戏运行时模拟(真 Phaser + 真垫片 + 真 game.js)18/18(含加分/掉命/触摸/结算/最高分入 wx 存储/点击重开)
小游戏包game.js 1360 KB + wx-adapter.js 7 KB + 两个 json = 1368.6 KB(主包上限 4096 KB),无 html/css、无 ESM 残留
Web 包(真实 DOM,无垫片)同一套玩法断言全过

实测纠正了本文三处口径(都已改进正文判断,不是脚注):

  1. C2 无 GUI 构建:成立,但有个必须写进风险表的坑——Vite 构建默认吃 phaser 的 browser 字段(UMD),UMD 在 ESM 里退化成 root["Phaser"]=factory() 而顶层 this 是 undefined,运行期才炸 ReferenceError: Phaser is not defined,而 tsc 查不出来(phaser 的 d.ts 里有全局 Phaser 命名空间兜底)。必须显式 resolve.alias 到 dist/phaser.esm.js,并配一条"用了 Phaser.* 却没 import 就报错"的机械守卫。
  2. 自写 weapp-adapter 的真实难度不在 DOM 形状,而在回调风格:Phaser 的 TextureManager.addBase64 用属性式 image.onload = fn(src/textures/TextureManager.js:376-397)。只实现 addEventListener 的 Image 垫片会让纹理 _pending 永不归零 → 'ready' 不发 → game.isRunning 永远为假。这条在真机上是同一个 bug,D12 的"3–5 人日"估计应按"要读懂 Phaser 内部约定"来重估。
  3. C3 无头自证:成立但必须改造断言方式。headless/后台页面里 rAF 被饿死(实测 12s 只有 6 帧;Qoder in-app 浏览器为 0 帧),任何"等真实时间再看结果"的断言都会偶发红。解法是用 TimeStep.step(time)(src/core/TimeStep.js:718)喂合成帧,把断言变成确定性的——这比"截图对比"更值得作为 agent 主回路。另外 miniprogram-automator 对小游戏的不可用(0.12.1 停在 2023-11-06,官方只声明支持小程序)在本次实测中得到确认。

仍未覆盖(别当成已验证):微信开发者工具与真机(本机没装)、外部资源/图集加载、分包与远程资源、音频、dpr 清晰度。

附录 A:我本轮亲自核到的数字(可复现)

Phaser            4.2.1(2026-07-09) / MIT / 40,410★ / pushed 2026-08-21 / npm 545,951 周
pixi.js           8.22.0 / MIT / types: lib/index.d.ts / npm 1,502,200 周
@pixi/ui          2.4.1 / MIT / peerDependencies: pixi.js ^8.6.2 / deps: tweedle.js(1) / npm 21,482 周
kaplay            MIT / 1,809★ / pushed 2026-10-04 / npm 9,593 周
excalibur         npm 14,986 周
layabox/LayaAir   MIT / 2,204★ / pushed 2026-09-24
cocos/cocos-engine 9,846★ / pushed 2026-09-21 / license=NOASSERTION(需读仓库 LICENSE)
eva-engine/eva.js MIT / 1,782★ / pushed 2026-07-10
miniprogram-ci    npm 21,609 周
miniprogram-automator 0.12.1,发布于 2023-11-06
three             npm 24,326,206 周
wechat-miniprogram/threejs-miniprogram  799★ / 末次推送 2023-05-22 / 未 archived
wechat-miniprogram/minigame-canvas-engine  312★ / MIT / pushed 2026-09-10 / open_issues 6
planck            npm 217,176 周
微信小游戏包体     主包 4MB / 总包 ≤30MB / 独立分包 ≤4MB(官方分包文档)

未核实项(诚实标注):melonJS 版本号(npm melon.js 404)、LittleJS 体积与许可、Excalibur 版本、Cocos Creator 3.8.x 的确切小版本号(官方下载页为 JS 渲染,我未取到)。

附录 B:来源

工程化与平台(官方)

引擎与库


第 3 篇 · 全 AI 编码 ∩ 多端一次导出:行业成熟方案梳理(第三版)

原文件:docs/agent-plus-multiplatform-stacks-2026-10.md(已并入本篇)

全 AI 编码 ∩ 多端一次导出:行业成熟方案梳理(第三版)

2026-10-06 | 前置文档:agent-tech-stack-review-2026-10.md(存量工程,D1–D10)、agent-first-stacks-new-project-2026-10.md(新项目选型判据 C1–C10,D11–D24)| 本文决策编号从 D25 起,跨版不复用。

后续(同日第四版):本文的 R3(代码优先 + 自建多端 shim + Capacitor)已被单独展开成 code-first-selfbuilt-multiplatform-2026-10.md(分层现成件清单、逐端工作量、"哪些层根本没有开源件"的取证结论,D38–D48)。本文 R3 相关段落以那份为准。 本轮新增实证:水泊风云录/Demo/ 已用 Phaser 4.2.1 + TS + Vite 把"编码→门禁→构建→无头自证→出微信小游戏包"整条链跑通(垫片单测 24/24、小游戏运行时模拟 18/18、包体 1368.6 KB)。 标注:[实测]=我这次亲自核过;[代理查证]=子代理取证;[估]=我的估计。


0. 一句话结论(先答"还有哪些方案")

**你列的 7 个端,没有任何一个引擎能"官方全部覆盖 + AI 完成全部编码"同时成立。**缺口是硬事实(逐条数过官方页):Cocos Creator 3.8/4.0 缺 QQ 小游戏、快手小游戏、Bilibili、小米快游戏;LayaAir 3 缺 QQ 小游戏、快手小游戏(它有华为与 B站,见 §7.1 对我上一版的更正);团结引擎有微信/抖音/快手但缺 QQ/支付宝,且转换必须 GUI。所以真正要选的,是"缺的那几端由谁承担":

本轮新增的硬结论(§5 已逐条复核):AI 完成全部编码的上限由平台侧决定,不是引擎侧。微信/支付宝/B站/vivo/QQ 都有官方 CLI(版本号我已亲自核过),但快手小游戏与百度小游戏的上传只有 GUI 按钮 + 扫码登录;各端包体上限还不一致(华为 10MB/抖音 20MB/微信·快手·B站 30MB/百度 8MB;主包多为 4MB,快手是 6MB)。所以"七端一次导出 + AI 全自动"的真实形态是:代码一次导出 + 每端一条各自的(半)自动发布流水线,快手/百度那两端每次上传得有人点一下。

方案端覆盖AI 完成全部编码一句话定位
R1 Cocos Creator 3.8 LTS(代码优先纪律 + MCP 兜底)★★★★★ 最广(官方渠道最多,QQ/快手需社区件)★★★☆☆ 代码全可、场景要 MCP 且构建需图形会话行业默认答案,代价是 agent 走"人在场"模式
R2 COCOS 4(MIT)★★☆☆☆ 官方明说小游戏各端"分阶段解锁"★★★★★ 官方按"MCP/Agent 交付逻辑"重做方向最对、时机未到:2026 内只做试点,别押首发多端
R3 代码优先(Phaser 4 / Pixi 8 / three + 自维护多端 shim + Capacitor)★★★☆☆ 每端自己拥有适配层★★★★★ 本机已实测跑通微信端全链路AI 产能最高,代价是"多端"变成你的交付物
R4 LayaAir 3(本轮被我上调)★★★★★ 微信(含 Worker)/抖音/OPPO/vivo/小米/华为/B站/支付宝/淘宝 + LayaNative 原生(Android/iOS/鸿蒙 NEXT/Windows(Steam)/Linux);只缺 QQ、快手★★★★☆ 官方 CLI(IDE 二进制后台模式,"脚本执行完自动退出")+ 官方仓库 layaair-cli(2026-06)、layaair-skills(2026-09)、LayaAir-mcp-plugin(2025-11) + 官方 AI 产品 LayaIdea被我此前低估的那一个:端覆盖与 agent 通道都比"IDE 闭源所以弱"的直觉好;短板是缺 QQ/快手 + IDE 闭源 + 无公开收费页
R5 Unity / 团结引擎(对照)★★★★☆ 官方平台支持页列 微信/抖音/快手 + Unity 小游戏宿主(QQ、支付宝未列);原生与 H5 是常规能力★☆☆☆☆ 转换工具必须 GUI;但团结 2.0(2026-07-28)已内嵌 AI Agent"团结Codely"不满足"AI 完成全部",且收费要算清:财务规模 <150 万元可用免费个人版;150 万–1500 万元需 1 套基础编辑器 18888 元/年才能无水印发小游戏;1.6.0 起收构建费(社区称减免至 2027-06-30);Unity 6 起不再开放中国用户

我的推荐(可推翻):R1 打底 + 把 UI/玩法/数值全部代码化——即"引擎选 Cocos 3.8 LTS 拿端覆盖与原生,工程纪律按 Mode A 写",让 agent 在 90% 工作量(代码、数值、关卡、脚本化构建产物)上走可并行可自证的路,只有"构建/发布/偶发改 prefab"走 Mode B(GUI 在场)。本轮把 R4 LayaAir 3 提到与 R1 并列:如果你不需要 QQ/快手,Laya 的"官方 CLI(IDE 后台模式)+ 官方 MCP/skills + LayaNative 连 Linux 都给"其实更干净,风险只剩 IDE 闭源与收费未公开。若你的实际优先级是"AI 产能第一、多端适配层我们自己啃",那就直接 R3(本仓库 Demo/ 就是它的可行性证据)。

顺带排除两个常见误解:uni-app / Taro 不是游戏方案(它们编译到小程序页面运行时,不是小游戏 canvas 运行时;2026-05 的行业盘点也明确"偏应用/不适合复杂游戏");Godot 官方没有微信小游戏导出,只有 9★ 级社区件。


1. 官方渠道矩阵(逐格给依据,别信"支持全平台"这种话)

目标端Cocos Creator 3.8 LTS [实测·手册]LayaAir 3 [代理查证]代码优先栈(Phaser/Pixi/three)上传/预览能否脱离 GUI
微信小游戏✅ 官方页(含引擎插件、PC 小游戏、iOS 内存指南、分包、开放数据域)✅ 官方(含 Worker 模式)✅ 自维护 adapter(本机已实测)✅ miniprogram-ci(无需开发者工具,需上传密钥+IP 白名单)[实测 21,609 次/周]
抖音小游戏✅ 官方页(含 PC 小游戏、内存指南)✅ 官方⚠️ 自建 shim⚠️ 官方 npm tt-minigame-ide-cli(bin tmg,2.1.1,258 次/周)[代理查证],但需本地装 IDE
QQ 小游戏❌ 手册无官方页(社区教程存在)❌ 未列⚠️ 自建(API 与微信高度同源)🟡 官方 cli -l/-p/-u,但依赖本地 QQ 开发者工具(§5)
快手小游戏❌ 手册无官方页❌ 未列⚠️ 自建❌ 无 CLI,上传/预览只有 GUI + 扫码(§5 实测官方页)
支付宝小游戏✅ 官方页(2023 起支持)✅ 官方⚠️ 自建(差异比 QQ 大)🟡 官方 minidev 2.2.5(描述含开发/预览/上传)
淘宝小游戏✅ 官方页(含引擎插件)✅ 官方⚠️ 自建🟠 待核:淘宝是否纳入 minidev(D26)
华为快游戏 / 荣耀 / OPPO / vivo✅ 各自官方页(无小米页)✅ 华为/OPPO/vivo/小米 均官方列出;荣耀未列⚠️ 自建(快游戏标准 API)🟡 vivo 有官方 npm @vivo-minigame/cli 1.27.45;华为 .rpk+openssl,文档 SPA 未读到(D27)
Bilibili 小游戏❌ 手册无页(论坛有 3.8.3 适配方案帖)✅ 官方(Laya 文档列出哔哩哔哩)⚠️ 自建🟡 官方 bili-sgame-cli 2.1.22(ISC)
H5(Web 移动/桌面)✅ 官方✅ 官方✅ 天然✅ 任意静态托管
原生 App(iOS/Android)✅ 官方(真原生工程,非套壳:4.0 指南"即可生成 Xcode 项目";3.8 需 JDK17 + Android Studio 2022.2/3 + NDK r21~r23 + Xcode 14+;另有 macOS/Windows/HarmonyOS Next/HMS/Google Play)✅ LayaNative:Android/iOS/鸿蒙 NEXT/Windows(Steam)/Linux⚠️ Capacitor/Cordova webview 套壳(性能与包体代价)❌ 需 Xcode/Android Studio

读法:✅=官方文档有专门页/可脚本化;🟡=有官方件但要登录态或本地 IDE;🟠=我这轮没读到原文(见 D25–D28);❌=官方没有,要么社区件要么自己做;⚠️=能做但要自己负责。


2. 两条硬约束的真实冲突点

约束满足它需要的条件与另一条的冲突
AI 完成全部编码真源是文本(无 uuid 二进制化场景)、构建不需 GUI、能无头自证、可并行分片官方多端导出能力长在编辑器里:Cocos 官方手册的"命令行发布项目"明确写着命令行运行也需要 GUI 环境,且只给 macOS/Windows 路径范例(无 Linux)→ CI 必须是带图形会话的 Win/mac 机器
多端一次导出引擎官方适配层覆盖各端 SDK、审核规则、分包与开放数据域官方适配层意味着产物由编辑器生成,agent 直改文本会破坏 uuid 引用 → 只能走 MCP(人在场、单实例、不可并行)

结论:这不是"选错引擎",而是必然要放弃一点点。三种放弃方式,选一种:

  • 放弃"构建不需 GUI" → R1/R4(Cocos/Laya):agent 写代码很爽,构建/改场景要编辑器在场。
  • 放弃"官方端覆盖" → R3(Phaser/Pixi/three):agent 全自动,QQ/快手/支付宝的适配层与审核差异自己扛。
  • 放弃"当下" → R2(COCOS 4):官方路线就是冲着你这两条约束设计的(MIT 彻底开源、放弃商业授权条款、新特性按"MCP/Agent 交付逻辑"设计、编辑器底层能力 CLI 化),但小游戏各端适配官方明说"分阶段解锁、取决于取得对应平台同意",2026 年内不宜押注首发多端。

3. R1 落地清单(若选"行业默认答案")

引擎侧:Cocos Creator 3.8.x(当前 3.8.8,2025-12-16 发布 [实测 GitHub release])。 必须写进仓库规则的"代码优先纪律"(否则 agent 又回到改 prefab 的坑):

  1. 界面/战场节点一律 new Node()/addComponent 构建,禁止把 UI 拖进 prefab;确需 prefab 时只当"资源壳",真源字段全在 .ts。
  2. 数值/关卡用 JSON/CSV 进版本库(构建期编译成运行时格式),不要用 xlsx 当真源。
  3. 动画资产按"agent 能不能改"选:序列帧 + 图集 JSON / LDtk / .gltf(文本)优先;Spine/Rive 工程只当单向输入。
  4. 构建走官方命令行:CocosCreator(.app/.exe) --project <路径> --build "platform=wechatgame;debug=true",可加 configPath=、stage=bundle、buildScriptsOnly=true;退出码 36=成功、32/34=错误(这条一定要进 agent 门禁,别只看有没有产物)。CI 机器必须是 Windows 或 macOS 且有图形会话——官方原文"命令行运行的时候也是需要 GUI 环境的",Jenkins 要以 agent 模式访问 WindowServer;Linux 无官方支持。
  5. agent 改场景的唯一通道是 MCP:3.8 用第三方 Funplay MCP(3.8+、105 工具、编辑器内 HTTP 127.0.0.1:8765)[实测];2.4 也有社区件 cocos-mcp-2x(MIT,2026-06-10 发布,作者声明在 2.4.15 上验证过,依赖本地 Python+WebSocket,个人项目) [代理查证]——这条更正了我第一版文档里"2.4 没有 MCP 通道"的结论。
  6. 验收回路照抄 Demo 的做法:无头浏览器跑 web 构建 + 喂合成帧(TimeStep.step(time))做确定性断言,小游戏端再用各端 CI 工具上传体验版。

4. R3 落地清单(若选"AI 产能第一")

引擎层:Phaser 4.2.1(重玩法)或 PixiJS 8.22 + @pixi/ui 2.4.1(重 UI,MIT,peer 要求 pixi.js ^8.6.2)
适配层:src/platform/{wx,tt,qq,ks,my,web,capacitor}.ts —— eslint 禁业务层直连 wx.*
构建层:Vite(三 mode:web / 各端小游戏包)+ 包体自查脚本(主包 4MB、无 ESM 残留、无 html/css)
自证层:tsc --noEmit → eslint → 单测 → 无头 Chromium 喂帧断言 → 各端 CLI 上传体验版
原生层:Capacitor(webview 套壳;性能/包体代价要单独评估 = D29)

已实测的证据(本仓库 Demo/):微信端全链路跑通,包括 miniprogram-ci 之外的每一环;三个必踩坑的修法已固化成守卫与回归测试(Vite 吃 browser 字段→UMD 运行期炸;Phaser 用属性式 img.onload;headless rAF 饿死)。 未实测:抖音/QQ/快手/支付宝四端的真机与审核差异、带图集资源的分包、原生套壳性能。 行业先例:2026-08 有开发者复盘"全程用 AI 做了一款微信小游戏并上线",技术栈正是 Canvas 2D + TypeScript + Vite 自研管线(明确不用 Unity/Cocos),AI 负责编码/美术/关卡,人负责规范、架构分层、多端适配封装、提审合规与抽检 [代理查证]——注意他自己列的"必须人做"项里就有"多端适配封装",与本文判断一致。


5. 各端工具链成熟度(决定"能不能无人值守")——本轮已逐条复核

本节最重要的结论:AI 完成全部的上限由平台侧决定,不由引擎侧决定。 即使选官方端覆盖最广的 Cocos,快手小游戏的上传/预览也只有 GUI 按钮 + 扫码登录(官方文档原文,全文无 CLI),百度小游戏上传也没有 CLI。所以"七端全自动无人值守"目前不存在,能做到的上限就是下表"判定"列。

端官方 CLI(我复核到的版本)必须本地装 IDE / 扫码?包体上限判定
微信miniprogram-ci 2.1.31(preview/upload)[实测]否(需代码上传密钥 + IP 白名单)主包 4MB/总包 ≤30MB/独立分包 ≤4MB [实测官方]✅ 可无人值守
支付宝/淘宝minidev 2.2.5(描述含"开发、预览、上传",maintainer 域名 alibaba-inc.com)[实测]引擎文档口径要装 IDE;CLI 免登录所需 token 未取证主包 4MB,超出走 CDN🟡 大概率可脚本化
Bilibilibili-sgame-cli 2.1.22(ISC,"Bilibili Small Game Cli")[实测]需登录态,无 CI 章节总 30M/单包 4M [代理查证]🟡 可脚本化(引擎侧仍要自己适配,Cocos 无官方页)
vivo 小游戏@vivo-minigame/cli 1.27.45(MIT,持续发版)[实测]待核主包 4MB [代理查证]🟡 可脚本化
QQ 小游戏官方 cli -l / -p / -u / --build-npm [代理查证]是(依赖本地 QQ 开发者工具,预览/上传需登录态;二维码可导出图片/base64)小游戏侧未找到官方数字(小程序侧分包总和 24M/单包 2M)🟡 半自动
抖音官方文档口径是 IDE 内置 bytecli(-o/-l/-p/-u);npm 另有 tt-minigame-ide-cli 2.1.1(258 次/周)[代理查证]是(须先装抖音开发者工具;登录要手机验证码/飞书扫码)总 20MB/主包 4MB/单分包 20MB(Cocos 手册转述,非平台原始文档)🟡 半自动(首次登录必须人)
小米快游戏RPK 可脚本打包(manifest.json 手写 subpackages)[代理查证]待核主包 4M/单分包不限/RPK 总 30M🟡 可脚本化
华为快游戏Cocos 直接产 .rpk,签名用 openssl [代理查证];hap-toolkit 2.1.1 维护者是个人账号(非官方 org)官方文档为 SPA,正文未读到代码包总 10MB🟠 待核(D27)
快手小游戏无 CLI(官方页只有"点击上传 button""点击真机预览 Button",登录要快手 App 扫码)[实测官方页]是总 30M/主包 ≤6M/单分包不限❌ 每次上传都要人
百度小游戏无上传 CLI [代理查证]是总 8M/单包 4M❌ 必须 GUI
H5任意静态托管否—✅ 最省事,也是无头自证入口
原生 AppCocos 原生构建可 CLI;Xcode/证书/上架必须人是(需原生工具链)—🟠 半自动
套壳路线Capacitor(MIT,2026-10-05 仍在推)[代理查证];Cordova(Apache,2026-05-19 有推送,节奏慢)需原生工具链—🟡 活跃;但 wx.* 在 App 内要自建 shim,无官方桥接

排期读法:✅ 可进 agent 流水线;🟡 可脚本化但首次登录/提审要人;❌ 每次上传都要人点(快手、百度)。另外 miniprogram-automator 不覆盖小游戏(0.12.1,2023-11-06 起未更新 [实测]),"自动开模拟器验收"也别指望。

附带结论:各端包体上限不一致(华为 10MB/抖音 20MB/微信·快手·B站 30M/百度 8M;主包 4MB 是多数但快手是 6MB),所以"一次导出"必须在构建期按目标端做包体门禁,不能只测微信一端。


6. 待确认 D25–D37

#问题默认值
D25QQ / 快手小游戏的官方 CLI 与包体上限 已核:QQ 有官方 cli(依赖本地 QQ 开发者工具);快手小游戏无 CLI(上传/预览只有 GUI + 扫码)。剩余缺口:QQ 小游戏侧包体上限未找到官方数字(只有小程序侧 24M/2M)按"主包 4MB、总包 20MB"最严口径设计,QQ 端实测后再放宽
D26minidev 免 GUI 登录所需 token/私钥口径;淘宝小游戏是否纳入 minidev按"要人工"排期,脚本化留到打通 token 后
D27华为/OPPO 快游戏工具链(官方文档是 SPA,正文没读到);hap-toolkit 维护者是个人账号而非官方 org华为按"Cocos 产 .rpk + openssl 签名 + 人工上传"排期
D28LayaAir 3 的原生 App 发布方式 已核:官方 LayaNative 覆盖 Android/iOS/鸿蒙 NEXT/Windows(Steam)/Linux;引擎 MIT 但 IDE 闭源、未找到官方收费页若把 R4 纳入候选,先要到一个书面收费口径
D29原生 App 用 Capacitor 套壳跑 WebGL 的性能是否达标(低端机)先做 spike 再承诺原生
D30七端里哪些是首发必须、哪些可 T+3 月?(决定 R1 还是 R3)按"微信+抖音+H5 首发,其余 T+3 月"排
D31是否接受"CI 机器必须是 Win/mac 且有图形会话"(R1 的硬条件)接受则选 R1,不接受则选 R3
D32COCOS 4 是否进入你的观察计划(每季度复评小游戏端解锁进度)列入,但不押注 2026 内多端
D332.4 的社区 MCP(cocos-mcp-2x)要不要在存量工程上试(个人项目、依赖 Python)试,但只读操作先行
D34Demo 这条线要不要继续推到"带图集资源 + 分包 + 远程资源 + 抖音端"等你定优先级
D35LayaAir 的书面收费口径与官方 layaair-cli/LayaAir-mcp-plugin 的成熟度实测(我这次只核到仓库存在与文档描述,没跑过)要选 R4 就先做一次"CLI 出微信包 + MCP 改场景"的 spike,跑通再谈选型
D36是否接受团结引擎的钱与流程(18888 元/年量级、构建费、提审人工、Unity 6 不再开放中国用户)以换取官方快手端不接受 → 快手端走 R3 的自建 shim 或干脆不做快手
D37是否把 Cocos 命令行退出码 36/32/34 这类"平台侧硬信号"照 Demo 风格写成构建门禁(build:wx 后断言退出码而非看产物)要,我可以直接在 Demo 里加一条等价守卫

7. 第二路调研回填:我更正了什么、以及由此改变的排序

7.1 我自己写错/低估的三条

  1. LayaAir 3 的端覆盖被我写窄了。前文按 layaair.com/3.3 的"小游戏发布"页只列了微信/抖音/OPPO/vivo/小米/支付宝/淘宝;但 3.x 文档目录(v3.4,2026-08-17 更新)实际还包含 华为快游戏 与 哔哩哔哩小游戏,原生侧有 LayaNative:Android / iOS / 鸿蒙 NEXT / Windows(Steam) / Linux(Linux 是 Cocos 编辑器都不给的)。仍缺的是 QQ 与 快手。→ §0 的 R4 已从"3D 才看"上调为"值得与 R1 并列评估"。
  2. Laya 的 agent 通道不是"薄",是有官方件:官方 CLI LayaAirIDE --project=<路径> [--script=类.方法] [--script-args],官方描述"后台脚本执行结束后自动退出"(可批处理/CI);官方组织下另有 layaair-cli(2026-06)、layaair-skills(2026-09)、LayaAir-mcp-plugin(2025-11),以及官方 AI 产品 LayaIdea(1.0 beta2,网页版)。论坛官方答复口径:"IDE 其实已经支持 headless CLI 模式""CLI 工作流正在开发中"。→ 但IDE 本体仍闭源(引擎 MIT,组织仓库里没有 IDE 源码),且未找到官方收费页(D35)。
  3. 团结引擎的端覆盖里其实有快手:官方平台支持页列 微信/抖音/快手 + Unity 小游戏宿主,另有《快手小游戏转换 SDK》(2025-12-09)。→ 它是唯一官方覆盖快手的,但转换工具必须 GUI,仍不满足"AI 完成全部";且要算清钱:<150 万元财务规模可免费个人版;150 万–1500 万需 18888 元/年 一套基础编辑器才能无水印发小游戏;1.6.0 起收构建费(社区称减免至 2027-06-30);Unity 6 起不再开放中国用户;团结 2.0(2026-07-28)已内嵌 AI Agent"团结Codely"。

7.2 COCOS 4 的官方通道(比我上一版描述更具体,也更有硬条件)

  • 官方仓库 cocos/cocos-cli(cocos 组织、MIT、建 2025-09-04、最近推送 2026-09-28):cocos create / cocos build --platform <端> / --no-interactive / cocos start-mcp-server --port 9527。
  • 官方新闻稿(2026-01-05)口径:引擎与编辑器解耦、核心编辑功能转 headless CLI、可视化交给 PinK IDE、MIT 并移除原商业条款、"AI 原生/MCP 优先"。
  • 硬条件:README 只声明 Windows(VS C++ 工具链)与 macOS(Xcode),未声明 Linux;cocos-cli 项目当前没有集成本地图形编辑器,要看可视化还得开 3.8.7;实测介绍要求 Node.js 22.17.0(其他版本可能报错)。
  • 结论:R2 的"方向最对"从推测升级为有官方仓库与官方新闻稿支撑;但"小游戏各端分阶段解锁"没变,所以2026 内仍不押多端首发,改为"用 R1/R4 上线,同时每季度复评 cocos-cli 的端解锁进度"(D32 保留)。

7.3 排序变化(这就是答案的收敛形态)

排序方案为什么
1R1 Cocos Creator 3.8 LTS + 代码优先纪律端覆盖 + 真原生 + 官方 CLI(含明确退出码 36/32/34)+ 3.8 有第三方 MCP、4.0 有官方 MCP 可平滑过渡
1′R4 LayaAir 3(与 R1 并列,条件成立时优先)若你不需要 QQ/快手、且要 Linux 原生或更少商业条款不确定性,Laya 的官方 CLI + 官方 MCP/skills 组合其实更干净;风险是 IDE 闭源 + 收费未公开
2R3 代码优先 + 自维护多端 shim唯一能让 agent 端到端全自动的路(本机已实测微信端),代价是每端适配层归你
3R2 COCOS 4观察 + 试点,别押 2026 多端首发
—R5 团结引擎只有"必须快手 + 接受人工上传 + 接受 18888 元/年量级"时才考虑

第四种引擎:没有。 Egret 2022-02 停止运营(仅社区维护);Eva.js 官网未列多端发布/原生;字节 Lyda、Cryeng 等无官方七端依据。所以可选面就是上面这五个。

附录 A:各端工具链依据(本轮 §5 用)

附录 B:我本轮亲自核到的 npm/包事实

miniprogram-ci      2.1.31(2024-11-12)/ 周下载 21,609
miniprogram-automator 0.12.1 / 发布 2023-11-06 / 周下载 15,314
minidev             2.2.5 / maintainers: vip.qq.com, alibaba-inc.com / 描述含"开发、预览、上传"
bili-sgame-cli      2.1.22 / ISC / "Bilibili Small Game Cli"
@vivo-minigame/cli  1.27.45 / MIT
tt-minigame-ide-cli 2.1.1 / 周下载 258
cocos/cocos-engine  latest release 3.8.8(2025-12-16)

附录 C:引擎与方案侧依据

附录 D:第二路调研依据(引擎官方件、团结引擎收费)


第 4 篇 · 代码优先栈"全部自建"做全平台导出:可行吗?有现成件吗?(第四版)

原文件:docs/code-first-selfbuilt-multiplatform-2026-10.md(已并入本篇)

代码优先栈"全部自建"做全平台导出:可行吗?有现成件吗?(第四版)

2026-10-06 | 前三版:agent-tech-stack-review-2026-10.md(存量,D1–D10)→ agent-first-stacks-new-project-2026-10.md(新项目,D11–D24)→ agent-plus-multiplatform-stacks-2026-10.md(多端交集,D25–D37)。本文决策编号从 D38 起。 讨论对象 = 上一版的 R3:Phaser 4 / PixiJS 8 / three.js + 自维护多端 shim + Capacitor。 标注:[实测] 我亲自核过;[代理查证] 子代理取证(URL 在附录);[估] 我的估计,不是任何官方承诺。


0. 一句话结论

技术上可行,成本可控,但"全部自建的成熟方案包"不存在——你能选到的是"零件",不是"整体"。 具体分三句话:

  1. 跨端统一适配层没有可选型的开源件。我这次专门找过:最接近的 @pixifact/platform-*(0★、仅 Web/微信/抖音、末次提交 2026-06-01)、minigame-std(GPL-3.0,只 polyfill fetch/fs/crypto/webaudio)、godot-minigame(9★、Godot 专用)。结论:中间那层归一接口必须你自己拥有。
  2. 但每一端都有"官方单端 adapter",所以事实上的成熟模式是以微信为基准 + 每端薄壳:微信官方 weapp-adapter.zip 直链、支付宝官方 my-adapter.js/microgame-adapter.js、B站官方 weapp-adapter.js + blapp-adapter-cocos.js 直链、快手开发者工具"开启自动适配微信"会自动生成 kwaiadapter.js、OPPO 有官方"微信小游戏一键转 OPPO"转换工具。→ 你要写的不是"七套 DOM 垫片",而是一套业务 API 归一层 + 各端薄壳。
  3. 原生壳与 H5 渠道是真成熟的:Capacitor 8.5.2(MIT,2026-09-11)+ Phaser 官方出的 iOS/Android 接入教程;H5 出海有 Poki SDK v2、CrazyGames SDK v3、GameDistribution GD-HTML5(MIT 1.3.0)。但两个硬数字要先看:① iOS WKWebView 性能——微信官方同场景数据 10–15 FPS vs 原生渲染 48–50 FPS(这就是"高性能模式"存在的原因,也是 WebView 壳的量级代价);② 国区安卓上架要营业执照+网文证+增值电信许可证+ISBN 版号+软著(小米官方,无版号只能"预约")→ 原生 App 的门槛是资质,不是代码。

顺带一句诚实话:我没找到任何"用 Phaser/Pixi 做到多个小游戏端同时上线"的公开可查案例(只有单端 demo 级)。所以这条路的成熟度是"零件成熟、集成无先例可查",别按"业界都这么做"来评估风险。


1. 分层拆解:哪层现成、哪层空白

层能直接选(成熟件)能抄但要改必须自己写
渲染/玩法Phaser 4.2.1(MIT,40,410★)、PixiJS 8.22.0 + @pixi/ui 2.4.1(MIT)、three r186(MIT,24,326,206 次/周)[实测]骨骼动画:Spine 运行时只能单向消费导出 JSON玩法代码、UI 组件层(Phaser 无成套控件)
DOM/BOM 垫片微信 weapp-adapter.zip(官方直链)、支付宝 my-adapter.js/microgame-adapter.js、B站 blapp-adapter-cocos.js、快手 kwaiadapter.js(工具自动生成)[代理查证]各家 adapter 都是按 Cocos/Laya/Egret 的形状写的,Phaser/Pixi 用要裁剪(我 Demo 自写 <300 行即跑通,与 2026-08 那篇复盘一致)QQ、小米/华为/vivo 快游戏这几端未找到官方 adapter → 自己补
业务 API 归一层(登录/支付/广告/分享/排行榜/生命周期/隐私授权)❌ 没有成熟开源件(本文核心发现)各家 api-typings 可当形状来源(但 QQ/快手/B站无 typings)✅ 整层自建,约 15–20 个接口面(§3)
构建/打包Vite 7.3.6、esbuild、miniprogram-ci 2.1.31、@douyin-minigame/cli 0.4.0、bili-sgame-cli 2.1.22、@vivo-minigame/cli 1.27.45、minidev 2.2.5 [实测]分包结构、远程资源策略要按端调Vite 小游戏专用插件:未找到 → 我 Demo 的三 mode + finalize-wxgame.mjs 就是这块自研
无头自证Chromium/Edge headless、Playwright/Puppeteer、Vitest各家 IDE 的模拟器无法无头驱动(miniprogram-automator 不覆盖小游戏 [实测])喂帧断言框架(Demo 已实现:TimeStep.step(time))
原生壳Capacitor 8.5.2(MIT,36 个官方插件,含 SplashScreen/Keyboard/Filesystem/StatusBar/System Bars)、Cordova 13.0.0、Tauri 2.12.1(移动端用系统 WebView)音频要用户手势解锁(Capacitor 不提供绕过);iOS 最低 15;HTTP 资源要手写 Info.plist(v8 未文档化 ATS)App 内 wx.* 反向 mock:未找到成熟件 → 自己写(这层其实最简单,因为 Web 有原生实现)
H5 渠道Poki SDK v2、CrazyGames SDK v3、GD-HTML5 1.3.0(MIT)、华为快游戏官方文档Poki 明文要求"广告期间关闭音频与键盘输入"→ 要有中断状态机国内 4399 文档站是 JS 渲染正文不可核、闪玩未找到

2. 逐端可行性与工作量(估 人日,按"已有微信端"为基线)

端官方 adapter上传/预览可脚本化?包体上限(主包/总包)剩余自建面估
微信(基准)✅ 官方 zip✅ miniprogram-ci4MB / ≤30MB(独立分包 ≤4MB)—已做完(Demo)
抖音✅ 官方 Adapter 章节(直链未取到)🟡 IDE 内置 bytecli,首次登录要人4MB / 20MB;支持开放数据域登录/广告/分享 API 名差异2–3
QQ❌ 未找到官方 adapter🟡 官方 cli -l/-p/-u,依赖本地 IDE4MB / 20MB [代理查证];小游戏侧上限未找到官方原文垫片 + 业务层 + 自己写 d.ts3–5
快手✅ 工具自动生成 kwaiadapter.js("开启自动适配微信")❌ 无 CLI,上传只有 GUI + 扫码6MB / 30MB业务层;每次发版要人点一下2–3
支付宝✅ my-adapter.js/microgame-adapter.js🟡 minidev 2.2.5(token 口径未取证)4MB / 20MBmy.* 与 wx.* 差异(这是最大一块未知)、开放数据域未找到官方依据4–6
Bilibili✅ 官方 zip + cocos 版直链🟡 bili-sgame-cli 2.1.224MB / 30MB业务层 + 自己写 d.ts2–3
华为/小米/OPPO/vivo 快游戏❌ 未找到官方 adapter(OPPO 有"微信一键转换"工具)🟡 vivo 有官方 npm CLI;华为 .rpk+openssl;小米 RPK 可脚本华为代码包 10MB/小米 4MB+RPK 30MB/vivo 4MB联盟 API 与微信差异未找到官方对照表(D40)每厂 2–4
H5(自有站)不需要✅—无0.5
H5 出海渠道✅ Poki/CrazyGames/GD 官方 SDK✅—中断状态机(广告期间锁音频/输入)2–3
原生 App不需要(Web 原生)🟡 Capacitor 可 CLI,签名/上架要人—wx.* 反向 mock(薄)+资质3–5 + 资质不可控

合计:七端 + H5 + 原生 ≈ 估 25–40 人日(不含玩法与美术),其中约 40% 是"归一层的接口设计 + 各端差异取证",这部分恰好是 agent 最能干、且最容易用类型与断言钉死的活。


3. 必须自己写的那一层:接口面清单(这就是"全部自建"的真实内容)

src/platform/
  types.ts        GamePlatform 接口(唯一真源,业务只认它)
  web.ts          Capacitor/H5 用(localStorage、fetch、Audio、pointer)
  wx.ts  tt.ts  qq.ts  ks.ts  my.ts  bili.ts  quick.ts(联盟)
  __tests__/      每个实现跑同一套契约测试(判据来自官方文档行号,不能照抄自己的产物)

接口面(15–20 个,按"差异最大"排序,前 5 个决定成败):

  1. 登录与鉴权(wx.login / tt.login / my.getAuthCode / 快游戏各家不同)→ 后端换 openid 的链路每端不同;
  2. 支付/内购(国内小游戏端基本只有安卓可内购,iOS 走广告变现);
  3. 广告(激励视频/插屏/banner 的命名与回调形状各家不同,跨端聚合 SDK 我这一轮还没取证 = D41);
  4. 开放数据域/好友排行榜(微信、抖音明确支持;支付宝/B站/快游戏未找到官方依据,D42);
  5. 分包与远程资源(上限各不同:华为 10MB/多数 20MB/微信 30MB;主包 4MB 是共性,快手 6MB);
  6. canvas/图片/音频创建、触摸事件归一(我 Demo 已做:wx.onTouchX → 合成 TouchEvent → Phaser);
  7. 生命周期(onShow/onHide ↔ visibilitychange)、剪贴板、震动、键盘、隐私授权弹窗、网络类型、系统信息、字体子集/度量。

为什么这层适合交给 agent:它是纯 TypeScript + 契约测试,能类型检查、能无头跑、能并行分片(每端一个文件互不打架),且判据可以钉到官方文档 URL(避免"照抄自己的 mock")。我 Demo 里 src/core/platform.ts + src/minigame/adapter.ts + tools/adapter-node-test.mjs(24 项,含假 wx)就是这层的最小可运行范式。


4. 工具链与类型现状(直接影响 agent 能不能自证)

端官方/社区 TS typings备注
微信✅ minigame-api-typings 3.8.21(2026-07-27,wechat-miniprogram 组织)、miniprogram-api-typings 5.2.3(2026-08-07,MIT)小游戏专用那份最有用
抖音🟡 @douyin-minigame/api-typings 1.3.0(2026-07-16,维护者含 bytednpm,疑官方)
支付宝🟡 @mini-types/alipay 3.0.14(2024-01,偏小程序不是小游戏)小游戏侧要自己补
QQ / 快手 / B站 / 快游戏联盟❌ 未找到 api-typingsagent 要自己写 .d.ts,而判据只能来自文档正文(多家文档是 SPA 抓不到正文 → D43 要人工截图/导出)

构建侧:Vite 小游戏专用插件未找到(npm 搜 vite-plugin minigame 无命中)。所以"多 mode 构建 + 包体自查 + require 注入"这类脚本要自己维护——Demo 里 vite.config.ts(三 mode)+ tools/finalize-wxgame.mjs(4 项硬自查)已经给了可复制的做法。另有微信官方 wx-transformer(面向 Emscripten/C++ 自研引擎,对 JS 引擎用处有限)。


5. 原生与 H5 渠道的真实门槛(不是代码)

  • 性能:iOS WebView 是这条路线最大的量级损失(微信官方 10–15 FPS vs 原生渲染 48–50 FPS)。缓解办法只有两条:把游戏做成"轻量 2D + 低分辨率",或放弃 WebView 壳改用引擎原生 runtime(那就回到 R1/R4:Cocos 真原生工程、Laya LayaNative)。
  • 内存:Cocos 官方 iOS 指南给的口径是 2GB 机型上限约 1GB、3GB 约 1.4GB,音频约 20MB,建议 ASTC → 内存预算要写成构建门禁(资源总量 + 纹理格式断言)。
  • 审核:App Store 指南 4.2 原文要求"elevate it beyond a repackaged website",2.5.2 禁止下载/执行会改变 App 功能的代码 → 纯 URL 套壳高危、远端整包热更高危;游戏资源打进 bundle + 加原生能力(离线包/Game Center/原生插件)才可控。
  • 资质:国区安卓商店(小米官方页)要营业执照、网文证、增值电信许可证、ISBN 版号、软著及授权书;无版号只能"预约"。→ 原生 App 渠道要先解决版号,再谈技术方案(D44)。
  • H5 出海:Poki/CrazyGames/GD 三家 SDK 都要求"广告中断时锁住音频与输入",所以玩法层必须有可暂停状态机——这条要一开始就设计进去,事后补很痛。

6. 三条实施路线(都在 R3 内部)

路线做法适合代价
P1 纯自建归一一套 platform 接口 + 每端 adapter + 每端 CLI 脚本;agent 全自动写与测你确实要 7 端且能接受每端 2–6 人日无先例可抄,风险自己扛;QQ/快手/B站 无 typings
P2 微信基准 + 官方转换工具兜底(我推荐)只把微信端做"真源端";快手用"自动适配微信"生成 kwaiadapter.js、OPPO 用官方"微信一键转换"、B站/支付宝用官方 adapter;归一层只写差异部分想省一半工作量转换工具多为 GUI/闭源 → 那几端的发版会引入人工步骤(快手本来就要 GUI)
P3 混合:R3 主干 + 最难端交给 R1/R4微信/抖音/H5/原生用 Phaser/Pixi;把支付宝或快游戏这类差异最大的端,用 Cocos/Laya 出一个"壳工程"发布商业上必须全端但团队小两套工程/两套美术管线,长期维护成本翻倍(不推荐,除非某端收入权重极高)

与 R1/R4 的最终对比(一句话版):R1/R4 是"用编辑器在场换官方端覆盖",R3 是"用自建 25–40 人日 + 无先例风险换 agent 全自动"。如果"AI 完成全部编码"是硬约束,只有 R3 满足;如果"七端一次导出"是硬约束,R3 + P2 是唯一现实解,且快手/百度两端仍需人工点上传。


7. 待确认 D38–D48

#问题默认值
D38是否接受"归一层 + 各端薄壳"由我们自己拥有(无开源件可选)接受,按 P2 出接口设计稿
D39首发必须端清单(决定要不要碰支付宝/快游戏这些差异最大的端)按 微信+抖音+H5 首发
D40快游戏联盟与微信的 API 差异没有官方对照表 → 要不要花钱买一份实测(或找用过的人)先只做华为,其余端 T+3 月
D41跨小游戏端的广告聚合 SDK 有没有成熟件(我这轮未取证,后台在跑)按"每端各自接、归一层里加 ads.ts"设计
D42支付宝/B站/快游戏的开放数据域/好友排行是否支持(未找到官方依据)这些端不做好友榜,改服务端排行榜
D43QQ/快手/B站/联盟无 TS typings,且多家文档是 SPA 抓不到正文 → 要不要人工导出文档做判据库要,我建 docs/platform-spec/ 存证据
D44版号/软著是否已具备(决定原生 App 与国区安卓渠道是否可行)未具备 → 原生 App 从目标里去掉,只保留小游戏 + H5
D45iOS 用 WebView 壳的性能是否可接受(10–15 FPS 量级)不可接受 → 原生 App 不做,或改走 R1 真原生
D46是否要 H5 出海(Poki/CrazyGames/GD 三家接入约 2–3 人日 + 中断状态机)要,则一开始就把"可暂停状态机"写进玩法层
D47要不要我把 Demo 扩成 P2 的最小可用版(加 tt.ts + 抖音构建 mode + 契约测试)等你点头(本轮只写了文档,未动 Demo)
D48minigame-std 是 GPL-3.0、Pixifact 0★——是否允许引入这类依赖不允许,只当参考实现读源码

附录:证据

各端官方 adapter / 工具

"跨端统一层"候选(都不够成熟)

TS typings / CLI

  • minigame-api-typings 3.8.21、miniprogram-api-typings 5.2.3 https://github.com/wechat-miniprogram/api-typings;@douyin-minigame/api-typings 1.3.0;@mini-types/alipay 3.0.14;@douyin-minigame/cli 0.4.0;wasmsplit-v2-ci 2.1.5;@open-dy/tt-wasmsplit-ci 1.0.9

原生壳 / H5 渠道 / 性能与合规


第 5 篇 · LayaAir 3 vs Cocos Creator 深度对比审查报告

原文件:docs/layaair-vs-cocos-对比审查报告-2026-10.md(已并入本篇)

LayaAir 3 vs Cocos Creator 深度对比审查报告

场景锁定:全新项目 | 硬约束①AI agent 完成全部编码 | 硬约束②全平台导出

2026-10-06 v3(两路深挖均已回填,评分发生反转) | 系列第五篇。决策编号 D49–D73,跨版不复用。 标注:[实测] 我亲自核对;[代理查证] 子代理取证(URL 见附录 A);[官方声明] 厂商原话(≠我验证过);[估] 我的估计;未找到 = 明确查不到,不当作已知。 v2→v3 的变化不是措辞,是结论:Cocos 侧取证推翻了"官方 CLI/MCP 路线可用"这个印象(见 §3.2/§3.3),Laya 侧的"无 GUI CLI"反而是本轮最硬的加分项。


0. 结论先行

一句话:在"AI 全自动出包到小游戏端"这条最硬的约束上,目前只有 LayaAir 的官方文档声称做得到(新 CLI 无 GUI 依赖、可进 GitHub Actions、覆盖 10 端 + Linux 原生);Cocos 的 headless cocos-cli 平台清单里根本没有小游戏端(只有 web-desktop/web-mobile/android/ios + mac/windows/鸿蒙/AGP),要出微信包只能回到 3.8 编辑器命令行——而它官方原文要求图形会话、无 Linux。 代价是:Cocos 的 agent 改场景有可用件(3.8 第三方 MCP 105 工具),Laya 这块是空白(官方 MCP 插件仓库已归档、skills 只有 2 个技能且不含搭场景、官方《AI开发路线》明写"AI 单独完整生成游戏"暂不支持)。

加权评分(AI 编码 35% / 全平台导出 30% / 工程化 15% / 能力面 10% / 生态语料 5% / 费用 5%)

维度权重CocosLaya本轮依据
AI 完成全部编码35%7.06.8Cocos:3.8 有第三方 MCP 可改场景 + 语料厚,但构建需 GUI、官方 MCP 绑在未发布的 4.0 alpha。Laya:无 GUI CLI 可全自动出包,但场景级自动化无可用件 + 语料薄(幻觉率高)
全平台导出30%7.38.2两家都缺 QQ/快手;Laya 新 CLI 覆盖 10 端(含 B站/小米/华为)+ Linux/Steam 原生;Cocos 官方端别是微信/淘宝/抖音/OPPO/vivo/华为/荣耀,且小游戏端在 headless 侧不存在
新项目工程化15%6.08.5Cocos:CI 官方示例未找到、命令串 ≤125 字符、macOS 换行符坑、无 Linux;Laya:官方称可 GitHub Actions,但 CLI 运行时闭源需联网拉取、同样无官方 CI 示例
能力面(2D/3D/UI/物理)10%8.08.5Cocos UI 齐但无官方 List/VirtualList(靠社区/商店补位);Laya 新 UI(官方称 FairyGUI 同构)自带 List/Dialog/Tab/ViewStack,另有 Worker、WebGPU 路线、2D Box2D + 3D Bullet/PhysX 内置
生态/语料(LLM 熟悉度)5%8.54.59,846★ vs 2,204★;Laya 文档源仓库 7★、NewUI-Examples 0★、示例旧库 2021 停更、GitHub 仅 9 open issue(反馈沉在自家论坛,机器不可读)
许可与费用5%8.58.0本轮纠正:cocos-engine v3.8.8 的 LICENSE.md 就是标准 MIT,无流水门槛、无 splash 要求(GitHub 显示 NOASSERTION 只是因为仓库内含多份第三方许可);Laya 引擎 MIT + 博客承诺基础永久免费无分成 [官方声明],但 IDE 商用授权条款未找到
加权总分7.257.43反转:Laya 反超 0.18,完全落在打分噪声内

推荐(v3):

  1. 评分已不足以裁决 → 必须实测(§9.1 对撞测试从"建议"升级为"签选型前置条件")。
  2. 现在就要拍的规则:
  • "agent 端到端无人值守出七端包"是刚需 → Laya(唯一有官方文档声称无 GUI 可行;先做 D64 的容器实测)。
  • "agent 要能改界面/场景"是刚需 → Cocos(3.8 + 第三方 MCP 105 工具;接受构建节点要图形会话)。
  • 两条都要 100% → 都不选,走第四版 R3(Phaser/Pixi + 自建归一层,Demo/ 已实测微信端全自动)。
  1. 不要押 COCOS 4 / PinK 做 2026 年的生产依赖:4.0 引擎只到 4.0.0-alpha.34(2026-09-20)、无 GA;PinK 官方明示"请勿用于生产环境"、邀请码制、许可与定价未找到;而 docs.cocos.com 已有"4.0 (LTS)"手册——文档与实现不一致本身就是风险。

1. 三条硬约束的逐条判定

约束Cocos CreatorLayaAir 3依据
① AI 完成全部编码🟡 代码全自动 + 改场景有件(第三方);但小游戏包必须经 3.8 编辑器 CLI(需图形会话)🟡 代码 + 无 GUI 出包;但改场景无件(MCP 插件已归档、skills 无场景技能、IDE 内置 MCP 要 GUI+Key+每会话重导)§3.2/§3.3
② 全平台导出(7 端)🟡 官方 5/7 + 原生(无 Linux);headless 侧 0/7🟡 官方 5/7 + 原生含 Linux/Steam;缺 QQ、快手§2
③ 新项目可承受✅ 3.8.8(LTS,2025-12-16)[实测]🟡 3.4.1(2026-08-31)与 3.3.13(2026-09-17)并行发版 → 选线要定(D63)§5
附:agent 并行改界面❌ 编辑器单实例❌ 同理共同天花板
附:CI 无人值守❌ 小游戏端无 headless 路径;3.8 CLI 要 GUI 会话;Linux 无官方支持;官方 CI 示例未找到🟡 官方文档称无 GUI/可 GitHub Actions;但 CLI 运行时闭源需联网、无官方 CI 示例、Linux 原生无实证D64
附:厂商对"AI 全自动"的态度COCOS 4 发布稿:"新特性采用 MCP 或 Agent 的交付逻辑"[官方声明](但载体是 alpha)《AI开发路线》:"AI 单独完整生成游戏"暂不支持[官方声明](口径更诚实)§3.2

2. 端覆盖矩阵(v3:把"编辑器端别"与"headless 端别"分开算)

端Cocos 3.8 编辑器/CLICocos cocos-cli(headless)Laya IDELaya 新 CLI(headless)包体(主/总)
微信✅❌ 无此端✅✅4MB / ≤30MB [实测]
抖音✅❌✅✅4MB / 20MB(支持开放数据域)
支付宝✅❌✅✅4MB / 20MB
淘宝✅(引擎插件)❌✅✅4MB / 20MB
华为快游戏✅❌(有 huawei-agc/harmonyos-next 原生端)✅✅代码包 10MB
小米快游戏❌ 无官方页❌✅✅4MB / RPK 30MB
OPPO / vivo✅ / ✅❌✅ / ✅✅ / ✅4MB / ——
荣耀✅❌❌——
Bilibili❌(社区适配帖)❌✅(v3.4.1 新增)✅4MB / 30MB
QQ 小游戏❌❌❌❌4MB / 20MB(小游戏侧上限未找到官方原文)
快手小游戏❌❌❌6MB / 30MB;上传只有 GUI + 扫码 [实测]
H5✅ web-mobile/web-desktop✅ web-desktop/web-mobile✅(单文件/CrazyGames/Poki)✅——
原生✅ Android/iOS/mac/Windows/鸿蒙/HMS/GP✅ android/ios/mac/windows/huawei-agc/harmonyos-next/ohos/google-play✅ LayaNative(Android/iOS/鸿蒙 NEXT/Windows(Steam)/Linux)✅ Win/Android/iOS/Linux资质门槛见 §6

这张表最重要的一格:Cocos 的 headless 列全是 ❌。也就是说 Cocos 的"全平台导出"能力只存在于需要图形会话的编辑器命令行里;一旦你的目标是"agent 在容器里把七端包都打出来",Cocos 现在做不到,而 Laya 声称做得到(未实证)。


3. AI 编码通道对比(核心章,v3 全面更新)

3.1 场景/预制体真源格式

项Cocos 3.8LayaAir 3
文件.scene/.prefab = JSON 文本(__type__/_id/_children/_components,引用 uuid,uuid 在配套 .meta)[代理查证].ls 场景 / .lh 预制体 / .lprefab(社区解析称 JSON,字段 type/props/child)
官方格式规范❌ 未找到官方"场景文本格式"规范页❌ 同样未找到(D65)
手写 JSON 的风险社区明确警告会"引用错乱" → 才出现第三方走 CLI 改 prefab 的件未验证(D65)
纯代码搭场景✅ 运行时 Prefab.instantiate/director.loadScene + 编辑器序列化 API(editor-extends/utils/serialize)✅ Scene.open/Scene.load,且 layaair create -t "2D empty project" 可不开 IDE

我在 2.4.15 存量工程量到的病(89% 内容在序列化 JSON)在两家都不会自动消失。两家官方都不给场景格式规范,这条本身就足以否决"让 agent 直改场景文件"的路线。

3.2 MCP / Agent 通道清单(v3 全部重核)

通道归属版本能力真实状态(v3)
Funplay MCP for Cocos第三方商店3.8+node/prefab/component,105 工具,编辑器内 HTTP 127.0.0.1:8765,带路径穿越检查可用 [代理查证];是 3.8 上唯一能用的场景级通道
cc-3-8-x-mcp / cocos-mcp-server社区3.8走 CLI 改 prefab(规避手写 JSON 引用错乱)存在,规模小 [代理查证]
cocos-mcp-2x社区 MIT2.4.x读写场景节点/资源/日志个人项目,作者 2.4.15 验证
cocos/cocos-cli + 内置 MCPCocos 官方只支持 COCOS 4,不支持 3.8命令:cocos create/build -p <platform>、cocos start-mcp-server --project --port、cocos simulator、全局 --no-interactive;MCP 域可从源码推断:scene/node/prefab/component/assets/builder/system/file-editor/engine/project/configuration⚠️ 435★/MIT(根目录无 LICENSE 文件)/需 Node 22+ + npm run init + npm link;--platform 只有 web-desktop/web-mobile/android/ios(源码另有 mac/windows/huawei-agc/harmonyos-next/ohos/google-play)→ 无任何小游戏端;MCP 工具清单无公开文档;文档称"无需 GUI"但整套绑在 4.0 alpha
PinK IDECocos 官方(论坛有专版)alpha"AI 驱动游戏全流水线"、内置 Agent、支持场景编辑,与 COCOS 4/cocos-cli 集成❌ 官方明示"请勿用于生产环境";0.0.1.18 Alpha(2026-05-09);火山引擎"万有"上架、0.01 元测试码、邀请码未大规模发放;许可与定价未找到
LayaAir IDE 内置 MCPLaya 官方IDE 3.3.6+,必须启动 IDE GUI,需 ai-console API Key宣称可写文件/建节点/设物理;限制"每会话重新导入项目"文档存在 [代理查证];性质与 Funplay 同档(人在场)
layabox/LayaAir-mcp-pluginLaya 官方组织——仅 create-cube-in-scene、import-model-to-scene❌ 2026-08-19 已归档只读、无 LICENSE、2★ → 不可依赖
layabox/layaair-skillsLaya 官方组织——只有 2 个技能:layaair-cli、layaair-ide-plugin;能力=建项目/构建/校验资源/导出 .layapkg/跑脚本/版本管理⚠️ 无"搭场景、挂组件"技能(2026-09-22 仍在更新)
layabox/layaair-cliLaya 官方组织Node 20+建项目/构建/校验/多端出包⚠️ 仓库只有 5 个文件(install.sh/ps1 + README + LICENSE),运行时本体闭源、安装时联网从厂商服务下载 → "开源"名不副实
参照:Phaser 4 自带 skills引擎官方——node_modules/phaser/skills/ 25 主题(含 v3→v4 迁移)[实测] 我写 Demo 时靠它对齐 v4 API

净结论(v3):

  • 改场景:Cocos 有件(3.8 第三方 105 工具 / 4.0 官方 MCP 但 alpha);Laya 基本没有(归档 + 无场景技能)。
  • 出包:Laya 有官方文档支持的无 GUI 路径;Cocos 没有(headless 无小游戏端,3.8 CLI 要图形会话)。
  • 也就是说:两家各自把一半能力留在了"未发布"或"闭源"里——Cocos 押在 4.0 alpha + PinK,Laya 押在闭源 CLI 二进制。

3.3 无头 / CI 能力

项CocosLayaAir 3
小游戏端 headless❌ 未找到(cocos-cli 无小游戏端;文档称可放 packages/platforms 插件自动扫描,但该目录在仓库里不存在)✅ 官方 CLI 文档列 10 端(H5/微信/抖音/OPPO/vivo/小米/华为/B站/支付宝/淘宝)
3.8 编辑器 CLI--project <path> --build "platform=X;debug=Y",命令串 ≤125 字符;configPath/logDest/stage/template-version;退出码 32=参数无效/失败、34=构建错误、36=成功;必须 GUI 会话(Jenkins 需 WindowServer/桌面 agent);已知坑:macOS 因文档换行符使 --build 失效(2025-08 已解决)老式 LayaAirIDE --project=… [--script=类.方法]:依赖已装 IDE,只 8 端(web/wxgame/bytedance/oppo/vivo/xm/alipay/tb)
Linux❌ 无官方支持(论坛 2025-02 无官方结论)🟡 文档列 Linux/x64/arm64,但未找到官方 CI yml 与 Linux 原生打包实证(D64)
官方 CI 示例❌ 未找到❌ 未找到
上传脚本化与引擎无关:微信 miniprogram-ci 2.1.31 ✅ 无需 IDE;抖音/QQ/B站/vivo/支付宝 CLI 见第四版 §5同

3.4 LLM 语料密度(决定幻觉率)

指标CocosLayaAir
引擎仓库 stars/forks、issue9,846★ [实测];cocos4 1,483★/92 issues;cocos-cli 435★/46 issues2,204★/545fork/仅 9 open issue
文档可核性高(3.0–3.8 + 4.0 全版本中文手册)中(多页 SPA 抓不到正文;文档源仓库 Doc-ZH 7★、Doc-EN 2★)
示例商店成品 + 论坛主题 ID 已排到 ~17.7 万NewUI-Examples 0★、旧 layaair-demo 101★ 但 2021 停更;示例在引擎仓库 src/samples
对 agent 的影响模型"记得 API"概率高更易编出不存在的 Laya API;且 issue 少≠没问题(反馈沉在自家论坛 4670 bug 帖,机器不可读)
缓解——tsc --noEmit + 契约测试 + 官方 API 站/layaair-skills 进上下文(对 Laya 是必需项)
份额证据的可信度⚠️ "收入最高 80% 游戏由 Cocos 开发"(2023 触控 CEO 演讲,媒体转述)、"荣誉榜满眼都是 Cocos"(官方博客)→ 都是宣传口径,不是第三方统计;招聘岗位数/商店 SKU 数未找到可核实数据未找到同类宣传,也未找到数据

3.5 两家共同的天花板(别指望换引擎绕过)

  1. agent 不能并行改场景(编辑器/IDE 单实例);
  2. 快手、百度两端每次上传都要 GUI + 扫码 [实测];
  3. miniprogram-automator 不覆盖小游戏(0.12.1,2023-11-06 起未更新 [实测])→ 自动验收只能"无头浏览器 + 喂帧"(Demo/ 已跑通);
  4. 变现层必须自写:没有任何一家提供跑在小游戏运行时里的 JS 广告聚合 SDK(TopOn/Taku、TradPlus、GroMore 都是 App 原生 SDK 或"跳转"方案);支付各端只有自家 API(wx.requestMidasPayment/tt.requestGamePayment/my.tradePay/快游戏各家联运)。iOS 小游戏内购 2026-03-15 已上线、2026-07 苹果开始封堵规避 IAP → 别再按"iOS 只能广告"设计;
  5. 两家都没有官方 CI 示例(这条对"AI 无人值守"是同一份作业要自己交)。

4. 技术能力对比(v3 补 Cocos 侧取证)

能力Cocos Creator 3.8LayaAir 3.4备注
2D 渲染✅ WebGL + Canvas 双管线✅ WebGL(3.5 路线 WebGPU)小游戏端都走 WebGL
UI 体系✅ Widget/ScrollView/RichText/EditBox/九宫格/Layout/Mask;⚠️ 无官方 List/VirtualList(社区与商店插件补位)✅ 经典 UI + 新 UI(官方称 FairyGUI 同构):Button/List/Panel/Box/VBox/TextInput/TextArea/Slider/ProgressBar/ComboBox/Tab/ViewStack/Dialog对"47 个面板"这种量级,Laya 自带 List 是实打实省工;但新 UI 实战成熟度未验证(D66)
3D✅ 前向 + 延迟管线、合批/UBR、光照阴影、后处理✅ ClusterLighting、Forward+、PBR/Unlit、反射探针、体积 GI、后处理、计算着色器、WebGPU3D 需求两家都不输
动画✅ Tween/Animation/Spine/DragonBones✅ 时间轴/骨骼/Animator2D 状态机/IK/动画烘焙/龙骨/Spine都不能让 agent 改 .spine/.riv 工程
物理✅ 项目设置→功能裁剪:3D 可选 builtin/bullet/PhysX/cannon.js,2D box2d;⚠️ PhysX 有包体与 x86 安卓限制✅ 内置模块:2D Box2D、3D Bullet/PhysX;Cannon 为附加库都要避开 WASM 件(WXWebAssembly 只支持 instantiate(path) 且 .wasm 须在代码包内)
分包/远程/热更✅ Asset Bundle + 远程 + 分包官方页 + 原生热更;⚠️ 小游戏端代码热更的官方声明未找到;已知坑:微信远程 AssetBundle 更新需清缓存✅ 分包(IDE 勾选)+ URL.basePath;Native 热更 zip 更新 / LayaDCC 2.0(有"无法本地保存"反馈)两边都要自己趟
Worker未取证✅ 官方列多线程 WorkerLaya 加分
空包体积⚠️ 官方数字未找到;社区实测首包约 1.8MB(未核实)🟡 官方博客:2D 空场景 943KB、3D 1.5MB(并称友商 1.8M/2.7M)[官方声明]4MB 主包下这是实质差异,但两边都得自己实测(D70)
iOS 内存/性能官方指南✅ 专页:2GB 机型约 1GB、3GB 约 1.4GB,建议 ASTC、禁动态合批、贴图分包、精简音频字体;高性能模式/引擎插件需勾选❌ 未找到(只有微信平台通用指南)Cocos 加分(这条对线上崩溃率影响大)
第三方性能监测——✅ UWA GPM 2.0(2026-08-27)覆盖 LayaAir 微信/抖音线上帧率/内存/崩溃运维加分

5. 版本线、生态与团队成本

项CocosLayaAir
当前可依赖版本3.8.8(2025-12-16,LTS) [实测];3.8.7(2025-08-22)引擎 v3.4.1(2026-08-31)与 3.3.13(2026-09-17)并行发版;节奏 2–4 周一版
下一代COCOS 4:仓库 cocos/cocos4 只到 4.0.0-alpha.34(2026-09-20),无 GA;cocos-engine 无任何 v4 tag;但 docs.cocos.com 已有"4.0 (LTS)"手册(含命令行发布 + 微信小游戏页)→ 文档与实现不一致;3.8→4.0 迁移指引未找到3.5 路线(WebGPU/多线程)有访谈级信息 [官方声明]
社区口径论坛主题 ID ~17.7 万;2026-06 有用户反映"Cocos4 无 IDE,需 PinK 或 CLI""前朝剑斩当朝官难行"ask.layabox 活跃(4670 bug 帖 / 11433 2D 帖,最新 2026-10-05),但机器不可读
商店/插件✅ store.cocos.com(含 AI 扩展、成品模板、TopOn/TradPlus 商业插件文档)IDE 内置包管理(.layapkg),规模未取证
招人/外包明显容易难
稳定性反馈热点大项目卡顿/打包内存溢出、微信远程 AssetBundle 需清缓存、2.x→3.x 历史包袱Spine / 2D 物理 / Camera2D(3.4.1 更新说明与近期提交集中在这些)

6. 许可与费用(v3 纠正了一处)

项CocosLayaAir
引擎许可✅ v3.8.8 的 LICENSE.md 就是标准 MIT(Chukong 2013–2016 + 厦门雅基 2017–2023),无流水门槛、无 splash 要求;GitHub 显示 NOASSERTION 仅因仓库内含多份第三方许可文件 [代理查证]MIT [实测]
下一代许可cocos4 仓库 MIT、cocos-cli MIT(但根目录无 LICENSE 文件);发布稿声明"脱离原 Cocos Creator 全部商业约定" [官方声明]同
编辑器/IDE免费下载商用,2026 无收费条款(未找到反证);PinK 许可与定价未找到⚠️ 未找到 IDE 商用授权书面条款;官方博客承诺"基础功能永久免费、不收引擎使用费与版权费、无流水分成" [官方声明]
云服务service.cocos.com 计费页(页面日期 2021-01-11)只列第三方服务(声网/腾讯云 TCB/MGOBE/GME),无云构建;"Cocos Build Service"产品与定价未找到未找到
AI 产品费用——LayaIdea 插件版需 IDE 3.3.9+、token/积分计费、无公开价目表
平台侧(两家同)iOS 小游戏内购 2026-03-15 上线、2026-07 苹果封堵规避 IAP;国区安卓上架要营业执照+网文证+增值电信+ISBN 版号+软著同

给法务:Cocos 3.8 的 MIT 是文件级可核的(本轮已核);Laya 的免费是引擎 MIT + 博客承诺,IDE 侧查无书面条款——一个是白纸黑字,一个是查无此文(D67)。


7. 风险清单(按能否推翻选型排序)

Cocos 侧(v3 大幅补充)

#风险证据缓解
K1headless 侧没有小游戏端构建能力(cocos-cli 平台清单只有 web/原生;宣称的 packages/platforms 插件目录不存在)[代理查证]出包必须走 3.8 编辑器 CLI + 图形会话节点;或改选 Laya/R3
K2押注的"AI 原生"路线在未发布产品里:4.0 只到 alpha.34、无 GA 编辑器;PinK alpha + "请勿用于生产" + 邀请码 + 许可未明[代理查证]3.8 开工;4.0 每季度复评(D71)
K3文档与实现不一致:4.0 手册已写"命令行发布 + 微信小游戏",引擎却是 alpha[代理查证]只按 3.8 手册做决策
K43.8 CLI 需 GUI 会话、无 Linux、命令串 ≤125 字符、macOS 换行符坑、退出码语义不透明官方文档 + 论坛构建机 + 退出码门禁(36/32/34)+ 参数写文件传
K5官方 MCP 无工具清单文档(只能从源码目录推断);3.8 的场景自动化实际靠第三方件(Funplay 105 工具、cc-3-8-x-mcp)[代理查证]第三方件先只读试;关键操作留回滚脚本
K6缺 小米/B站/QQ/快手 官方端手册逐条数过 [实测]自建或社区件
K7无官方 List/VirtualList;小游戏端代码热更无官方声明;引擎最小体积无官方数字[代理查证]列表用商店/社区件前先测;热更方案自验(D70)
K8大项目卡顿/打包内存溢出、微信远程 AssetBundle 更新需清缓存社区帖构建内存与缓存策略写进 CI

LayaAir 侧

#风险证据缓解
L1场景级 AI 自动化无可用件(MCP 插件 2026-08-19 归档、skills 无场景技能、IDE 内置 MCP 要 GUI+Key+每会话重导)[代理查证]界面一律代码化(Scene.open/load)
L2CLI "开源"名不副实:仓库 5 个文件、运行时闭源、安装联网从厂商服务拉[代理查证]把 CLI 二进制缓存进制品库;受限网络先验(D64)
L3官方《AI开发路线》明写**"AI 单独完整生成游戏"暂不支持**[官方声明]把 agent 定位成"写代码 + 跑构建"
L4无官方 CI 示例、无 iOS 内存指南、无场景文件格式规范[代理查证]自建 docs/platform-spec/ + 包体/内存门禁
L5版本线并行(3.4.1 与 3.3.13 同时在发),3.4 是否"稳定推荐线"无官方口径[代理查证]锁一条线写进 README(D63)
L6实操坑:macOS unknown script(官方答复把脚本移进 src)、Native 工程升级引擎版本困难、LayaDCC 2.0 无法本地保存社区论坛原生端上线前先验一次"升级引擎"
L7语料薄 → 幻觉 API;GitHub 仅 9 open issue(反馈在自家论坛,机器不可读)§3.4tsc + 契约测试强制;关键决策一律 spike
L8IDE 商用授权条款未找到;LayaNative2.0 仓库无 LICENSE;LayaIdea 积分无价目表[代理查证]规模化前书面确认(D67)

8. 两条最小可行工作流

8.1 选 Cocos Creator 3.8 LTS

骨架:assets/scripts/**.ts(真源)、唯一 Main.scene、界面一律代码建(禁 prefab 拖拽)、
      config/tables/*.json、extensions/funplay-mcp、tools/build.sh(--build + 退出码断言)
门禁:tsc --noEmit → eslint(禁业务层直连 wx.*)→ web 构建 → 无头浏览器喂帧断言 →
      各端构建(Win/mac 图形会话节点,参数写文件传,断言退出码 36)→ miniprogram-ci preview
agent 分工:代码/数值/关卡/构建脚本 = Mode A 全自动;改场景 = Mode B(MCP,人在场)

8.2 选 LayaAir 3

骨架:src/**.ts(引擎源码可读)、场景 .ls 压到最少、界面代码建、config/*.json、
      tools/laya-build.sh(新 CLI,10 端 + 原生),CLI 二进制缓存进制品库
门禁:同上;锁版本线(3.3.x 或 3.4.x)写进 README
开工前必做(三条,各半天):
  ① 干净 Linux 容器里用新 CLI 出微信包 → 验证"无 GUI"是否真成立(D64)
  ② agent 纯代码搭 3 个面板 → 量 tsc 首轮通过率与人工干预次数(D72)
  ③ 2D 空场景出包实测体积 → 复核官方 943KB 口径(D70)

9. 最终建议

9.1 对撞测试现在是签选型的前置条件(不是可选项)。同一份"3 屏弹窗 + 1 个战斗场景 + 1 张数值表",两边各让 agent 做一遍,记 6 个数:① tsc 首次通过所需轮次;② 人工干预次数;③ 能否在纯 Linux 容器里出微信小游戏包;④ 2D 空包体积;⑤ 出包后无头喂帧断言是否全绿;⑥ 改一个界面需要几步(代码 vs MCP/IDE)。我可以照 Demo/ 的门禁风格把脚本与打分表做出来(D73)。

9.2 三条可直接引用的硬结论(来自本轮取证):

  1. "全平台小游戏导出"目前只有一条可依赖路径 = 引擎编辑器 + 其 CLI 包装;两家都没有 QQ/快手官方端。
  2. cocos-cli 的 headless 构建不支持任何小游戏端,不能作为 CI 全平台方案;Cocos 的 CI 自动化实际要绑 4.0 alpha。
  3. COCOS 4 / PinK 全在 alpha/邀请制,MIT 已落地但工程兼容与迁移无官方指引 → 全新项目押 4.0 = 押未发布产品。

9.3 无论选谁都要做的三件事(它们才是"AI 能不能完成全部"的决定项):界面代码化纪律、platform/ 归一层(含 ads.ts/pay.ts)、无头喂帧门禁。


10. 待确认 D49–D73

#问题状态 / 默认值
D49Cocos 3.8 实际 LICENSE✅ 已核:v3.8.8 LICENSE.md 为标准 MIT,无门槛无 splash(NOASSERTION 是元数据现象)
D50Laya 官方 AI 件能力✅ 已核:MCP 插件已归档、skills 无场景技能、IDE 内置 MCP 需 GUI+Key → 场景自动化空白
D51cocos-cli 平台清单与 MCP 工具面✅ 已核:平台只有 web/原生(无小游戏端);MCP 无公开工具清单,源码有 11 个 api 域;只支持 4.0,不支持 3.8
D52Laya CLI 是否需图形会话✅ 已核:官方称无 GUI 依赖、可 GitHub Actions(老式 LayaAirIDE --project 仍需 IDE)
D53快游戏联盟与微信 API 差异无官方对照表只做华为,其余 T+3 月
D54必须端清单(B站/小米/荣耀/QQ/快手?)按"微信+抖音+支付宝+H5"评估
D55语料差距未做严格计数用 D72 对撞测试替代
D56Laya UI 组件体系✅ 已核:经典 UI + 新 UI(FairyGUI 同构)+ 组件清单;实战见 D66
D57Laya 热更✅ 已核:Native zip 更新 + LayaDCC 2.0(有本地保存问题反馈)
D58引擎空包体积🟡 Laya 官方 943KB/1.5MB [官方声明];Cocos 官方数字未找到(社区 1.8MB 未核实)→ 实测见 D70
D59Laya 收费口径✅ 部分已核:引擎 MIT + 博客承诺免费无分成;IDE 书面条款仍未找到(D67)
D60多家文档 SPA 抓不到正文建 docs/platform-spec/ 人工存证
D63Laya 锁 3.3 还是 3.4 线未定;默认锁 3.3.x
D64Laya 新 CLI 在干净 Linux 容器/受限网络下能否真出包⚠️ 决定 Laya 路线成立与否,开工前必验
D65Laya .ls/.lh 是否含不可读 ID、IDE 对手写场景的容忍度未取证 → spike
D66Laya 新 UI 实战成熟度(性能/虚拟列表/编辑器支持)未取证 → spike
D67Laya IDE 书面授权条款规模化前书面确认
D68要不要我出对撞测试脚本 + 打分表建议要(升级为前置条件,见 D73)
D69Cocos 3.8→4.0 迁移指引未找到押 4.0 前必须拿到官方迁移说明
D70两家 2D 空包实测体积(4MB 主包预算的直接变量)对撞测试里量
D71COCOS 4 GA 时间表(现在只有 alpha.34)每季度复评;不作为 2026 生产依赖
D72agent 在两家上首次 tsc 通过率与人工干预次数对撞测试里量
D73对撞测试要不要我做等你点头(本轮只写文档,未动 Demo/)

附录 A:证据(v3)

Cocos(本轮子代理取证,关键项我抽核)

LayaAir

平台与变现(两家共用)

附录 B:本轮明确"未取证"的格子

Laya 新 CLI 在干净 Linux 容器/受限网络下的真实可用性(D64)、.ls ID 规范(D65)、新 UI 实战(D66)、IDE 书面授权(D67);Cocos 的 3.8→4.0 迁移指引(D69)、4.0 GA 时间表(D71)、官方引擎最小体积(D58/D70)、官方 MCP 工具清单(D51 已核到"无文档")。其中 D64/D66/D70/D72 各半天 spike 即可关掉——这是本报告唯一想让你先做的事。