绘境AI — 项目模块架构与 MVP 覆盖度(前端覆盖核对版)
⚠️ 模块结构部分已被取代(2026-06-07):本文所列为旧 8 后端模块 视角(无 game-module-studio、无锁风门 Gate / 专区 Zone 映射)。模块清单与技术功能以 Doc B 2026-06-07-技术架构与模块.md(13 模块)为准;MVP 范围以 .agents/knowledge/mvp-scope-and-milestones.md 与 docs/agent-specs/2026-06-07-模块重划分-review.md 为准。 本文保留价值在于其独有的「PRD → 三仓三端前端页面覆盖核对」与 game-cloud 目录结构细节(这两部分 Doc B 未覆盖)。
生成时间:2026-06-06
命名约定:game-cloud / game-admin / game-studio
设计原则:云原生、职责单一、独立部署、按需扩缩
1. 三模块定位
| 模块 |
一句话定位 |
面向谁 |
技术栈 |
| game-cloud |
统一后端(Yudao Cloud fork 二开) |
所有前端 |
Java 17 + Spring Cloud Alibaba + MySQL |
| game-admin |
管理后台前端 |
运营/管理员 |
Vue3 + Element Plus (yudao-ui-admin-vue3 fork) |
| game-studio |
产品端前端(创作+消费) |
创作者/玩家 |
Vue3 + Vant + Vite(移动优先) |
2. 目录结构
game-cloud(后端 monorepo)
game-cloud/
├── game-gateway/ # API 网关
│ └── src/main/resources/application.yaml # 路由规则、限流、CORS
│
├── game-framework/ # 通用框架扩展(基于 yudao-framework)
│ ├── game-spring-boot-starter-security/ # OAuth2 + 匿名玩家 token
│ └── game-spring-boot-starter-mq/ # RocketMQ 消息定义
│
├── game-module-system/ # 【Yudao 原生】用户/角色/权限/租户/字典/OAuth2/短信
├── game-module-infra/ # 【Yudao 原生】文件存储/定时任务/消息中心/操作日志
├── game-module-bpm/ # 【Yudao 原生】工作流引擎(Flowable)
│
├── game-module-project/ # 【二开】游戏项目与生命周期
│ ├── game-module-project-api/ # DTO/枚举/Feign 接口
│ └── game-module-project-biz/ # Controller/Service/DO/Mapper
│ ├── controller/admin/ # 后台管理接口
│ ├── controller/app/ # 产品端接口(创作者用)
│ ├── service/project/ # 项目 CRUD
│ ├── service/version/ # 版本状态机
│ ├── service/draft/ # 设计草稿/分节
│ └── service/publish/ # 发布申请/审核对接 BPM
│
├── game-module-aigc/ # 【二开】AI 生成引擎
│ ├── game-module-aigc-api/
│ └── game-module-aigc-biz/
│ ├── controller/app/ # 创作者发起生成
│ ├── service/prompt/ # Prompt 解析 + 安全检测
│ ├── service/template/ # 玩法模板引擎(跑酷/躲避/收集/解谜/合成)
│ ├── service/llm/ # LLM 适配器(通义/DeepSeek/OpenAI)
│ ├── service/generation/ # 生成任务编排(MQ 异步)
│ └── service/fallback/ # 确定性回退生成器
│
├── game-module-runtime/ # 【二开】游戏运行时与包交付
│ ├── game-module-runtime-api/
│ └── game-module-runtime-biz/
│ ├── controller/app/ # 预览包交付端点(按版本)
│ ├── service/compiler/ # GameConfig → 可运行 Web 包
│ ├── service/package/ # 包存储/版本化/checksum
│ └── service/conversion/ # 小游戏转换(微信/抖音/快手)
│
├── game-module-feed/ # 【二开】游戏流与玩家互动
│ ├── game-module-feed-api/
│ └── game-module-feed-biz/
│ ├── controller/app/ # 游戏流列表/互动/举报(玩家用)
│ ├── controller/admin/ # 推荐管理/精选池/降权(运营用)
│ ├── service/recommend/ # 推荐引擎(规则+行为信号)
│ ├── service/interaction/ # 点赞/收藏/分享/举报
│ └── service/share/ # 分享页/分享卡片元数据
│
├── game-module-telemetry/ # 【二开】遥测与数据
│ ├── game-module-telemetry-api/
│ └── game-module-telemetry-biz/
│ ├── controller/app/ # /events/batch 事件摄取
│ ├── controller/admin/ # 数据看板(运营全局视图)
│ ├── service/ingest/ # 事件校验/限流/入库
│ ├── service/aggregate/ # 定时聚合(曝光/试玩/互动/留存)
│ └── service/dashboard/ # 创作者看板数据查询
│
└── deploy/
├── docker-compose.yml # 全栈本地启动
├── docker-compose.middleware.yml # 仅中间件
├── sql/ # 初始化 SQL(含 seed 数据)
└── nacos/ # Nacos 配置导入
game-admin(管理后台前端)
game-admin/ # fork yudao-ui-admin-vue3
├── src/
│ ├── views/
│ │ ├── system/ # 【Yudao 原生】用户/角色/菜单/字典/租户
│ │ ├── infra/ # 【Yudao 原生】文件/任务/日志/代码生成
│ │ ├── bpm/ # 【Yudao 原生】流程定义/审批
│ │ │
│ │ ├── game/ # 【二开】游戏业务后台
│ │ │ ├── project/ # 项目列表/详情/状态/创作者归属
│ │ │ ├── version/ # 版本管理/状态流转
│ │ │ ├── review/ # 审核队列/试玩预览/通过/拒绝/下架
│ │ │ ├── template/ # 玩法模板 CRUD/参数配置
│ │ │ ├── feed/ # 推荐管理/精选池/曝光控制/降权
│ │ │ ├── telemetry/ # 全局数据看板
│ │ │ ├── creator/ # 创作者管理/等级/扶持
│ │ │ └── content-safety/ # 内容安全/违规记录/封禁
│ │ └── ...
│ ├── api/game/ # 游戏业务 API 定义
│ └── ...
├── package.json
└── vite.config.ts
game-studio(产品端前端)
game-studio/ # 独立项目,面向创作者+玩家
├── src/
│ ├── views/
│ │ ├── auth/ # 登录/注册/手机号验证
│ │ │
│ │ ├── feed/ # 游戏流(首页)
│ │ │ ├── FeedPage.vue # 滑动即玩列表
│ │ │ ├── GameCard.vue # 游戏封面卡片
│ │ │ └── FeedInteraction.vue # 点赞/收藏/分享/举报浮层
│ │ │
│ │ ├── play/ # 试玩
│ │ │ ├── PlayPage.vue # 游戏运行页(Canvas 容器)
│ │ │ ├── GameResult.vue # 游戏结束/分数/再玩/下一个
│ │ │ └── SharePage.vue # 外部分享落地页
│ │ │
│ │ ├── creator/ # 创作工作台
│ │ │ ├── ProjectList.vue # 我的项目列表
│ │ │ ├── CreateProject.vue # 创建项目(Prompt/模板选择)
│ │ │ ├── GenerationStatus.vue # 生成进度/成功/失败/重试
│ │ │ ├── DraftEditor.vue # 草稿编辑(标题/简介/封面/标签/参数)
│ │ │ ├── PreviewPlay.vue # 预览试玩
│ │ │ └── PublishFlow.vue # 发布流程/检查清单
│ │ │
│ │ ├── profile/ # 创作者中心
│ │ │ ├── MyGames.vue # 已发布游戏+状态
│ │ │ ├── GameStats.vue # 单游戏数据看板
│ │ │ └── CreatorHome.vue # 公开主页
│ │ │
│ │ └── discover/ # 发现(P1)
│ │ ├── CategoryPage.vue # 分类/标签浏览
│ │ └── SearchPage.vue # 搜索
│ │
│ ├── components/
│ │ ├── game-runtime/ # 游戏运行时组件
│ │ │ ├── GameContainer.vue # Canvas 容器 + 生命周期管理
│ │ │ ├── GameLoader.vue # 资源加载 + 进度 + 错误兜底
│ │ │ └── GameControls.vue # 操作提示/暂停/退出
│ │ └── shared/ # 通用 UI
│ │ ├── NavBar.vue
│ │ ├── TabBar.vue
│ │ └── ErrorFallback.vue
│ │
│ ├── api/ # 后端 API 对接
│ │ ├── auth.ts
│ │ ├── project.ts
│ │ ├── aigc.ts
│ │ ├── feed.ts
│ │ ├── interaction.ts
│ │ ├── telemetry.ts
│ │ └── runtime.ts
│ │
│ ├── stores/ # Pinia 状态管理
│ │ ├── user.ts
│ │ ├── player.ts
│ │ └── creation.ts
│ │
│ ├── router/
│ ├── utils/
│ └── App.vue
│
├── public/
├── index.html
├── package.json
├── vite.config.ts
└── Dockerfile
3. MVP 功能覆盖度检查
逐条对照 MVP PRD Functional Requirements:
P0:AI游戏创作工作台
| PRD 需求 |
game-cloud 模块 |
game-studio 页面 |
game-admin 页面 |
覆盖 |
| 自然语言生成游戏 |
aigc → prompt + generation |
creator/CreateProject |
— |
✅ |
| 模板化创作入口 |
aigc → template |
creator/CreateProject |
game/template |
✅ |
| 素材与风格配置 |
aigc + infra-file |
creator/CreateProject |
— |
✅ |
| 预览与轻量编辑 |
runtime → compiler + package |
creator/DraftEditor + PreviewPlay |
— |
✅ |
| 生成任务状态 |
aigc → generation (MQ) |
creator/GenerationStatus |
— |
✅ |
P0:游戏发布与管理
| PRD 需求 |
game-cloud 模块 |
game-studio 页面 |
game-admin 页面 |
覆盖 |
| 站内发布 |
project → publish + bpm |
creator/PublishFlow |
game/review |
✅ |
| 游戏版本管理 |
project → version |
profile/MyGames |
game/version |
✅ |
| 游戏状态管理 |
project → version (状态机) |
profile/MyGames |
game/project |
✅ |
| 分享能力 |
feed → share |
play/SharePage |
— |
✅ |
P0:游戏流与玩家体验
| PRD 需求 |
game-cloud 模块 |
game-studio 页面 |
game-admin 页面 |
覆盖 |
| 游戏流浏览 |
feed → recommend |
feed/FeedPage |
— |
✅ |
| 即点即玩 |
runtime → 包交付 |
play/PlayPage + GameContainer |
— |
✅ |
| 互动反馈 |
feed → interaction |
feed/FeedInteraction |
— |
✅ |
| 基础推荐 |
feed → recommend |
feed/FeedPage |
game/feed |
✅ |
P0:内容审核与运营后台
| PRD 需求 |
game-cloud 模块 |
game-studio 页面 |
game-admin 页面 |
覆盖 |
| 审核队列 |
project → publish + bpm |
— |
game/review |
✅ |
| 内容安全检测 |
aigc → prompt (安全) + infra |
— |
game/content-safety |
✅ |
| 推荐管理 |
feed → recommend |
— |
game/feed |
✅ |
P0:账号与权限
| PRD 需求 |
game-cloud 模块 |
game-studio 页面 |
game-admin 页面 |
覆盖 |
| 用户登录 |
system (OAuth2/SMS) |
auth/ |
system/(原生) |
✅ |
| 角色权限 |
system (RBAC) |
— |
system/(原生) |
✅ |
| 用户资料 |
system (user profile) |
profile/CreatorHome |
— |
✅ |
P1:创作者数据看板
| PRD 需求 |
game-cloud 模块 |
game-studio 页面 |
game-admin 页面 |
覆盖 |
| 单游戏数据概览 |
telemetry → dashboard |
profile/GameStats |
— |
✅ |
| 创作者主页 |
project + telemetry |
profile/CreatorHome |
game/creator |
✅ |
| 数据反馈建议 |
telemetry → aggregate |
profile/GameStats |
— |
✅ |
P1:外部分发验证
| PRD 需求 |
game-cloud 模块 |
game-studio 页面 |
game-admin 页面 |
覆盖 |
| 分享页适配 |
feed → share |
play/SharePage |
— |
✅ |
| 渠道参数 |
telemetry → ingest |
— |
game/telemetry |
✅ |
| 小游戏包导出 |
runtime → conversion |
— |
game/project (导出入口) |
✅ |
4. 遗漏分析
| # |
MVP 需求 |
当前三模块能否覆盖 |
结论 |
| 1 |
匿名玩家(无需登录试玩,互动时触发登录) |
game-cloud system 需扩展匿名 token 机制 |
在 framework 层扩展,不需要新模块 |
| 2 |
内容安全检测(文本/图片/素材) |
需要对接外部内容安全 API(阿里绿网/腾讯天御) |
在 aigc 模块加 service/safety/,不需要新模块 |
| 3 |
游戏运行容器(前端 Canvas 沙箱) |
纯前端能力,在 game-studio components/game-runtime/ |
已覆盖 |
| 4 |
CDN 加速(游戏资源/封面) |
部署层配置,不是代码模块 |
deploy 配置解决 |
| 5 |
数据导出(团队复盘/投资人汇报) |
telemetry-admin 加导出接口 |
已覆盖 |
| 6 |
未成年人保护/防沉迷 |
MVP 后置,但需要字段预留 |
system 用户表加 birthDate,不需要新模块 |
结论:三模块 + 内部子模块拆分,完整覆盖 MVP PRD,无需第四个模块。
5. 如果未来需要拆分
当以下条件触发时,从 game-cloud 中拆出独立可部署服务:
| 触发条件 |
拆出模块 |
原因 |
| AI 生成调用量大、LLM 超时影响主服务 |
game-aigc-server 独立部署 |
隔离 LLM 的不稳定性,独立扩缩 |
| 游戏流 QPS 高、推荐计算重 |
game-feed-server 独立部署 |
高并发读,独立缓存策略 |
| 事件量爆增、数据看板查询慢 |
game-telemetry-server 独立部署 |
写入密集型,可独立用 ClickHouse |
| 游戏包构建 CPU 密集 |
game-runtime-server 独立部署 |
编译/转换是 CPU 密集型 |
MVP 阶段所有业务模块可以跑在同一个 JVM 里(单体启动模式),通过 Nacos 配置切换为微服务模式。 这是 Yudao Cloud 原生支持的能力。
6. 云原生能力映射
| 云原生关注点 |
实现方式 |
| 服务注册/发现 |
Nacos |
| 配置中心 |
Nacos(多环境、热更新) |
| API 网关 |
Spring Cloud Gateway(路由/限流/熔断/CORS) |
| 容器化 |
每个模块独立 Dockerfile + docker-compose |
| 编排 |
Docker Compose 先行 → 后续 K8s Deployment/Service |
| 健康检查 |
Spring Boot Actuator /health + readiness/liveness probe |
| 可观测性 |
OpenTelemetry + Prometheus + Grafana(metrics/traces/logs) |
| 弹性伸缩 |
K8s HPA(CPU/QPS 触发) |
| 消息异步 |
RocketMQ(生成任务/审核通知/事件摄取) |
| 对象存储 |
MinIO(本地)/ 阿里云 OSS(生产) |
| CI/CD |
GitHub Actions / GitLab CI → 镜像构建 → 推送 → 滚动更新 |
| 灰度发布 |
Gateway 路由权重 / K8s canary deployment |
| 密钥管理 |
Nacos 加密配置 / K8s Secret |
7. 总结
graph LR
subgraph 前端
STUDIO[game-studio<br/>Vue3+Vant<br/>创作者+玩家]
ADMIN[game-admin<br/>Vue3+ElementPlus<br/>运营+管理]
end
subgraph 后端
GW[Gateway]
subgraph game-cloud
SYS[system]
INFRA[infra]
BPM[bpm]
PROJ[project]
AIGC[aigc]
RT[runtime]
FEED[feed]
TELE[telemetry]
end
end
subgraph 中间件
NACOS[Nacos]
MYSQL[MySQL]
REDIS[Redis]
MQ[RocketMQ]
MINIO[MinIO]
end
STUDIO --> GW
ADMIN --> GW
GW --> SYS & INFRA & BPM & PROJ & AIGC & RT & FEED & TELE
三模块职责清晰,MVP PRD 全覆盖,无遗漏,无需新增第四模块。云原生能力通过 Nacos + Gateway + Docker + 可观测性栈落地,MVP 用 Compose 单机启动,生产平滑迁移 K8s。