Files
game-demo/doc/项目纲要-参考.md
2026-07-02 23:06:14 +08:00

564 lines
8.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# FPS 多人联机 Demo 开发纲要Unity + C#
> **项目代号Project Mercury暂定**
>
> **项目定位:**
>
> 一个用于学习 FPS 游戏开发全流程的多人联机 Demo以 CS2 为参考对象,学习现代 FPS 游戏开发架构与技术,为后续原创游戏《未来之城》积累技术基础。
---
# 一、项目目标
## 技术栈
| 模块 | 技术选型 |
| ---- | ----------------------------------------------- |
| 游戏引擎 | Unity 6URP |
| 编程语言 | C# |
| 网络同步 | Netcode for GameObjects后续可迁移 Mirror / FishNet |
| 后端服务 | Spring Boot |
| 数据库 | MySQL |
| 缓存 | Redis |
| 登录认证 | JWT |
| 通信 | HTTP + WebSocket |
| 版本管理 | Git |
| 美术工具 | Blender、ProBuilder |
| IDE | JetBrains Rider / Visual Studio |
---
# 二、开发目标
## Demo 功能
- 第一人称射击
- 多人联机
- AI Bot
- 基础枪械
- 一张完整地图
- UI 系统
- 音效系统
- 登录大厅
- 房间系统
最终形成一个可以正常游玩的 FPS Demo。
---
# 三、项目目录规划
```text
Assets
├── Art
├── Audio
├── Materials
├── Models
├── Prefabs
├── Scenes
├── ScriptableObjects
├── Scripts
│ ├── Core
│ ├── Player
│ ├── Weapon
│ ├── Enemy
│ ├── Network
│ ├── UI
│ ├── Manager
│ ├── Utils
│ └── Editor
├── Shaders
└── StreamingAssets
```
---
# 四、开发阶段
---
# 第一阶段:项目基础框架
## 周期
**预计2 周**
## 学习内容
- Unity 工程规范
- Git 工作流
- Input System
- ScriptableObject
- Addressables
- 游戏初始化流程
- 场景管理
## 实现目标
- 创建 Unity 项目
- 主菜单
- 设置菜单
- 游戏入口
- 摄像机系统
- 工程目录规范
## 阶段成果
✅ 可以正常进入游戏。
---
# 第二阶段:第一人称角色
## 周期
**预计2~3 周**
## 学习内容
- Character Controller
- Rigidbody
- 输入控制
- 摄像机控制
- 动画状态机
## 实现功能
- WASD 移动
- 鼠标视角
- 跳跃
- 下蹲
- 冲刺
- 重力
- 台阶处理
- 坡道处理
- (可选)滑步
## 阶段成果
实现类似 CS 的人物移动手感。
---
# 第三阶段:枪械系统
## 周期
**预计3 周**
## 学习内容
- Raycast
- 武器架构设计
- ScriptableObject 配置
- 动画
- 特效
## 枪械
- AK
- M4
- USP
- Knife
## 实现功能
- 射击
- 后坐力
- 子弹扩散
- 换弹
- 子弹数量
- 枪口火焰
- 抛壳
- 枪械动画
- 准星
## 阶段成果
完成基础枪械系统。
---
# 第四阶段:命中检测
## 周期
**预计2 周**
## 学习内容
- Raycast
- Layer
- Collider
- Physics
## 实现功能
- 爆头
- 身体伤害
- 命中特效
- 命中音效
- 木材反馈
- 金属反馈
- 玻璃反馈
## 阶段成果
完成完整射击反馈。
---
# 第五阶段AI 敌人
## 周期
**预计3 周**
## 学习内容
- NavMesh
- FSM有限状态机
- AI 行为树(后续)
## 实现功能
- 巡逻
- 搜索
- 追击
- 射击
- 死亡
- 重生
## 阶段成果
可以进行单人 PVE。
---
# 第六阶段:地图制作
## 周期
**预计3 周**
## 学习内容
- ProBuilder
- Blender
- 光照
- LOD
- Occlusion Culling
## 实现功能
制作第一张地图。
参考:
- Dust2
- Mirage简化
## 阶段成果
拥有完整可玩的地图。
---
# 第七阶段UI 系统
## 周期
**预计2 周**
## 实现内容
- 血量
- 护甲
- 子弹数量
- 准星
- 设置菜单
- 暂停菜单
- 死亡界面
- 排行榜
---
# 第八阶段:音效系统
## 周期
**预计1 周**
## 实现内容
- 枪声
- 脚步
- 环境音
- Hit Sound
- 混响
- 方向音
---
# 第九阶段:多人联机
## 周期
**预计4~6 周**
## 学习内容
- Client/Server
- RPC
- Tick
- Prediction
- Interpolation
## 实现功能
- 玩家同步
- 射击同步
- 血量同步
- 死亡同步
- 房间同步
- 聊天
## 阶段成果
多人在线游玩。
---
# 第十阶段:大厅服务器
## 周期
**预计3 周**
## 后端
Spring Boot
负责:
- 登录
- 注册
- JWT
- 好友
- 房间
- 匹配
## Unity Server
负责:
- 游戏逻辑
- 玩家同步
- 房间运行
整体架构:
```
客户端
HTTP/WebSocket
Spring Boot
匹配成功
Unity Dedicated Server
多人同步
```
---
# 第十一阶段:游戏模式
## 周期
**预计3 周**
## 实现玩法
- Death Match
- Team Death Match
- Bot 模式
后续扩展:
- 爆破模式
- 感染模式
- 夺旗模式
---
# 第十二阶段:性能优化
## 周期
**预计2~4 周(持续进行)**
## 优化内容
- Object Pool
- Addressables
- GPU Instancing
- LOD
- Occlusion
- GC 优化
- Profiler 分析
- 内存优化
---
# 第十三阶段:发布
## 周期
**预计2 周**
## 实现内容
- Windows 打包
- 自动更新
- Crash 日志
- 配置管理
- 版本管理
后续:
- Steam 发布
---
# 五、整体开发路线图
```text
第一阶段
██████
工程搭建
第二阶段
██████
人物控制
第三阶段
████████
枪械系统
第四阶段
█████
射击命中
第五阶段
███████
AI
第六阶段
███████
地图
第七阶段
█████
UI
第八阶段
███
音效
第九阶段
██████████
多人同步
第十阶段
██████
服务器
第十一阶段
██████
玩法
第十二阶段
████████████
优化
第十三阶段
████
发布
```
---
# 六、整体开发周期
| 阶段 | 内容 | 周期 |
| ----- | ------ | ----- |
| 第一阶段 | 项目框架 | 2 周 |
| 第二阶段 | 第一人称角色 | 2~3 周 |
| 第三阶段 | 枪械系统 | 3 周 |
| 第四阶段 | 命中检测 | 2 周 |
| 第五阶段 | AI 敌人 | 3 周 |
| 第六阶段 | 地图制作 | 3 周 |
| 第七阶段 | UI 系统 | 2 周 |
| 第八阶段 | 音效系统 | 1 周 |
| 第九阶段 | 多人联机 | 4~6 周 |
| 第十阶段 | 大厅服务器 | 3 周 |
| 第十一阶段 | 游戏模式 | 3 周 |
| 第十二阶段 | 性能优化 | 2~4 周 |
| 第十三阶段 | 打包发布 | 2 周 |
---
# 七、预计总开发周期
| 开发模式 | 预计时间 |
| --------------- | -------- |
| 全职开发 | 8~10 个月 |
| 业余开发(每天 2~3 小时) | 12~18 个月 |
---
# 八、开发原则
整个项目遵循以下开发流程:
## ① 学习原理
了解每个模块的底层原理和设计思想。
## ② 实现最小可运行版本MVP
先实现核心功能,确保功能可用。
## ③ 功能迭代
逐步增加动画、音效、特效、交互体验等细节。
## ④ 代码重构
每完成一个阶段,整理项目结构,优化代码设计,减少技术债。
## ⑤ 文档沉淀
记录开发过程中的设计思路、踩坑经验和解决方案,形成完整的项目文档。
---
# 九、最终目标
完成本项目后,将具备以下能力:
- 熟悉 Unity 游戏开发全流程
- 掌握现代 FPS 游戏架构设计
- 掌握 C# 面向对象开发
- 理解多人联机同步原理
- 熟悉客户端与服务器协同开发
- 具备完整游戏项目开发经验
- 为原创游戏《未来之城》的开发奠定坚实基础
> **一句话总结:**
>
> **先做一个"能玩、能联机、结构合理"的 FPS Demo学习现代游戏开发全流程再在此基础上逐步演进最终打造属于自己的原创游戏。**