从原神、三角洲,到星露谷、我的世界,看懂一个游戏的架构是怎么搭起来的
很多同学用 AI 做游戏时都踩过同一个坑:出一个问题,AI 就修一处;再出一个,再修一处。 代码、逻辑、数值、美术全糊在一起,越改越乱,最后自己都不知道动了哪里。 这不是 AI 笨,是游戏"没分层"。 这一课,我们就把商业游戏引擎(Unity / Unreal)真正的分层思路讲清楚—— 让你在动手之前,先想明白:哪些用代码写,哪些用数据填,谁负责哪一块。
假设你想把手枪伤害从 20 调成 25。如果游戏没分层,这个 20 可能被硬写在了好几处代码里——
开枪判定里一处、伤害结算里一处、UI 显示里又一处。AI 帮你改了一处,漏了另一处,
于是"改完更乱"。根因只有一个:逻辑、数据、代码,全搅在一锅里。
不管 2D 还是 3D、不管什么引擎,一个像样的游戏都能拆成这五层。越往上越"具体、常改",越往下越"通用、稳定"。
模型、贴图、动画、音效、UI 图、剧情文本。就是画面和声音本身。
数值表、掉落表、关卡参数、角色属性。纯数据,不是代码(配置表 / JSON / ScriptableObject)。
什么条件触发什么、怎么判定输赢、任务如何推进。游戏的"玩法规则"。
战斗系统、背包系统、任务系统、存档、状态机。一套套可复用的"机制框架"。
渲染、物理、输入、音频、网络。不关心你做什么游戏,只提供底层能力。
这三个概念,是所有主流引擎的地基。理解了它们,你就理解了"专业游戏为什么不会一改就崩"。
不是写一个几千行的"敌人大类",而是把它拆成一个个可插拔的组件。想让这个敌人会开车?加一个"载具"组件就行,不用重写。组合,优于继承。
把"敌人"做成一个模板(Unity 叫 Prefab 预制体),场景里放 100 个都是它的实例。想给所有敌人加个头盔?改模板一次,一百个全更新。
function 开枪(gun){
伤害 = 读表(gun, "damage")
扣血(目标, 伤害)
}
| 武器 | damage | 后坐力 |
|---|---|---|
| 手枪 | 25 | 1.2 |
| 步枪 | 18 | 2.4 |
| 狙击 | 90 | 5.0 |
代码只写"怎么开枪",具体每把枪多少伤害放进一张表。调平衡就是改表格里的数字——Unity 里叫 ScriptableObject,Unreal 里叫 Data Asset,通俗说就是"配置表"。代码一行不动,也就不会引入新 bug。
还有第四招 可视化脚本:Unreal 的 蓝图 Blueprint 把逻辑画成一张流程图,策划不写代码也能连线做玩法——这正是"逻辑和底层代码分离"的极致,也是 AI 更容易编辑的形态。
| 概念 | Unity 里叫 | Unreal 里叫 | 解决什么 |
|---|---|---|---|
| 物体 = 零件拼装 | GameObject + Component | Actor + Component | 解耦,想加功能就插组件 |
| 可复用的模板 | Prefab 预制体 | Blueprint Class | 复用,改一处全生效 |
| 数据与代码分离 | ScriptableObject | Data Asset | 数值可安全编辑 |
| 逻辑与代码分离 | Visual Scripting | 蓝图 Blueprint | 非程序员也能改玩法 |
开放世界 3D · 米哈游(HoYoverse)· 深度定制的 Unity 管线
军事射击 · 腾讯天美 J3(琳琅天上)· 主体 UE4,战役模式用 UE5
像素农场 · ConcernedApe 一个人做出来的 · 手写引擎(后迁移到 MonoGame)
沙盒建造 · 把"数据与资产分离"做成了官方标准
好消息:分层的思想完全通用。不同的,主要是最底层(引擎)和最表层(资产);中间那三层,2D 和 3D 长得几乎一样。
| 维度 | 2D | 3D |
|---|---|---|
| 空间 | X / Y 平面 + 图层前后 | X / Y / Z 三维 + 深度 |
| 渲染 | Sprite 精灵图 / 瓦片地图 | 网格 + 材质 + 光照 + Shader |
| 相机 | 正交(没有近大远小) | 透视(有景深、有视角) |
| 物理碰撞 | 矩形 / 圆形 2D 碰撞 | 碰撞体 / 射线 / 刚体 |
| 资产 | 图片、图集、2D 骨骼 | 模型、贴图、3D 骨骼动画 |
| 中间三层 | 几乎完全通用 —— 背包、任务、数值、对话系统,2D 和 3D 写法一样 | |
所以,你在 2D 里学会的分层习惯,搬到 3D 完全用得上。换维度换的是"引擎能力"和"美术形式",不变的是"怎么把游戏拆干净"。
现在回头看开头那个"头痛医头"的坑,答案就清楚了。混在一起时,AI 改一处就动全身,你根本不敢让它放手改; 而分好层之后,AI 的活动范围被框住了:
一句话:你分层分得越干净,AI 就越帮得上忙、越不容易帮倒忙。架构不是给程序员的负担,而是你和 AI 协作时的"安全护栏"。
下次让 AI 帮你做游戏,别一上来就说"帮我写个游戏"。先花五分钟,回答这五个问题。