# Multiplayer

> 多人游戏开发原则。架构、网络、同步。

- Skill: `misonl/multiplayer` (Agent Skill)
- Install (CLI): `npx skillmds@latest add misonl/multiplayer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/misonl/multiplayer/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: misonl (https://skillmd.com/u/misonl)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/misonl/multiplayer

---


# 多人游戏开发

> 网络架构与同步原则。

---

## 1. 架构选择

### 决策树

```
什么类型的多人游戏？
|
+-- 竞技 / 实时
|   +-- Dedicated Server（专用服务器，权威）
|
+-- 合作 / 休闲
|   +-- Host-based（基于主机，一个玩家作为服务器）
|
+-- 回合制
|   +-- Client-server（客户端-服务器，简单）
|
+-- 大型（MMO）
    +-- 分布式服务器
```

### 比较

| 架构 | 延迟 | 成本 | 安全性 |
| --- | --- | --- | --- |
| **Dedicated（专用）** | 低 | 高 | 强 |
| **P2P** | 可变 | 低 | 弱 |
| **Host-based（主机）** | 中 | 低 | 中 |

---

## 2. 同步原则

### 状态 vs 输入

| 方法 | 同步什么 | 最适合 |
| --- | --- | --- |
| **State Sync（状态同步）** | 游戏状态 | 简单、对象少 |
| **Input Sync（输入同步）** | 玩家输入 | 动作游戏 |
| **Hybrid（混合）** | 两者 | 大多数游戏 |

### 延迟补偿

| 技术 | 目的 |
| --- | --- |
| **Prediction（预测）** | 客户端预测服务器 |
| **Interpolation（插值）** | 平滑远程玩家 |
| **Reconciliation（和解）** | 修正错误预测 |
| **Lag compensation（延迟补偿）** | 回滚以进行命中检测 |

---

## 3. 网络优化

### 带宽减少

| 技术 | 节省 |
| --- | --- |
| **Delta compression（增量压缩）** | 仅发送变化 |
| **Quantization（量化）** | 降低精度 |
| **Priority（优先级）** | 重要数据优先 |
| **Area of interest（兴趣区域）** | 仅附近实体 |

### 更新率

| 类型 | 速率 |
| --- | --- |
| 位置 | 20-60 Hz |
| 生命值 | 变化时 |
| 库存 | 变化时 |
| 聊天 | 发送时 |

---

## 4. 安全原则

### 服务器权威

```
客户端: "我击中了敌人"
服务器: 验证 -> 抛射物真的击中了吗？
         -> 玩家处于有效状态吗？
         -> 时间上可能吗？
```

### 反作弊

| 作弊 | 预防 |
| --- | --- |
| Speed hack（速度挂） | 服务器验证移动 |
| Aimbot（自瞄） | 服务器验证视线 |
| Item dupe（复制物品） | 服务器拥有库存 |
| Wall hack（透视） | 不发送隐藏数据 |

---

## 5. 匹配

### 考量因素

| 因素 | 影响 |
| --- | --- |
| **Skill（技能）** | 公平比赛 |
| **Latency（延迟）** | 可玩的连接 |
| **Wait time（等待时间）** | 玩家耐心 |
| **Party size（队伍大小）** | 组队游玩 |

---

## 6. 反模式

| [FAIL]  禁止 | [OK]  推荐 |
| --- | --- |
| 信任客户端 | 服务器是权威 |
| 发送一切 | 仅发送必要的 |
| 忽略延迟 | 为 100-200ms 设计 |
| 同步精确位置 | 插值/预测 |

---

> **记住：** 永远不要信任客户端。服务器是真理之源。

