1. 核心玩法概述
2026/4/15大约 8 分钟
1. 核心玩法概述:MOBA 是什么?我们要做什么?
本章你将掌握
| 技能 | 难度 | Godot节点 | 说明 |
|---|---|---|---|
| MOBA地图设计 | ⭐⭐⭐⭐ | Node3D + TileMapLayer | 三路对称地图搭建 |
| 导航寻路 | ⭐⭐⭐⭐ | NavigationRegion3D | 小兵和英雄的自动寻路 |
| 技能系统 | ⭐⭐⭐⭐⭐ | Area3D + RayCast3D | 弹道、范围、Buff/Debuff |
| 行为树AI | ⭐⭐⭐⭐⭐ | 自定义BTNode | AI队友的决策系统 |
| 状态同步 | ⭐⭐⭐⭐⭐ | SceneMultiplayer | 5v5网络对战同步 |
| 对象池 | ⭐⭐⭐ | 自定义ObjectPool | 小兵和弹道的性能优化 |
| 装备系统 | ⭐⭐⭐ | Resource | 装备数据与效果叠加 |
节点层级预览
HonorOfKings (Node3D)
├── GameCamera (Camera3D)
├── World (Node3D)
│ ├── Terrain (Node3D)
│ │ ├── GroundMesh (MeshInstance3D)
│ │ ├── NavigationRegion3D
│ │ └── RiverMesh (MeshInstance3D)
│ ├── Lanes (Node3D)
│ │ ├── TopLane (Path3D)
│ │ ├── MidLane (Path3D)
│ │ └── BotLane (Path3D)
│ ├── Buildings (Node3D)
│ │ ├── BlueBase (Area3D)
│ │ ├── RedBase (Area3D)
│ │ ├── BlueTowers (Node3D)
│ │ │ ├── Tower_Top_1 (Area3D)
│ │ │ ├── Tower_Top_2 (Area3D)
│ │ │ ├── Tower_Mid_1 (Area3D)
│ │ │ └── ...
│ │ └── RedTowers (Node3D)
│ ├── Jungle (Node3D)
│ │ ├── BlueCamp (Area3D)
│ │ ├── RedCamp (Area3D)
│ │ └── BossMonster (Area3D)
│ └── MinionSpawners (Node3D)
│ ├── BlueSpawner (Node3D)
│ └── RedSpawner (Node3D)
├── Heroes (Node3D)
│ ├── Warrior (CharacterBody3D)
│ │ ├── HeroModel (Node3D)
│ │ ├── CollisionShape3D
│ │ ├── NavigationAgent3D
│ │ ├── SkillManager (Node)
│ │ └── HealthBar (SubViewport + Sprite3D)
│ ├── Mage (CharacterBody3D)
│ └── Marksman (CharacterBody3D)
├── Projectiles (Node3D)
│ └── ObjectPool (Node)
├── Effects (Node3D)
│ └── VFXManager (Node)
├── GameManager (Node)
│ ├── EconomySystem (脚本)
│ ├── ItemShop (脚本)
│ ├── WaveManager (脚本)
│ └── VictoryChecker (脚本)
└── UI (CanvasLayer)
├── HUD (Control)
├── Minimap (Control)
├── SkillBar (Control)
├── ItemSlots (Control)
├── ScoreBoard (Control)
└── ShopPanel (Control)游戏核心节点
点击节点可跳转到对应文档查看详细说明。
系统架构图
┌──────────────────────────────────────────────────────────────┐
│ 王者荣耀 核心系统架构 │
├──────────────────────────────────────────────────────────────┤
│ │
│ 地图系统 │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ 三路地图 │ │ 防御塔 │ │ 野怪营地 │ │ 小兵刷新 │ │
│ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ │
│ └──────────┬──┴───────────┬──────────┘ │
│ ↓ ↓ │
│ 角色系统 ┌──────────────┐ │
│ ┌─────────┐ │ 战斗系统 │ │
│ │ 英雄属性 │───→│ 技能释放 │ │
│ │ 等级成长 │ │ 伤害计算 │ │
│ │ 装备加成 │ │ Buff/Debuff│ │
│ └─────────┘ └──────┬──────┘ │
│ ↓ │
│ ┌──────────────────────────────────┐ │
│ │ AI决策系统 │ │
│ │ 行为树 → 状态评估 → 战术决策 │ │
│ └──────────────────────────────────┘ │
│ ↓ │
│ ┌──────────────────────────────────┐ │
│ │ 网络同步系统 │ │
│ │ 状态同步 → 延迟补偿 → 断线重连 │ │
│ └──────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────┘1.1 MOBA 是什么?——给完全没玩过的你
你玩过"推塔"游戏吗?就是那种两队人马在地图上打架、推塔、最后拆掉对方基地的游戏。这就是 MOBA(Multiplayer Online Battle Arena,多人在线战术竞技游戏)。
一句话理解 MOBA
MOBA 就是"团队推塔游戏"——5 个人组一队,在地图上打怪升级买装备,沿着路线一路推塔,直到把对方老家拆了。
想象一下这样的场景:
- 你和 4 个队友组成"蓝队",对面 5 个人是"红队"
- 地图上有三条路(上路、中路、下路),每条路上都有双方的防御塔
- 你操控一个英雄角色(战士、法师或射手),从 1 级开始打怪升级
- 定时有小兵从基地出发,沿着三条路前进,帮你打塔
- 你可以打野怪赚金币,买装备让自己更强
- 最终目标:推掉对方所有的塔,拆掉对方的水晶(基地)
MOBA 核心术语速查表
| 术语 | 含义 | 生活比喻 |
|---|---|---|
| 英雄 | 你操控的角色 | 你自己,有独特技能的战士 |
| 小兵 | 定时刷新的 AI 士兵 | 自动行军的步兵 |
| 防御塔 | 路上的固定炮台 | 城墙上的箭塔,会自动打人 |
| 水晶 | 基地核心,被拆就输了 | 你的大本营 |
| 上/中/下路 | 三条主要通道 | 三条通往对方基地的路 |
| 野区 | 路和路之间的区域 | 路边的小树林,有野怪可以打 |
| 补刀 | 给小兵最后一击获得金币 | 抢最后一口蛋糕 |
| gank | 从野区突然冲出来偷袭 | 躲在暗处突然跳出来吓人 |
| 团战 | 多人同时打一仗 | 两军正面交锋 |
1.2 我们要做什么?
我们的目标是:用 Godot 引擎做一个简化版 MOBA 游戏。
"简化版"不代表简单——它保留了 MOBA 的所有核心玩法,只是把规模缩小到教学可承受的范围:
| 对比项 | 正式版王者荣耀 | 我们的简化版 |
|---|---|---|
| 英雄数量 | 100+ | 3 个(战士/法师/射手) |
| 地图大小 | 大型 3 路 | 中型 3 路 |
| 装备数量 | 上百件 | 15-20 件 |
| 玩家数量 | 5v5 | 1v1(带 AI 队友)或 5v5(网络) |
| 画面 | 高精度 3D | 简约 3D(2.5D 俯视角) |
为什么不做得和正式版一样?
一个完整的 MOBA 游戏需要上百人的团队开发数年。我们这个教程的目标是让你理解 MOBA 的核心系统设计,掌握地图搭建、技能系统、AI 决策、网络同步等关键技术。学完之后,你完全有能力在此基础上扩展更多英雄和功能。
1.3 三位英雄介绍
我们设计了三个不同定位的英雄,覆盖 MOBA 最核心的三种玩法:
战士——近战冲锋型
| 属性 | 数值 |
|---|---|
| 生命值 | 高 |
| 攻击力 | 中 |
| 移动速度 | 中 |
| 攻击距离 | 近战 |
技能设计:
| 技能 | 名称 | 效果 |
|---|---|---|
| 被动 | 战意 | 每次攻击叠加攻速,最多5层 |
| 技能1 | 旋风斩 | 挥砍周围敌人,造成范围伤害 |
| 技能2 | 冲锋 | 向指定方向冲刺,击飞路径上的敌人 |
| 大招 | 天崩地裂 | 跳起后重击地面,大范围眩晕+伤害 |
法师——远程爆发型
| 属性 | 数值 |
|---|---|
| 生命值 | 低 |
| 攻击力 | 高(技能) |
| 移动速度 | 中 |
| 攻击距离 | 远 |
技能设计:
| 技能 | 名称 | 效果 |
|---|---|---|
| 被动 | 法力回涌 | 技能命中敌人恢复少量法力 |
| 技能1 | 火球术 | 发射一颗火球,命中造成范围爆炸 |
| 技能2 | 冰冻领域 | 在指定区域释放冰环,减速并伤害敌人 |
| 大招 | 陨石天降 | 召唤巨型陨石,大范围高额伤害 |
射手——远程持续输出型
| 属性 | 数值 |
|---|---|
| 生命值 | 低 |
| 攻击力 | 中(普攻高) |
| 移动速度 | 快 |
| 攻击距离 | 最远 |
技能设计:
| 技能 | 名称 | 效果 |
|---|---|---|
| 被动 | 精准 | 攻击同一目标伤害递增 |
| 技能1 | 穿透箭 | 发射穿透箭矢,一条线上所有敌人受伤 |
| 技能2 | 翻滚 | 向移动方向翻滚,短暂提升移速 |
| 大招 | 箭雨 | 向指定区域发射密集箭雨,持续伤害 |
1.4 地图设计总览
我们的地图是一个对称的矩形,双方各占一半:
┌─────────────────────────────────────────────────┐
│ [蓝方基地] │
│ │ │
│ [塔]──上路──────────────────────[塔] │
│ │ │ │ │
│ │ [野怪营] [野怪营] │
│ │ │ │ │
│ [塔]──中路─────────────[河道]──────[塔] │
│ │ │ │ │
│ │ [野怪营] [Boss怪物] │
│ │ │ │ │
│ [塔]──下路──────────────────────[塔] │
│ │ │
│ [红方基地] │
└─────────────────────────────────────────────────┘为什么地图要对称?
公平!两边地图完全镜像,任何一方都不会因为地形优势而占便宜。这是 MOBA 游戏的基本设计原则。
1.5 游戏流程
一局游戏从开始到结束的完整流程:
1.6 技术选型一览
| 技术 | 用途 | 为什么选它 |
|---|---|---|
| Godot 4.x | 游戏引擎 | 免费、开源、3D + 网络支持好 |
| C# / GDScript | 编程语言 | Godot 原生支持 |
| NavigationRegion3D | 寻路系统 | 小兵和AI的自动寻路 |
| CharacterBody3D | 角色控制 | 英雄的移动和碰撞 |
| Area3D | 触发检测 | 技能范围、防御塔攻击范围 |
| AnimationPlayer | 动画系统 | 英雄攻击、施法动画 |
| GPUParticles3D | 粒子特效 | 技能特效、击杀效果 |
| ENetMultiplayerPeer | 网络模块 | 5v5联机对战 |
| Resource | 数据定义 | 英雄属性、装备数据 |
1.7 章节导航
本章带你了解了 MOBA 游戏的核心概念和我们项目的目标。接下来,我们要开始搭建项目了。
学习路线建议
这是整个实战篇中最复杂的项目。建议你已经完成了前面至少 2-3 个实战项目(尤其是"3D割草"和"中国象棋"),对 Godot 的节点系统、AI、网络有一定基础后再来挑战。
| 下一章 | 内容 |
|---|---|
| → 2. 项目搭建与场景配置 | 创建项目、配置地图场景、组织文件 |
1.8 本章小结
| 要点 | 说明 |
|---|---|
| MOBA | 多人在线战术竞技游戏,核心玩法是团队推塔 |
| 项目目标 | 用 Godot 实现简化版 MOBA(3英雄、3路地图、AI+网络) |
| 三种英雄 | 战士(近战)、法师(远程爆发)、射手(远程持续) |
| 核心系统 | 地图、英雄、技能、防御塔、小兵、装备、AI、网络 |
| 技术栈 | Godot 4.x + NavigationRegion3D + Area3D + 行为树AI + 网络同步 |
