# Multiplayer

> 多人游戏开发原则。架构、网络、同步。当用户要求'多人游戏开发'时使用。

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

---


# 多人游戏开发

> 网络架构和同步原则。

---

## 1. 架构选择

### 决策树

```
什么类型的多人游戏？
│
├── 竞技 / 实时
│   └── 专用服务器（权威）
│
├── 合作 / 休闲
│   └── 主机式（一个玩家是服务器）
│
├── 回合制
│   └── 客户端-服务器（简单）
│
└── 大型（MMO）
    └── 分布式服务器
```

### 对比

| 架构 | 延迟 | 成本 | 安全性 |
|--------------|---------|------|----------|
| **专用** | 低 | 高 | 强 |
| **P2P** | 可变 | 低 | 弱 |
| **主机式** | 中等 | 低 | 中等 |

---

## 2. 同步原则

### 状态 vs 输入

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

### 延迟补偿

| 技术 | 用途 |
|-----------|---------|
| **预测** | 客户端预测服务器 |
| **插值** | 平滑远程玩家 |
| **和解** | 修正错误预测 |
| **延迟补偿** | 回退命中检测 |

---

## 3. 网络优化

### 带宽减少

| 技术 | 节省 |
|-----------|---------|
| **增量压缩** | 只发送变化 |
| **量化** | 降低精度 |
| **优先级** | 重要数据优先 |
| **兴趣区域** | 仅附近实体 |

### 更新频率

| 类型 | 频率 |
|------|------|
| 位置 | 20-60 Hz |
| 生命值 | 变化时 |
| 物品栏 | 变化时 |
| 聊天 | 发送时 |

---

## 4. 安全原则

### 服务器权威

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

### 反作弊

| 作弊 | 预防 |
|-------|------------|
| 加速挂 | 服务器验证移动 |
| 自瞄 | 服务器验证视线 |
| 物品复制 | 服务器拥有物品栏 |
| 透视 | 不发送隐藏数据 |

---

## 5. 匹配

### 考虑因素

| 因素 | 影响 |
|--------|--------|
| **技能** | 公平匹配 |
| **延迟** | 可玩连接 |
| **等待时间** | 玩家耐心 |
| **队伍大小** | 组队游戏 |

---

## 6. 反模式

| ❌ 不要 | ✅ 要 |
|----------|-------|
| 信任客户端 | 服务器是权威 |
| 发送所有内容 | 只发送必要的 |
| 忽略延迟 | 为100-200ms设计 |
| 同步精确位置 | 插值/预测 |

---

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

## 何时使用
此技能适用于执行概述中描述的工作流程或操作。

## 限制
- 仅当任务明确匹配上述范围时使用此技能。
- 不要将输出替代特定环境的验证、测试或专家审查。
- 如果缺少必要的输入、权限、安全边界或成功标准，请停止并请求澄清。

