OPALL

OPALL-P-004 · PROJECT · 准备中 PREPARING

GameGen-Lab

AI 原生游戏生成实验线

一个把创意提交、Agent 生成任务、bundle/manifest 和沙盒试玩串起来的 AI 原生游戏实验线。当前以原型和证据整理为主,不写成完整已完成项目。

01是什么WHAT IT IS

GameGen-Lab 探索从游戏创意到可试玩包的生成链路,包括任务编排、资源清单、运行包和试玩环境。

02为什么重要WHY IT MATTERS

AI 游戏项目容易停留在"生成了内容"的展示层。可追问的重点应该是任务如何拆、产物如何记录、试玩如何复现。

03架构方向ARCHITECTURE

原型串起了从创意到试玩的闭环骨架:创作者提交自然语言创意,Agent Orchestrator 建异步生成任务(可选接 OpenAI 兼容模型),任务产出可读日志和可移植的 HTML 游戏 bundle;manifest 与 bundle 落对象存储,元数据落 SQLite;创作者预览后发布,Play 页按 manifest 契约把远端 bundle 装进沙盒 iframe 试玩。这条链里生成链路已实现,bundle 与试玩环节仍是原型(见下节证据状态)。每一步都留下 artifact——日志、manifest、bundle、库记录,可追问。

创意提交硬校验 · 用户输入 任务建单task id · status 生成编排模型路径 / 兜底路径 Artifactlog · manifest · bundle 对象存储bundle / manifest SQLite 元数据game · task · owner 发布闸人工确认 · draft→published Play 页只读 manifest 契约 沙盒 iframe受限运行环境

图 P-004 · 从创意到试玩的闭环骨架:生成只是中段,发布闸和沙盒试玩才是外部后果的边界。

组件上刻意零外部依赖:Node 原生 HTTP、node:sqlite、本地对象存储、原生前端——交付包按 Node >=24 的本地环境设计,拿到私有交付包后可用 npm start 本地复现。迁移的口子留在接口上,没焊死在实现里:对象存储将来可以换 S3/OSS,编排器可以接真实模型供应商,SQLite 走数据访问层可以迁 Postgres;Play 端只认 manifest 契约,不认具体组件。沙盒是安全边界:生成的游戏代码只在受限 iframe 里加载,不给宿主权限。

04证据状态EVIDENCE STATUS

Implemented:生成任务链路、任务状态、发布闸、manifest、bundle 访问和沙盒试玩的私有原型实现。项目方向属于定位,不计入已实现。

Prototype:bundle/manifest、沙盒试玩和生成记录已形成一套私有证据包:包含流程截图(封面 / 大厅 / 类型 / 创作 / 任务 / 试玩)、任务编排说明、artifact 协议和数据模型记录。公开页只展示脱敏后的证据摘要,不提供实现入口。

首份实测记录:2026-07-06,macOS · Node v26.4.0:npm test 通过(生成、发布、manifest、bundle 访问、鉴权、CSRF 与上传类型等关键路径);npm run audit:local 通过(26 项必需文件、20 项安全标记、20 个语法文件);npm run package:delivery 生成本地交付包;本地服务在 127.0.0.1:4173 返回可用,健康检查记录 users=2 · games=15 · publishedGames=15 · tasks=15 · succeededTasks=15

Planned:一个公开可访问的在线 demo。它是最后主要缺的一块——原型是有状态的 Node 服务(本地 SQLite + 磁盘对象存储 + 会话),需要常驻运行环境,静态托管替代不了,故单独留作下一步。

为什么整档仍标"准备中":档案状态跟随证据链完整度,而不是代码进度——在线 demo 落地之前,本档案不转"已发布"。有原型、有测试、有截图、有走查,仍不等于外部访问者能亲手玩到。

公开状态 → 实现与交付包留在私有侧;对外只保留脱敏架构、验证结果和演示截图。

05证据链走查WALKTHROUGH

一条从创意到可试玩的可复现链路,标出每步留下的 artifact、人工审核落在哪、失败怎么处理。以下公开为脱敏走查,完整实现与交付包留在私有侧。

  1. 创意提交(硬校验)。创作者提交自然语言创意,服务端先校验——创意少于 10 字符直接以 400 拒绝,不产生空任务。垃圾输入止于门口,是链路的第一道过滤。
  2. 异步任务建单。生成走异步任务,任务带状态位;创作者凭任务 id 查进度,越权查他人任务返 403。任务是可追问的最小单元。
  3. 生成(可复现兜底)。先做确定性设计,配了 OpenAI 兼容模型则调模型、没配就走本地确定性兜底——缺模型环境变量时安全跳过而非报错,这是"不依赖外部服务即可克隆重跑"的关键。
  4. 产物落地。可移植 HTML bundle 与 manifest 落对象存储、元数据落 SQLite,每步留 artifact,事后可逐件核对。
  5. 人工审核闸(关键)。生成只产出草稿,发布是独立的显式动作(POST /api/games/{id}/publish);未发布的游戏他人不可见(403)。"生成 ≠ 上线",中间强制过人。
  6. 沙盒试玩。Play 页按 manifest 契约把 bundle 装进受限 iframe 运行,未发布或非作者访问被拦——沙盒既是运行环境,也是安全边界。
  7. 健康自检。服务探活会实际探测数据库与对象存储的可达性,而不是只回 200;探不到即如实报不可用。

失败不是笼统的 try/catch,是一套明确的 HTTP 语义:创意过短 400、未登录 401、越权看任务或访问未发布游戏 403、邮箱占用 409、请求体/上传超限 413、上传类型不支持 415、频率过高 429(提示稍后重试)。模型不可用时退回本地确定性设计而非中断——降级路径本身就是可复现性的一部分

06边界BOUNDARY

不承诺成熟商业发行系统,不把一次生成效果当作稳定生产能力,不公开未授权素材或私有配置。

属性声明:本项目为纯个人业余项目,用个人时间、个人设备与公开资料独立完成,不含任何非公开代码、数据、素材或未公开信息。

07下一步NEXT

证据链走查、人工审核闸与失败处理已补齐(见第 05 节)。剩下的关键一步是把原型部署成公开可访问的在线 demo——受限于它是有状态 Node 服务,需要常驻运行环境,这一步单独推进;落地即转"已发布"。

相关 → N-009 · 长任务生成系统的工程边界 · F-012 · Agent 的房间:沙箱与权限入门 · F-013 · 怎么知道你的 Agent 变好了:评测入门