《游戏服务端架构》是一套四卷本:卷一《品类、状态与拓扑》、卷二《核心系统与契约》、卷三《规模化、全球化与成本》、卷四《平台化与架构治理》。本页是卷一的完整目录,共 45 篇。
卷一回答的是“选什么拓扑、为什么”。它先把品类还原成一组可测量的产品事实,再讨论状态、时间、连接与权威四个基础变量,最后用竞技、SLG、休闲、开放世界四类产品做对照,并以三张架构基线卡和一张决策矩阵收口。核心系统的实现留给卷二。
全书概览
| 项目 | 内容 |
|---|---|
| 书稿 | 《游戏服务端架构·品类、状态与拓扑》 |
| 篇数 | 45 篇(13 章 × 3 节 + 序、前言、目录、附录 A–C) |
| 贯穿案例 | 北辰工作室:《裂隙战场》《群岛纪元》《泡泡工坊》 |
| 技术栈 | Go 1.26.0;本地验证工程 gsarch-lab |
| 运行级别 | 卷一以 L1 为主;关键链路用 L2;L3 只写实际跑过的部分 |
| 阅读方式 | 从目录与学习路径 进入顺序通读,或按下方路径跳读 |
| 上级专题 | 书稿专题 |
| 相关专题 | 游戏服务端笔记 · 架构设计 |
四条阅读路径
路径 A:顺序通读(约 30 小时)
按章节顺序读。第 1–2 章建立品类与决策语言,第 3–6 章处理拓扑、状态、时间、连接与权威,第 7–10 章进入四类产品,第 11–13 章落到部署、表达与收口。每章至少跑通一节 L1 代码。
路径 B:带着产品来(约 8 小时)
先读 1.3 判断自己的品类落在哪种拓扑,再跳到对应章节:竞技读第 7 章,SLG/MMO 读第 8 章,休闲/卡牌/小游戏读第 9 章,开放世界/UGC 读第 10 章;最后用第 11、13 章检查部署与基线。
路径 C:只关心决策(约 4 小时)
读 1.2、1.3、2.1–2.3,再读 13.1–13.2 与附录 B/C。适合正在做技术选型、评审或需要判断“这个方案要多少人月”的负责人。
路径 D:只看代码与测试
从每节的 // file:、// tier:、// verify: 标记进入 gsarch-lab,按 go test ./internal/<包>/ 逐个跑。代码覆盖状态机、分配器、分片路由、会话迁移、预测回滚、反作弊评分、经济账本、帧同步、延迟补偿、回放、合服、离线结算、部署校验、故障域与决策矩阵。
全书目录
前置与附录
| 篇 | 文章 | 核心内容 |
|---|---|---|
| 序 | 序:为什么还要写一套游戏服务端架构书 | 为什么写这套书;与《MMO 服务器开发》的分工 |
| 前言 | 前言:技术选型、案例与可运行性口径 | 技术基线、案例构造、L1–L3 口径与复现方式 |
| 目录 | 目录与学习路径 | 十三章结构、三条阅读路径与可运行性说明 |
| 附 A | 附录 A 术语表 | 六组术语与常见混淆对照 |
| 附 B | 附录 B 北辰三款产品决策矩阵 | 三款产品事实、特征向量、基线卡与矩阵用法 |
| 附 C | 附录 C 游戏服务端架构评审清单 | 评审十步清单、暂停条件与一页纸结论模板 |
第一部分:问题与决策(第 1–2 章)
第 1 章 游戏服务端的架构问题
| 节 | 文章 | 核心内容 |
|---|---|---|
| 1.1 | 1.1 游戏服务端到底在为谁做架构 | 三类读者、四个特殊性、房间状态机与状态所有权表 |
| 1.2 | 1.2 三类延迟预算:帧、操作、结算 | 帧/操作/结算三类预算、分位数口径、可执行预算检查 |
| 1.3 | 1.3 品类如何决定拓扑:北辰三款产品 | 六个产品事实、五种拓扑、三款产品的选择与退出条件 |
第 2 章 架构决策方法
| 节 | 文章 | 核心内容 |
|---|---|---|
| 2.1 | 2.1 质量属性与无法回避的取舍 | 十二条质量属性场景、冲突矩阵、场景结构校验 |
| 2.2 | 2.2 ADR:把决策、备选与后果写下来 | ADR 最小结构、三份订单域 ADR、代码校验退出条件 |
| 2.3 | 2.3 一次真实的架构评审与风险台账 | 一次评审的三个争议、风险台账六字段与评分排序 |
第二部分:基础与谱系(第 3–6 章)
第 3 章 拓扑谱系
| 节 | 文章 | 核心内容 |
|---|---|---|
| 3.1 | 3.1 单体、分层与模块化单体 | 五个模块与允许依赖表、三色环检测、拆分触发条件 |
| 3.2 | 3.2 大厅、房间与战斗:竞技品类的标准形态 | 大厅/房间/分配器三层、暖池与租约、幽灵房间复盘 |
| 3.3 | 3.3 分区、分服与全球同服 | 赛区路由与闭区间、再均衡不丢格证明、数据驻留约束 |
第 4 章 状态与时间
| 节 | 文章 | 核心内容 |
|---|---|---|
| 4.1 | 4.1 内存态、持久态与快照 | 内存态/持久态/快照、频率与成本、恢复流程 |
| 4.2 | 4.2 tick、帧预算与世界时钟 | 世界时间与固定步长、补帧/丢弃/漂移、四个测试场景 |
| 4.3 | 4.3 离线推进与时间旅行:SLG 的补算 | 补算的四个边界、封顶与对账、时区与失败兜底 |
第 5 章 连接与接入
| 节 | 文章 | 核心内容 |
|---|---|---|
| 5.1 | 5.1 长连接、短连接、WebSocket 与 QUIC 的取舍 | 四种连接形态的选型矩阵、握手/重连预算、团队规模约束 |
| 5.2 | 5.2 网关的职责边界与横向扩展 | 网关五项职责、rendezvous 路由、节点摘除重分配 |
| 5.3 | 5.3 会话、重连、顶号与连接迁移 | 会话状态机、epoch 顶号、迁移交接与幂等恢复 |
第 6 章 权威与信任
| 节 | 文章 | 核心内容 |
|---|---|---|
| 6.1 | 6.1 客户端预测与服务端裁决 | 输入缓冲与预测回滚、服务端确认、偏差阈值与降级 |
| 6.2 | 6.2 反作弊应该放在架构的哪一层 | 五层反作弊、规则评分、证据链与申诉边界 |
| 6.3 | 6.3 经济系统与随机数的可信边界 | commit-reveal 随机、掉落表版本、双分录账本校验 |
第三部分:品类实战(第 7–10 章)
第 7 章 品类架构 I:竞技
| 节 | 文章 | 核心内容 |
|---|---|---|
| 7.1 | 7.1 MOBA 的房间、tick 与帧同步 | 帧同步/状态同步判据、tick 屏障、缺帧与确定性哈希 |
| 7.2 | 7.2 FPS 的专用服、命中判定与延迟补偿 | 专用服池、快照回滚窗口、命中判定与延迟优势 |
| 7.3 | 7.3 观战、回放与赛事架构 | 观战延迟、事件日志与关键帧、回放体积与赛事隔离 |
第 8 章 品类架构 II:SLG 与 MMO
| 节 | 文章 | 核心内容 |
|---|---|---|
| 8.1 | 8.1 全球同服的大地图与分片 | 矩形分片路由、边界实体迁移、热区扩容与合规 |
| 8.2 | 8.2 分区分服、跨服与合服 | ID 重映射、重名消解、合服检查清单与跨服 |
| 8.3 | 8.3 异步结算、离线收益与补算 | 离线时长封顶、读时/定时结算、幂等补算与时区 |
第 9 章 品类架构 III:休闲、卡牌与小游戏
| 节 | 文章 | 核心内容 |
|---|---|---|
| 9.1 | 9.1 无状态大厅加有状态房间 | 大厅令牌与房间租约、过期回收、崩溃兜底 |
| 9.2 | 9.2 回合制卡牌的确定性与回放 | 种子洗牌、确定性结算、状态哈希与回放校验 |
| 9.3 | 9.3 小游戏后端的轻量化与快速上线 | 最小依赖组合、可裁剪清单、上线前检查与成本上限 |
第 10 章 品类架构 IV:开放世界与 UGC
| 节 | 文章 | 核心内容 |
|---|---|---|
| 10.1 | 10.1 无缝世界的分片与边界 | 区块流式归属、边界交接、越界规则与热区 |
| 10.2 | 10.2 UGC 地图的隔离、审核与发布 | 不可变版本、校验状态机、灰度发布与回滚 |
| 10.3 | 10.3 玩家创造内容的服务端信任模型 | 信任分级、沙箱与配额、违规降级与平台账本 |
第四部分:运行与收口(第 11–13 章)
第 11 章 部署单元与故障域
| 节 | 文章 | 核心内容 |
|---|---|---|
| 11.1 | 11.1 部署单元怎么切 | 五维切分、部署单元表、循环依赖与状态归属校验 |
| 11.2 | 11.2 有状态服务的边界 | 状态外置/分区/租约、drain、双主拒绝 |
| 11.3 | 11.3 故障域与爆炸半径 | 故障域树、爆炸半径预算、隔离策略校验 |
第 12 章 架构表达
| 节 | 文章 | 核心内容 |
|---|---|---|
| 12.1 | 12.1 C4、部署视图与数据流 | 四类视图、数据流与锚点、跨视图一致性 |
| 12.2 | 12.2 时序图、状态机与契约表 | 时序/状态机/契约表、同源生成、覆盖校验 |
| 12.3 | 12.3 架构决策的记录、评审与复盘 | 决策图与取代关系、复审触发、失效处理 |
第 13 章 卷一收口
| 节 | 文章 | 核心内容 |
|---|---|---|
| 13.1 | 13.1 三款产品的架构基线 | 三张基线卡、字段完整性、跨产品一致性 |
| 13.2 | 13.2 品类与拓扑决策矩阵 | 五特征四档、25 格矩阵、三产品回填与平局 |
| 13.3 | 13.3 进入卷二:把系统装进边界 | 五道未决问题、交接清单、阻塞判定 |
与现有专题的关系
卷一与站内两个方向互补,不重复:
- 《MMO 服务器开发》 四卷讲“从零实现”,本书讲“为什么这样选、代价是什么”;网络库、AOI、战斗结算等实现细节在那边展开。
- 《后端架构设计》 四卷讲通用后端的边界、性能与一致性;本书把同样的方法放进游戏品类约束里,重点落在有状态、强实时、长会话与权威模型。
/posts/game/server/下的单点笔记适合查具体问题;本书提供的是把这些点连成决策链的框架。
读完卷一的验收标准
如果下面六件事能在自己的项目里说清楚,卷一就算读完了:
- 能用产品事实解释当前拓扑,而不是用“大厂都这么做”;
- 能列出每类状态的唯一权威、丢失窗口和迁移方式;
- 能把“低延迟”拆成帧、操作、结算三类预算,并给出分位数口径;
- 能说明客户端预测什么、服务端裁决什么、证据留在哪一层;
- 能画出部署单元与故障域,并回答“一个房间/分片崩了影响谁”;
- 能为每个关键决策写出退出条件和复审触发。