English | 中文
一款 Unity 的商业级 F2P 方块消除手游,全程由 Claude + Funplay Unity MCP 驱动做出来——代码、场景/预制装配、PlayMode 验证全是 AI 智能体在跑。美术由图像模型生成 + 程序化扣图,音频用程序合成。没有手写的玩法代码,没有买来的素材。
这个仓库是一次实验的产物:从空工程开始,全程只用 Claude + Funplay Unity MCP(再加一个图像生成模型出美术、numpy 程序合成音频),做一款"看起来像正经商业产品"的休闲手游,并把每一步写成系列文章。
做出来的是一款无尽计分的方块消除游戏,带着商业 F2P 该有的整套**"留存 + 变现机器"**:随进度缩放的经济曲线、内购商城、每日连签、离线收益、皮肤、道具、数据运营接缝,外加满屏 juice。核心玩法只占 5%,剩下 95% 才是它和"小游戏 demo"的区别。
| 首页 | 局内 | 商城(随进度缩放) |
|---|---|---|
![]() |
![]() |
![]() |
| 实时换肤重染 | 死局结算(复活 / 再来) |
|---|---|
![]() |
![]() |
- 用 Unity 6000.3+(URP)打开本工程;
- 打开
Assets/Scenes/Boot.unity,按 Play——GameInit初始化全部系统(领离线奖励 → 加载Game场景)→ 进首页; - 点"开始游戏"拖方块消行列。也可以直接打开
Assets/Scenes/Game.unity按 Play(自给自足)。
竖屏 720×1559。工程用新版 Input System;真人鼠标/触屏可正常拖放。
经典的"框架分层 → 数据驱动 → 事件解耦",每一层都是一集文章拆出来的:
| 层 | 关键类 | 做什么 |
|---|---|---|
| 框架 | Property(自动存档) · MsgController(事件总线) · Singleton · PoolManager · ResManager |
存档、解耦、对象池 |
| 启动 | GameInit(Boot 入口) · GameBootstrap.InitAll(按依赖顺序装配) |
启动链、可被测试直接调 |
| 玩法 | BlockGameController · BoardModel · Piece · Scoring |
落子 → 消行列 → 计分 → 死局判定 |
| 内容数据化 | DifficultyConfig(ScriptableObject) |
难度随分数缩放,改数值不改代码 |
| 经济 | EconomyConfig · CoinModel |
金币随玩家进度(最高分)缩放的变现曲线(同价 SKU ×118) |
| 商城/内购 | ShopConfigDatabase · ShopController · ShopIapController(#if 守卫真 IAP) |
展示价现算 + 发放与 IAP 解耦可测 |
| 留存 | RetentionController · DailyRewardConfig |
离线收益(8h 封顶)+ 每日连签 |
| 皮肤 | ThemeConfig · ThemeModel |
免费/金币/最高分解锁,整盘实时重染 |
| 表现 | GameView · AudioManager · Easing |
缓动/连消/ParticleSystem 迸裂 + 程序合成音频 |
| 运营 | AnalyticsManager · RemoteConfig · LiveOps · AssetService |
埋点 / 远程配置 / 不发版开活动 / 热更接缝 |
| UI | UIManager · Panels · UIKit |
运行时 uGUI 搭首页/局内/商城/每日/皮肤/结算 |
逻辑层用项目内自检类钉死(不依赖 Unity Test Framework,直接在编辑器跑),150 条断言全绿:
// 在 Funplay MCP 的 execute_code 或任意编辑器入口里调:
BlockBlast.Game.Ep2SelfTest.Run(); // 核心玩法 13
BlockBlast.Level.Ep3SelfTest.Run(); // 数据化难度 11
BlockBlast.Shop.Ep4SelfTest.Run(); // 经济曲线 13
BlockBlast.Shop.Ep5SelfTest.Run(); // 商城+内购 9
BlockBlast.Retention.Ep6SelfTest.Run(); // 留存 24
BlockBlast.Presentation.Ep7SelfTest.Run(); // 表现 23
BlockBlast.Ops.Ep8SelfTest.Run(); // 数据运营 23
BlockBlast.Ep9SelfTest.Run(); // 端到端集成 18
BlockBlast.Game.Ep10SelfTest.Run(); // 道具 16Ep9SelfTest 跑一次端到端集成(GameBootstrap.InitAll 把全部系统串成一条启动链),证明这些系统合在一起是一款连贯的游戏而不是一堆零件。
这套纯 AI 工具链对"几何/极简 + 颜色 + 手感"撑起来的休闲品类,可以端到端做到商业级的可玩竖切。但真正"上架的成品"还差后端服务、真机打磨、专业作曲/骨骼动画那"最后一公里"——这些这个品类用得少,但要发行就得补。
- 工具:Funplay Unity MCP —— 在 Unity 编辑器里跑的 HTTP MCP 服务,让 AI 客户端驱动编辑器与 PlayMode。
- 配套系列文章《全程用 AI 做一款商业级手游》EP0–EP10 正在知乎 / CSDN 连载,逐集拆解这个工程是怎么一块块搭起来、并用 MCP 边做边测的。
MIT © 2026 Funplay




