posts

《游戏服务端架构·品类、状态与拓扑》 · 全书目录与章节索引(45 篇)

《游戏服务端架构》卷一全 45 篇:以品类、状态、时间、连接、权威五个变量为主线,对照北辰工作室三款产品,从拓扑选择写到部署单元与架构基线;含序、前言、目录、附录 A–C、四条阅读路径与可运行性口径,每节附可检查的 Go 夹具或决策表,便于评审时直接对照。

《游戏服务端架构》是一套四卷本:卷一《品类、状态与拓扑》、卷二《核心系统与契约》、卷三《规模化、全球化与成本》、卷四《平台化与架构治理》。本页是卷一的完整目录,共 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.11.1 游戏服务端到底在为谁做架构三类读者、四个特殊性、房间状态机与状态所有权表
1.21.2 三类延迟预算:帧、操作、结算帧/操作/结算三类预算、分位数口径、可执行预算检查
1.31.3 品类如何决定拓扑:北辰三款产品六个产品事实、五种拓扑、三款产品的选择与退出条件

第 2 章 架构决策方法

节文章核心内容
2.12.1 质量属性与无法回避的取舍十二条质量属性场景、冲突矩阵、场景结构校验
2.22.2 ADR:把决策、备选与后果写下来ADR 最小结构、三份订单域 ADR、代码校验退出条件
2.32.3 一次真实的架构评审与风险台账一次评审的三个争议、风险台账六字段与评分排序

第二部分:基础与谱系(第 3–6 章)

第 3 章 拓扑谱系

节文章核心内容
3.13.1 单体、分层与模块化单体五个模块与允许依赖表、三色环检测、拆分触发条件
3.23.2 大厅、房间与战斗:竞技品类的标准形态大厅/房间/分配器三层、暖池与租约、幽灵房间复盘
3.33.3 分区、分服与全球同服赛区路由与闭区间、再均衡不丢格证明、数据驻留约束

第 4 章 状态与时间

节文章核心内容
4.14.1 内存态、持久态与快照内存态/持久态/快照、频率与成本、恢复流程
4.24.2 tick、帧预算与世界时钟世界时间与固定步长、补帧/丢弃/漂移、四个测试场景
4.34.3 离线推进与时间旅行:SLG 的补算补算的四个边界、封顶与对账、时区与失败兜底

第 5 章 连接与接入

节文章核心内容
5.15.1 长连接、短连接、WebSocket 与 QUIC 的取舍四种连接形态的选型矩阵、握手/重连预算、团队规模约束
5.25.2 网关的职责边界与横向扩展网关五项职责、rendezvous 路由、节点摘除重分配
5.35.3 会话、重连、顶号与连接迁移会话状态机、epoch 顶号、迁移交接与幂等恢复

第 6 章 权威与信任

节文章核心内容
6.16.1 客户端预测与服务端裁决输入缓冲与预测回滚、服务端确认、偏差阈值与降级
6.26.2 反作弊应该放在架构的哪一层五层反作弊、规则评分、证据链与申诉边界
6.36.3 经济系统与随机数的可信边界commit-reveal 随机、掉落表版本、双分录账本校验

第三部分:品类实战(第 7–10 章)

第 7 章 品类架构 I:竞技

节文章核心内容
7.17.1 MOBA 的房间、tick 与帧同步帧同步/状态同步判据、tick 屏障、缺帧与确定性哈希
7.27.2 FPS 的专用服、命中判定与延迟补偿专用服池、快照回滚窗口、命中判定与延迟优势
7.37.3 观战、回放与赛事架构观战延迟、事件日志与关键帧、回放体积与赛事隔离

第 8 章 品类架构 II:SLG 与 MMO

节文章核心内容
8.18.1 全球同服的大地图与分片矩形分片路由、边界实体迁移、热区扩容与合规
8.28.2 分区分服、跨服与合服ID 重映射、重名消解、合服检查清单与跨服
8.38.3 异步结算、离线收益与补算离线时长封顶、读时/定时结算、幂等补算与时区

第 9 章 品类架构 III:休闲、卡牌与小游戏

节文章核心内容
9.19.1 无状态大厅加有状态房间大厅令牌与房间租约、过期回收、崩溃兜底
9.29.2 回合制卡牌的确定性与回放种子洗牌、确定性结算、状态哈希与回放校验
9.39.3 小游戏后端的轻量化与快速上线最小依赖组合、可裁剪清单、上线前检查与成本上限

第 10 章 品类架构 IV:开放世界与 UGC

节文章核心内容
10.110.1 无缝世界的分片与边界区块流式归属、边界交接、越界规则与热区
10.210.2 UGC 地图的隔离、审核与发布不可变版本、校验状态机、灰度发布与回滚
10.310.3 玩家创造内容的服务端信任模型信任分级、沙箱与配额、违规降级与平台账本

第四部分:运行与收口(第 11–13 章)

第 11 章 部署单元与故障域

节文章核心内容
11.111.1 部署单元怎么切五维切分、部署单元表、循环依赖与状态归属校验
11.211.2 有状态服务的边界状态外置/分区/租约、drain、双主拒绝
11.311.3 故障域与爆炸半径故障域树、爆炸半径预算、隔离策略校验

第 12 章 架构表达

节文章核心内容
12.112.1 C4、部署视图与数据流四类视图、数据流与锚点、跨视图一致性
12.212.2 时序图、状态机与契约表时序/状态机/契约表、同源生成、覆盖校验
12.312.3 架构决策的记录、评审与复盘决策图与取代关系、复审触发、失效处理

第 13 章 卷一收口

节文章核心内容
13.113.1 三款产品的架构基线三张基线卡、字段完整性、跨产品一致性
13.213.2 品类与拓扑决策矩阵五特征四档、25 格矩阵、三产品回填与平局
13.313.3 进入卷二:把系统装进边界五道未决问题、交接清单、阻塞判定

与现有专题的关系

卷一与站内两个方向互补,不重复:

读完卷一的验收标准

如果下面六件事能在自己的项目里说清楚,卷一就算读完了:

  1. 能用产品事实解释当前拓扑,而不是用“大厂都这么做”;
  2. 能列出每类状态的唯一权威、丢失窗口和迁移方式;
  3. 能把“低延迟”拆成帧、操作、结算三类预算,并给出分位数口径;
  4. 能说明客户端预测什么、服务端裁决什么、证据留在哪一层;
  5. 能画出部署单元与故障域,并回答“一个房间/分片崩了影响谁”;
  6. 能为每个关键决策写出退出条件和复审触发。

相关阅读

全部文章 Books game Java Indie golang 客户端开发 Minigame Saas rust Python
books

《游戏服务端架构·品类、状态与拓扑》8.1 全球同服的大地图与分片

《群岛纪元》全球同服后,欧洲舰队跨区行军要穿过三个地图分片,王城战又把单个分片压到过载。本节把“一格一个权威分片”写成可运行的矩形路由,给出边界实体迁移的 epoch 与序列号协议,并对比按玩家、按格子、按区块三种切法的延迟、热区与合规代价。

12 分钟阅读
书稿 游戏服务端 分布式系统
books

《游戏服务端架构·品类、状态与拓扑》7.2 FPS 的专用服、命中判定与延迟补偿

从《裂隙战场》射击玩法一次“我明明在掩体后”的争议讲起,拆开专用服池、tick rate 与带宽预算、服务器回滚窗口和命中判定归属,比较 20/30/60Hz 三档的取舍,说明延迟补偿的公平边界与防“延迟优势”手段,并给出 internal/lagcomp 的环形快照、按时间回滚与射线命中实现。

9 分钟阅读
书稿 游戏服务端 架构设计
books

《游戏服务端架构·品类、状态与拓扑》7.1 MOBA 的房间、tick 与帧同步

从《裂隙战场》5v5 房间一次输入迟到 80ms 导致技能错位讲起,用确定性要求、带宽、断线重连、观战与反作弊五条判据比较帧同步和状态同步,说明选定帧同步后成本如何转移到输入窗口、空帧推进与滚动哈希,并给出 internal/moba 的可测试聚合器、失败模式表与常见错误边界。

10 分钟阅读
书稿 游戏服务端 架构设计
books

《游戏服务端架构·品类、状态与拓扑》6.3 经济系统与随机数的可信边界

从《群岛纪元》一次掉落表热更导致历史抽奖无法复盘讲起,区分服务端权威随机、种子提交-揭示与客户端可验证三种做法;给出掉落表版本固定、HMAC 派生随机数、双分录账本与对账边界的 Go 实现,并用 7 组测试覆盖提交篡改、权重边界、版本回溯与账本非法分录。

8 分钟阅读
书稿 游戏服务端 架构设计
books

《游戏服务端架构·品类、状态与拓扑》6.2 反作弊应该放在架构的哪一层

从《裂隙战场》一次只依据客户端完整性导致的误封讲起,把反作弊拆成客户端、网关、战斗服、经济审计与离线复核五层,逐层给出能发现什么、误伤什么、成本多少;实现一个带分层归因、阈值分级、哈希证据链与双层确认的 Go 评分引擎,并用 5 组测试验证单层不能直接封禁。

8 分钟阅读
书稿 游戏服务端 架构设计
books

《游戏服务端架构·品类、状态与拓扑》6.1 客户端预测与服务端裁决

从《裂隙战场》一次 180ms 往返延迟下的橡皮筋回拉讲起,拆开客户端预测、服务端确认、按 tick 历史重放与偏差统计的完整链路;给出整数坐标、序号去重、陈旧输入拒绝、RTT 分档降级四类约束下的 Go 实现,并用 6 组测试覆盖干净回放、服务端限速、预测窗口与乱序待重放。

8 分钟阅读
书稿 游戏服务端 架构设计
books

《游戏服务端架构·品类、状态与拓扑》5.2 网关的职责边界与横向扩展

网关最常见的越界,是把业务规则写进转发层,结果一次活动改动就要发网关。本节划定连接终结、认证、路由、限流、协议转换和灰度标签的职责边界,比较粘性会话与无状态路由,用 rendezvous 哈希实现节点摘除后的最小重分配,并给出 drain 发布流程与故障兜底。

7 分钟阅读
书稿 游戏服务端 分布式系统
books

《游戏服务端架构·品类、状态与拓扑》5.1 长连接、短连接、WebSocket 与 QUIC 的取舍

《裂隙战场》《群岛纪元》《泡泡工坊》对延迟、推送与运维的要求完全不同。本节把短连接、长轮询、WebSocket 与 QUIC 放进同一张选型矩阵,给出硬约束筛选、加权打分、握手与重连预算,并说明团队只有两人或延迟要求宽松时,为什么不该自建长连接。

9 分钟阅读
书稿 游戏服务端 架构设计
books

《游戏服务端架构·品类、状态与拓扑》4.3 离线推进与时间旅行:SLG 的补算

以《群岛纪元》离线收益与建筑完成为例,说明补算为什么必须有上限、按天重置并与在线结算对账;给出按小时产出、每日封顶且按时区分日的 Go Accrue 实现,覆盖正常补算、封顶、时钟回拨与跨天重置四类测试,并给出离线补算与在线结算的幂等对账流程。

9 分钟阅读
书稿 游戏服务端 架构设计
books

《游戏服务端架构·品类、状态与拓扑》4.2 tick、帧预算与世界时钟

从《裂隙战场》一次 500ms 停顿后技能连放讲起,说明固定步长 tick 为什么不能直接跟着墙上时间跑;给出带 CatchUp 上限、丢弃计数、漂移余量和时钟回拨保护的 Go Loop 实现,覆盖正常推进、大延迟补帧、超限丢弃与回拨四类测试,并与第 1 章 33ms/16ms 的帧预算口径对齐。

8 分钟阅读
书稿 游戏服务端 架构设计
books

《游戏服务端架构·品类、状态与拓扑》4.1 内存态、持久态与快照

从《群岛纪元》一次重启后世界倒退两小时讲起,分清内存态、持久态与快照各自的权威边界,说明快照为什么只是恢复加速器而不是备份;给出带 schema 版本号与 CRC32 校验和的 Go 编解码与恢复实现,覆盖正常恢复、版本不兼容、校验损坏与空快照,并用频率成本表说明多久快照一次才划算。

9 分钟阅读
书稿 游戏服务端 架构设计
books

《游戏服务端架构·品类、状态与拓扑》3.3 分区、分服与全球同服

《群岛纪元》出海后,欧洲玩家的一支舰队跨到亚洲赛区,280ms 延迟让联盟战结果失去说服力;合规审计又要求欧洲玩家数据不得离开本地。本节对比分区、分服与全球同服三种形态,用按赛区与地图范围路由的 Go 实现和再均衡计划,说明拓扑为什么会被数据驻留反向约束。

8 分钟阅读
书稿 游戏服务端 架构设计
books

《游戏服务端架构·品类、状态与拓扑》3.2 大厅、房间与战斗:竞技品类的标准形态

《裂隙战场》的一次网络重试让同一名玩家占了两间房,崩溃客户端又留下 1400 间无人释放的幽灵房间。本节把竞技品类拆成无状态大厅、有状态房间与分配器三层,用带暖池、容量上限、租约过期和重复分配防护的 Go 实现,说明分配器能防住哪些幽灵,哪些必须由房间心跳兜底。

7 分钟阅读
书稿 游戏服务端 架构设计
books

《游戏服务端架构·品类、状态与拓扑》3.1 单体、分层与模块化单体

《泡泡工坊》三个人的团队把登录、房间、经济和结算写进一个 main 包,第十八个月的一次促销结算拖垮了全部在线。本节把模块化单体拆成 auth、room、economy、settlement、ops 五个模块,用允许依赖表、依赖校验与三色环检测把边界变成 CI 门禁,并给出五条可量化的拆分触发条件。

8 分钟阅读
书稿 游戏服务端 架构设计
books

《游戏服务端架构·品类、状态与拓扑》2.3 一次真实的架构评审与风险台账

《群岛纪元》全球同服方案评审只给了团队四十八小时。本节还原评审桌上的三个争议,建立包含概率、影响、分值、负责人、触发信号与缓解动作的风险台账,区分“接受的风险”和“被卡住的决策”,并用 Go 代码实现评分、排序与 Top N,引用 ADR-005、ADR-006、ADR-007 说明每个风险对应的架构决定。

8 分钟阅读
书稿 游戏服务端 架构设计
books

《游戏服务端架构·品类、状态与拓扑》2.2 ADR:把决策、备选与后果写下来

一次关于《群岛纪元》匹配状态归属的评审吵了四十分钟没有结论,因为没人写下备选与后果。本节给出 ADR 的最小结构:背景、备选、决定、后果、退出条件与状态;用 ADR-005 匹配状态归属、ADR-006 结算幂等、ADR-007 全球同服时间模型三份真实记录示范被否决的备选和退出条件,并用 Go 校验器拒绝缺少退出条件的 ADR。

10 分钟阅读
书稿 游戏服务端 架构设计
books

《游戏服务端架构·品类、状态与拓扑》2.1 质量属性与无法回避的取舍

北辰工作室把“低延迟、强一致、低成本、快迭代”全写成 P0,评审直接卡住。本节用来源、刺激、制品、环境、响应、度量六要素,为《裂隙战场》《群岛纪元》《泡泡工坊》各写四条可测质量属性场景,做一张延迟、一致性、成本与可修改性的取舍矩阵,并用 Go 代码校验场景完整性、统计覆盖缺口,最后说明为什么没有架构能同时满足全部属性。

9 分钟阅读
书稿 游戏服务端 架构设计
books

《游戏服务端架构·品类、状态与拓扑》1.3 品类如何决定拓扑:北辰三款产品

用北辰工作室三款产品对照五种服务端拓扑:模块化单体、大厅加房间、分区世界、全球同服与专用服池;把并发、会话时长、实时性、共享世界、匹配制与地域敏感六个产品事实写成可执行的选型函数,说明为什么拓扑只是第一版决策,并给出三份 ADR 的退出条件。

7 分钟阅读
书稿 游戏服务端 架构设计