docs: 新增联机方案选型(FishNet + FishySteamworks / Steam SDR)
This commit is contained in:
+293
@@ -0,0 +1,293 @@
|
|||||||
|
# Unity 低成本联机方案选型(Steam 全球联机 / 2–10 人 / 独立开发者)
|
||||||
|
|
||||||
|
> 文档性质:选型与实施蓝图。**不改动工程代码/包**,仅作决策依据。
|
||||||
|
> 数据快照:2026-09(结论基于官方文档与仓库实时状态,价格类条目请以官网为准)。
|
||||||
|
> 工程环境:Unity `6000.6.0f1`,URP 17.6,Input System 1.20,`Packages/manifest.json` 目前无任何网络包。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 0. TL;DR
|
||||||
|
|
||||||
|
| 项 | 结论 |
|
||||||
|
|---|---|
|
||||||
|
| 推荐方案 | **FishNet + FishySteamworks(Steam P2P / SDR)+ Steam Lobby** |
|
||||||
|
| 服务器成本 | **0**(玩家自建主机 + Valve 中继) |
|
||||||
|
| 联机形态 | **客户端-主机权威(client-host)**,非全 P2P 网状、非专用服务器 |
|
||||||
|
| 网络拓扑 | Steam Datagram Relay 中继,**无需公网 IP / 端口转发**,跨区域自动选路 |
|
||||||
|
| 一次性成本 | Steam Direct 上架费(约 $100/应用,需核实)+ 时间 |
|
||||||
|
| 主要风险 | Steam 渠道绑定、主机作弊/主机优势、主机迁移体验、Unity 6.6 较新 |
|
||||||
|
|
||||||
|
一句话:对 2–10 人合作/PvE 游戏,"玩家当主机 + Valve 免费中继" 是成本/体验最优解;把联机核心与 Steam API 解耦,保留未来加专用服务器的余地。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. 需求与约束
|
||||||
|
|
||||||
|
| 维度 | 取值 | 对选型的含义 |
|
||||||
|
|---|---|---|
|
||||||
|
| 平台 | Steam(全球发行) | 优先用 Steam 原生网络能力(SDR、Lobby、邀请) |
|
||||||
|
| 人数 | 2–10 人/房间 | 单房间小、并发房间多;不适合 MMO 式架构 |
|
||||||
|
| 团队 | 独立开发者(1 人或极小团队) | 运维预算 ≈ 0,必须选"无后台"方案 |
|
||||||
|
| 成本 | 低成本 | 免费/免版税库 + 零服务器费 |
|
||||||
|
| 玩法 | **合作 / PvE / 派对**,主机权威足够 | 可接受房主权威;反作弊要求低,无需专用服务器 |
|
||||||
|
| 编辑器 | Unity 6000.6.0f1 | 需确认第三方库的 Unity 6 兼容性 |
|
||||||
|
|
||||||
|
明确不在本期范围:竞技 PvP 反作弊、跨平台(主机/移动)、持久化账号与云存档后端。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. 推荐技术栈(冻结版本决策)
|
||||||
|
|
||||||
|
| 层 | 选型 | 获取方式 | 费用 |
|
||||||
|
|---|---|---|---|
|
||||||
|
| 网络框架 | **FishNet**(V4 系列) | UPM Git URL:`https://github.com/FirstGearGames/FishNet.git?path=Assets/FishNet`,或 Asset Store | 免费(源码许可,禁止用于同类网络库产品) |
|
||||||
|
| Steam 传输 | **FishySteamworks** | GitHub Releases 下载 `FishySteamworks.unitypackage` 导入 | 免费 |
|
||||||
|
| Steam API 绑定 | **Steamworks.NET** | `https://github.com/rlabrecque/Steamworks.NET` | 免费(MIT 系) |
|
||||||
|
| 大厅/邀请 | **Steam Matchmaking & Lobbies**(Steamworks 原生) | Steamworks SDK 内 | 免费 |
|
||||||
|
| 中继 | **Steam Datagram Relay (SDR)** | 随 Steamworks 网络 API 使用 | 免费(Valve 保留对异常带宽限制权) |
|
||||||
|
| 后端服务 | 无(本期不需要) | — | 0 |
|
||||||
|
| 本地开发传输 | **Tugboat**(FishNet 内置) | 随 FishNet | 免费 |
|
||||||
|
|
||||||
|
关键依据:
|
||||||
|
- FishNet 许可为 "worldwide, non-exclusive, no-charge, royalty-free",商业游戏不受限([LICENSE.md](https://github.com/FirstGearGames/FishNet/blob/main/LICENSE.md))。
|
||||||
|
- FishySteamworks 由 FishNet 作者一方维护,README 明确支持 "Peer to Peer to connect using the Steam relay",客户端通过主机 `steamId64` 连接([仓库](https://github.com/FirstGearGames/FishySteamworks))。
|
||||||
|
- FishNet 核心自带 Multipass,可**同时挂多个传输**,便于本地测试与未来扩展([Transports 目录](https://github.com/FirstGearGames/FishNet/tree/main/Assets/FishNet/Runtime/Transporting/Transports))。
|
||||||
|
|
||||||
|
### 安装顺序(供实施阶段直接照做)
|
||||||
|
1. 安装 FishNet(UPM Git URL 或 Asset Store)。
|
||||||
|
2. 安装 Steamworks.NET(注意 API Compatibility Level,见 §8)。
|
||||||
|
3. 放置 Steam 原生库:`steam_api64.dll`(Windows 64 位)等,确认运行时能被加载。
|
||||||
|
4. 导入 `FishySteamworks.unitypackage`。
|
||||||
|
5. 在 NetworkManager 上挂 `FishySteamworks` 传输组件,模式选 **Peer to Peer**,填入 `AppId`;需要时附加其自带的 `SteamManager`。
|
||||||
|
6. 本地双端联调时切回 **Tugboat**(原因见 §8)。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. 架构设计(client-host)
|
||||||
|
|
||||||
|
### 3.1 拓扑
|
||||||
|
```
|
||||||
|
Steam Lobby(房间元数据 / 好友邀请)
|
||||||
|
│
|
||||||
|
┌────────────┴────────────┐
|
||||||
|
│ │
|
||||||
|
[Host] ◄── SDR 中继 ──► [Client]×N (2–10)
|
||||||
|
权威逻辑 输入 + 表现
|
||||||
|
```
|
||||||
|
|
||||||
|
- **Host(玩家之一)**:跑权威模拟、刷怪、掉落、判定、存档。
|
||||||
|
- **Client**:只发输入,接收状态,做插值/预测表现。
|
||||||
|
- **禁止全 P2P 网状**:10 人网状 = 45 条连接,NAT/带宽/一致性都不可控。
|
||||||
|
|
||||||
|
### 3.2 连接时序
|
||||||
|
1. Host 启动 → 创建 Steam Lobby(`lobbyType`、`maxMembers=10`、写入版本号/地图/难度/模式到 lobby data)。
|
||||||
|
2. 其他人:好友邀请(Steam Overlay 邀请)或大厅列表加入。
|
||||||
|
3. 加入者读取 lobby data → 取 Host 的 `steamId64`。
|
||||||
|
4. 加入者 `ClientManager.StartConnection(steamId64)`(FishySteamworks)。
|
||||||
|
5. Host 校验客户端版本/Mod 一致性 → 分配 PlayerId → 同步场景 → 开始同步。
|
||||||
|
6. 断线:客户端自动重连(带退避);Host 掉线 → 主机迁移或结算结束(§3.4)。
|
||||||
|
|
||||||
|
### 3.3 同步策略(合作/PvE 场景)
|
||||||
|
- 同步频率:**20–30 Hz**(动作类取 30,慢节奏取 15–20)。
|
||||||
|
- 只同步必要字段:位置用**量化**(如 short 定点/单位向量),朝向用最低位宽;能同步"输入 + 确定性表现"的就不要同步结果。
|
||||||
|
- 开启 **Interest Management**(FishNet 支持按观察者裁剪),10 人小场景收益有限但可省带宽。
|
||||||
|
- 本地玩家做**客户端预测 + 服务器回滚校正**;其他玩家做**插值(interpolation buffer 100–150 ms)**。
|
||||||
|
- 权威判定(命中、拾取、伤害)一律在 Host 计算。
|
||||||
|
|
||||||
|
### 3.4 主机迁移(体验关键项)
|
||||||
|
合作游戏建议按"可接受中断"设计:
|
||||||
|
- 方案 A(推荐先做):**存档快照 + 重新组房**。Host 掉线后,最近快照存在每个 Client(或 Steam Cloud),剩余玩家重开房间并继续。
|
||||||
|
- 方案 B(后续):完整 host migration(选举新 Host、状态交接、连接重建),实现成本高,FishNet 只提供连接层能力,业务交接需自写。
|
||||||
|
|
||||||
|
### 3.5 分层原则(务必遵守)
|
||||||
|
```
|
||||||
|
Gameplay 逻辑 → NetworkBehaviour / RPC(不出现 Steam API)
|
||||||
|
Session 层 → Lobby / 邀请 / 房主 id(允许 Steam API)
|
||||||
|
Transport 层 → FishySteamworks(Steam)/ Tugboat(本地)/ 未来其它
|
||||||
|
```
|
||||||
|
好处:本地能用 Tugboat 调试;未来上 itch/Epic/主机时只替换 Session + Transport 层。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. 备选方案对比矩阵
|
||||||
|
|
||||||
|
| 方案 | 授权/费用 | 服务器成本(2–10 人,全球) | Steam 支持 | 上手难度 | 结论 |
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
| **FishNet + FishySteamworks** | 免费(源码许可) | **0**(玩家主机 + SDR) | **一方 Steam transport** | 中 | ⭐ 首选 |
|
||||||
|
| Mirror + FizzySteamworks | MIT 免费 | **0** | 第三方传输,维护偏慢(FizzySteamworks 最后 push 2025-07) | 中低(教程最多) | 次选 |
|
||||||
|
| Unity NGO + Relay/Lobby | 包免费;服务按 CCU/流量计费 | 低起步、随规模上升 | 无官方 Steam 传输,仅社区实现 | 低 | 快速原型可选 |
|
||||||
|
| Photon Fusion | 免费 100 CCU(限 1 个 App,含 0.3 TB/月);500 CCU $125/月;超额流量 $0.05–0.10/GB | 0 运维,随 CCU 涨 | 不依赖 Steam | 中低 | 多平台/托管优先时可选 |
|
||||||
|
| 自建 headless 服务器 | 库免费 | VPS $5–15/月 可跑多房间;或按分钟计费托管 | 可配 Steam Game Server + SDR | 高 | 竞技 PvP 才值得 |
|
||||||
|
| Steam Remote Play Together | 免费 | 0 | 原生 | 极低(零联网代码) | 仅 2–4 人本地同屏 |
|
||||||
|
|
||||||
|
引用:Mirror([仓库](https://github.com/MirrorNetworking/Mirror)、MIT、6.3k★、2026-09 活跃,但[核心 Transports 无 Steam](https://github.com/MirrorNetworking/Mirror/tree/master/Assets/Mirror/Transports))、FizzySteamworks([419★,2025-07](https://github.com/Chykary/FizzySteamworks))、NGO Steam transport([sagering 76★](https://github.com/sagering/UnityNetcodeSteamP2PRelayTransport)、[RaybelGames](https://github.com/RaybelGames/Steam-Network-Transport-for-NGO))、Photon([官方定价](https://www.photonengine.com/fusion/pricing))。
|
||||||
|
|
||||||
|
### 为什么不选它们
|
||||||
|
- **Mirror**:不是差,而是本需求下"一方 Steam 传输"这一条 FishNet 明显领先;Mirror 的 Steam 走社区库且更新慢。若你更看重中文教程密度,Mirror 仍可翻盘。
|
||||||
|
- **NGO + Relay**:免费额度够 2–10 人,但**没有官方 Steam 传输**,且超出后按 CCU/流量计费,长期成本与全球中继质量都劣于 SDR。
|
||||||
|
- **Photon Fusion**:免费 100 CCU 对合作游戏其实够用,但"限一个 App"且超额按 CCU 月费增长;已有 Steam 免费中继时属于额外支出。
|
||||||
|
- **专用服务器**:合作/PvE 无强反作弊需求,不值得引入运维。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. 成本明细(Steam-only 路线)
|
||||||
|
|
||||||
|
| 项目 | 金额 | 说明 |
|
||||||
|
|---|---|---|
|
||||||
|
| Steam Direct 上架费 | ≈ $100 / 应用,一次性(可回收,**需核实**) | 上架前必须先有 Steamworks 后台与 AppID |
|
||||||
|
| Steamworks SDK / SDR / Lobby | $0 | 随 Steam 免费提供 |
|
||||||
|
| FishNet | $0 | 免费许可,商业可用 |
|
||||||
|
| FishySteamworks / Steamworks.NET | $0 | 免费 / MIT 系 |
|
||||||
|
| 服务器/带宽 | $0 | 玩家主机 + Valve 中继 |
|
||||||
|
| **合计** | **≈ $100 + 你的工时** | 无经常性支出 |
|
||||||
|
|
||||||
|
可选支出:FishNet-Pro(Patreon/GitHub Sponsors,非必需)、专用服务器(若未来做竞技)、VPS(若自建大厅后端)。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. 带宽与时延预算(10 人,估算)
|
||||||
|
|
||||||
|
| 场景 | 同步频率 | 每客户端下行 | Host 上行 |
|
||||||
|
|---|---|---|---|
|
||||||
|
| 动作合作(10 人) | 30 Hz + 量化 | 20–60 KB/s | 约 50–150 KB/s(0.4–1.2 Mbps) |
|
||||||
|
| 慢节奏合作 | 15–20 Hz | 5–20 KB/s | 10–40 KB/s |
|
||||||
|
| 回合制/派对小游戏 | 事件驱动 | <5 KB/s | <10 KB/s |
|
||||||
|
|
||||||
|
- 结论:**普通家宽可承载**(Host 上行是最紧的资源,建议在 UI 上做"主机质量提示")。
|
||||||
|
- 跨洲房间物理时延不可消除(EU↔Asia 常见 200 ms+):靠 20 Hz + 插值 + 预测把体验做"顺",而不是追求低延迟。
|
||||||
|
- 优化抓手:位置量化、变化阈值发送、Interest Management、把非必要同步降到低频(10 Hz)。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. 实施路线图(建议里程碑)
|
||||||
|
|
||||||
|
| 阶段 | 内容 | 验收标准 |
|
||||||
|
|---|---|---|
|
||||||
|
| **P0 冒烟**(0.5–1 天) | 装包、Tugboat 本地双端跑通移动同步 | 编辑器 + 一个 build 互见、能移动 |
|
||||||
|
| **P1 Steam 直连**(1–2 天) | 用开发 AppID 480,`steamId64` 直连 | 两台设备(两个 Steam 账号)能进同一局 |
|
||||||
|
| **P2 Lobby/邀请**(2–4 天) | 建房、好友邀请、大厅列表、lobby data 显示人数/版本 | 从 Steam 好友列表一键进房 |
|
||||||
|
| **P3 玩法同步**(持续) | 权威判定、预测/插值、断线重连 | 10 人同局 30 分钟无崩坏、掉线可回 |
|
||||||
|
| **P4 发布前**(2–3 天) | 真 AppID、版本校验、主机迁移/存档快照、崩溃与日志上报 | 通过 Steam Playtest 多人验证 |
|
||||||
|
|
||||||
|
工时是独立开发者粗估,P0–P2 约一周可完成"能玩"的闭环。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 8. 开发与测试要点(高频踩坑)
|
||||||
|
|
||||||
|
1. **同机不能双开互连**:FishySteamworks 文档明确说明 Steam 限制同一设备两个 build/账号互连;本地双端调试请切 **Tugboat**。
|
||||||
|
2. **开发 AppID 用 480(Spacewar)**:发售前替换为真实 AppID;测试账号需拥有该 App。
|
||||||
|
3. **Steam 客户端必须运行**:未登录/离线模式下 SDR 与 Lobby 不可用,需在 UI 里给出明确提示。
|
||||||
|
4. **API Compatibility Level**:Steamworks.NET 通常需要 **.NET Framework**(而非 .NET Standard);改后确认其他依赖仍编译通过。
|
||||||
|
5. **原生库部署**:`steam_api64.dll` 必须随构建产物就位(按 Steamworks.NET 安装指南放置),否则运行时报初始化失败。
|
||||||
|
6. **Unity 6.6 兼容性**:编辑器版本很新,导入第三方库后先做一次全量编译与 Play 模式验证;关注过时 API 警告。
|
||||||
|
7. **版本一致性**:Build 版本/内容哈希写入 lobby data,Host 拒绝不匹配客户端(避免不同版本同局)。
|
||||||
|
8. **主机优势与作弊**:合作/PvE 可接受;若将来加 PvP,必须把判定搬到服务器或加校验,否则房主可作弊。
|
||||||
|
9. **渠道锁定**:Steam 传输不能在 itch/Epic/主机使用 → 保持 §3.5 分层,别把 Steam API 混进玩法代码。
|
||||||
|
10. **主机质量差异**:玩家主机性能/网络参差,需要"主机质量"UI 提示与最低上行门槛(如 <2 Mbps 时警告)。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 9. 风险登记
|
||||||
|
|
||||||
|
| 风险 | 概率 | 影响 | 缓解 |
|
||||||
|
|---|---|---|---|
|
||||||
|
| Unity 6.6 与第三方库不兼容 | 中 | 高 | 先做 P0 冒烟再投入玩法;必要时锁定 Unity 版本 |
|
||||||
|
| Steamworks.NET 配置错误导致初始化失败 | 中 | 中 | 严格按安装指南,CI 里加运行冒烟测试 |
|
||||||
|
| Host 掉线导致整局中断 | 高 | 中 | 快照 + 重开房(方案 A),后续再考虑迁移 |
|
||||||
|
| Host 网络差导致全房卡顿 | 中 | 中 | 主机质量提示、可选"推荐主机"、限制 10 人上限 |
|
||||||
|
| 未来要上非 Steam 平台 | 中 | 中 | 传输/会话分层,预留 Tugboat/UTP |
|
||||||
|
| 价格与政策变化(Steam/Photon/Unity) | 低 | 中 | 发布前复核官方定价页 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 10. 待核实清单(发布前必查)
|
||||||
|
|
||||||
|
- [ ] Steam Direct 上架费与回收政策的当前条款。
|
||||||
|
- [ ] Steam SDR 的带宽使用指引与是否存在限额/收费触发条件。
|
||||||
|
- [ ] FishNet / FishySteamworks 对 Unity 6000.6 的官方支持声明与最新 Release。
|
||||||
|
- [ ] Steamworks.NET 当前推荐的 UPM/包管理方式与 .NET 目标。
|
||||||
|
- [ ] 若改用 NGO 路线:Unity Relay/Lobby 的当前免费额度与计费口径。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 11. 参考链接
|
||||||
|
|
||||||
|
- FishNet 仓库与许可:https://github.com/FirstGearGames/FishNet | https://github.com/FirstGearGames/FishNet/blob/main/LICENSE.md
|
||||||
|
- FishNet 文档:https://fish-networking.gitbook.io/docs/ | Discord:https://discord.gg/Ta9HgDh4Hj
|
||||||
|
- FishySteamworks:https://github.com/FirstGearGames/FishySteamworks
|
||||||
|
- Steamworks.NET:https://github.com/rlabrecque/Steamworks.NET | 安装指南:https://kb.heathenengineering.com/assets/steamworks/installation
|
||||||
|
- Steam Datagram Relay:https://partner.steamgames.com/doc/features/multiplayer/steamdatagramrelay
|
||||||
|
- Steam Networking:https://partner.steamgames.com/doc/features/multiplayer/networking
|
||||||
|
- Steam Matchmaking & Lobbies:https://partner.steamgames.com/doc/features/multiplayer/matchmaking
|
||||||
|
- Mirror:https://github.com/MirrorNetworking/Mirror | FizzySteamworks:https://github.com/Chykary/FizzySteamworks
|
||||||
|
- Photon Fusion 定价:https://www.photonengine.com/fusion/pricing
|
||||||
|
- Unity Relay 文档:https://docs.unity.com/relay
|
||||||
|
- NGO Steam 传输(社区):https://github.com/sagering/UnityNetcodeSteamP2PRelayTransport | https://github.com/RaybelGames/Steam-Network-Transport-for-NGO
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 12. 视频教程现状(2026-09 核实)
|
||||||
|
|
||||||
|
### 12.1 先说结论
|
||||||
|
|
||||||
|
| 主题 | 视频教程覆盖 | 说明 |
|
||||||
|
|---|---|---|
|
||||||
|
| FishNet 基础(RPC / SyncVar / 生成 Player / 移动) | ⚠️ 仅 1 套中文合集(10 集,2022 年) | 够跑通入门,但版本偏旧 |
|
||||||
|
| FishNet 进阶(预测、对象池、兴趣管理) | ❌ 基本没有 | 只能读官方文档 |
|
||||||
|
| **FishySteamworks / Steam 传输** | ❌ **没有视频** | 只有官方 README + Discord,本方案最大的资料短板 |
|
||||||
|
| Steam Lobby / 好友邀请 | ❌ 没有中文视频 | 需读 Steamworks 文档 |
|
||||||
|
| Mirror(联网、部署、成品) | ✅ 中文视频较多(4 套 + PUN2 1 套) | 若"必须跟着视频学",这是选 Mirror 的现实理由 |
|
||||||
|
| 英文 YouTube | ❓ 当前环境无法访问,未验证不予列出 | 见 §12.4 建议自查关键词 |
|
||||||
|
|
||||||
|
**决策含义**:视频依赖度是选型的真实权重项。FishNet 的资料形态是"文档 + Discord",Mirror/NGO 是"视频 + 博客";两者都能做成,但学习方式不同。
|
||||||
|
|
||||||
|
### 12.2 FishNet 中文视频合集(目前唯一找到的一套)
|
||||||
|
|
||||||
|
UP 主:无法停止奔跑的马 | 合集:**Unity免费游戏网络库Fishnet使用教程(上)** | 共 10 集(2022-10 发布)
|
||||||
|
|
||||||
|
| # | 内容 | 链接 |
|
||||||
|
|---|---|---|
|
||||||
|
| 1 | 安装 | https://www.bilibili.com/video/BV1g14y177Nn/ |
|
||||||
|
| 2 | 生成 Player | https://www.bilibili.com/video/BV1nG4y1p7Ts/ |
|
||||||
|
| 3 | Transform 同步 | https://www.bilibili.com/video/BV1JT411N7F5/ |
|
||||||
|
| 4 | 客户端权威 | https://www.bilibili.com/video/BV1NT411N7qd/ |
|
||||||
|
| 5 | Player 移动 | https://www.bilibili.com/video/BV1514y177nU/ |
|
||||||
|
| 6 | 指定 Player 生成位置 | https://www.bilibili.com/video/BV1JW4y1H74n/ |
|
||||||
|
| 7 | 相机 Camera | https://www.bilibili.com/video/BV1zD4y1k74f/ |
|
||||||
|
| 8 | 生成子弹 | https://www.bilibili.com/video/BV1rV4y1L73x/ |
|
||||||
|
| 9 | 子弹运动 | https://www.bilibili.com/video/BV1z14y177BC/ |
|
||||||
|
| 10 | 子弹超时与碰撞销毁 | https://www.bilibili.com/video/BV1gD4y1C7RR/ |
|
||||||
|
|
||||||
|
- 配套工程代码:https://gitee.com/ghostking9/fishnet-tutorial
|
||||||
|
- ⚠️ **版本差异提醒**:录制于 2022 年(约 FishNet V3 时期),当前为 V4 系列,部分组件名/配置项/API 已变化。对不上时以官方文档为准,不要硬套。
|
||||||
|
|
||||||
|
### 12.3 Mirror / Photon 中文视频(同一 UP 主,可作概念对照)
|
||||||
|
|
||||||
|
| 主题 | 集数 | 链接 |
|
||||||
|
|---|---|---|
|
||||||
|
| Unity Mirror 网络游戏 API 官方教程(英文中字,译自 YouTube) | 10P | https://www.bilibili.com/video/BV1G7411w7Ve/ |
|
||||||
|
| Unity 多人联机 API Mirror 学习(一)安装 Mirror | 1P | https://www.bilibili.com/video/BV1e7411B7Wn/ |
|
||||||
|
| 如何在互联网上部署 Unity Mirror 网络游戏服务器 | 1P | https://www.bilibili.com/video/BV1Sb4y1f7sz/ |
|
||||||
|
| Unity 使用 Mirror 做的多人联网游戏(成品展示) | 22P | https://www.bilibili.com/video/BV1r7411e76U/ |
|
||||||
|
| Unity 使用 PUN2 多人联机游戏开发——入门篇 | 13P / 约 4h | https://www.bilibili.com/video/BV114411s7pw/ |
|
||||||
|
|
||||||
|
原版英文视频 ID(来自该 UP 主视频简介):Mirror 官方 API 教程 `oR9P0gSaAOU`,可在 YouTube 直接检索。
|
||||||
|
|
||||||
|
### 12.4 英文 / 官方资源(文字为主,链接均经核实)
|
||||||
|
|
||||||
|
- FishNet 入门文档:https://fish-networking.gitbook.io/docs/tutorials/getting-started/installing-fish-networking
|
||||||
|
- FishNet 官方 API 参考:https://firstgeargames.com/FishNet/api/api/index.html
|
||||||
|
- FishNet 源码架构索引(查类关系很快):https://deepwiki.com/FirstGearGames/FishNet
|
||||||
|
- FishNet 官方 Discord(Steam 传输问题主要靠这里):https://discord.gg/Ta9HgDh4Hj
|
||||||
|
- FishySteamworks 安装/配置(Steam 传输的唯一权威来源):https://github.com/FirstGearGames/FishySteamworks
|
||||||
|
- Steamworks.NET 安装指南:https://kb.heathenengineering.com/assets/steamworks/installation
|
||||||
|
|
||||||
|
> YouTube 在当前环境不可访问、搜索接口也不可用,故不列任何未核实的视频标题/链接。自查关键词:`FishNet Unity tutorial`、`FishySteamworks setup`、`Steamworks.NET Unity lobby`、`Steam Datagram Relay Unity`、`Unity Mirror FizzySteamworks`。
|
||||||
|
|
||||||
|
### 12.5 建议学习顺序(配合 §7 路线图)
|
||||||
|
|
||||||
|
1. **P0 之前**:跟 §12.2 的第 1–5 集跑通"两个进程互相看见并移动",不必追完全部 10 集。
|
||||||
|
2. **P1(Steam 直连)**:视频帮不上忙,按 FishySteamworks README 五步走 + Discord 提问。
|
||||||
|
3. **P2(Lobby/邀请)**:读 Steamworks Matchmaking 文档,对照 §3.2 的连接时序自查。
|
||||||
|
4. 若卡在概念层(RPC / SyncVar / 权威):用 §12.3 的 Mirror 系列做概念对照,概念是通用的。
|
||||||
Reference in New Issue
Block a user