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

《游戏服务端架构·品类、状态与拓扑》13.3 进入卷二:把系统装进边界

卷一的最后一节不是总结,而是交接。把基线、风险、未决决策和待压测假设做成带阻塞判定的检查清单,列出卷二必须回答的五个问题及其卷一来源,并给出可运行的 Go 交接报告生成器,说明哪些未决项可以带条件放行、哪些必须留在一卷内解决,避免把延后误写成已完成。

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

《游戏服务端架构·品类、状态与拓扑》13.2 品类与拓扑决策矩阵

把实时性、共享世界、房间制、状态规模、跨区需求五个品类特征,与五种拓扑做成带理由和代价的决策矩阵;每个格子标注推荐、可选或不推荐,再用北辰三款产品回填验证。配套 Go 包实现特征向量打分、成本平局裁决与 25 格完整性测试,并说明矩阵在什么条件下失效。

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

《游戏服务端架构·品类、状态与拓扑》13.1 三款产品的架构基线

把卷一前十二章的决策固化成三张可评审的架构基线卡:每张写明拓扑、状态归属、连接模型、权威模型、部署单元与关键 SLA,并列出已接受的取舍、已知风险和复审触发条件。配套 Go 包用字段完整性与跨产品一致性校验,防止基线在复制粘贴和人员轮换中悄悄走样。

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

《游戏服务端架构·品类、状态与拓扑》12.3 架构决策的记录、评审与复盘

一份两年前标记为 accepted 的 ADR 仍然躺在决策目录里,它依赖的 ADR 早已被取代,复审日期也过去了三个月。本节把决策当作有生命周期的图节点,讨论提议、评审、采纳、复审、失效与替代,给出取代/依赖/冲突关系的检测、复审到期提醒和失效迁移清单,并用 Go 实现决策图校验。

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

《游戏服务端架构·品类、状态与拓扑》12.2 时序图、状态机与契约表

《裂隙战场》的一次断线重连在时序图上只有三条箭头,线上却出现房间已满、票据过期、重复重连三个异常。本节把时序图限制在跨边界交互,用状态机覆盖异常路径,用契约表固定请求、响应、错误与幂等键,并给出三者同源的 Go 校验:不可达状态、未覆盖错误和缺失幂等键都会被测试拒绝。

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

《游戏服务端架构·品类、状态与拓扑》12.1 C4、部署视图与数据流

北辰工作室的架构图半年后就和仓库对不上:匹配服务拆了、存储换了、分片扩了,图还在原处。本节用上下文、容器、组件、部署四类视图加数据流视图,说明每类视图的读者与更新频率,并给出锚点校验、悬空链接检查和跨视图一致性检查的 Go 实现,让图和代码不再各说各话。

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

《游戏服务端架构·品类、状态与拓扑》11.3 故障域与爆炸半径

《裂隙战场》一台战斗节点故障带走 250 间房,而一个单实例会话存储故障能让全部品类同时掉线。本节把故障域分为进程、节点、机架、可用区和地域,用容量占比度量爆炸半径,给出舱壁、配额、独立连接池与去相关部署的取舍,并用 Go 实现的故障域树计算单房间、单节点与单可用区故障的影响面。

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

《游戏服务端架构·品类、状态与拓扑》11.2 有状态服务的边界

《裂隙战场》的房间服在滚动重启时丢掉进行中的对局,租约过期后新旧两个房间进程同时写结算,造成双份奖励。本节比较状态外置、分区归属、主备租约三条出路,给出房间服、地图服、会话服的边界,并用带 fencing epoch、续约、drain 与双主拒绝的 Go 租约注册表说明重启、迁移和缩容时如何不丢状态。

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

《游戏服务端架构·品类、状态与拓扑》11.1 部署单元怎么切

《群岛纪元》把登录、地图、结算和运营写进同一个二进制,一次地图热更回滚连带停掉了登录与充值。本节给出变更频率、伸缩特性、故障隔离、团队所有权和数据边界五个切分维度,比较三款产品的部署单元表,并用 Go 实现的目录模型检查循环依赖、状态归属冲突与有状态共享库。

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

《游戏服务端架构·品类、状态与拓扑》10.3 玩家创造内容的服务端信任模型

UGC 上线后,认证创作者的脚本开始调用经济接口,另一张地图试图直接发放道具。问题不在脚本写错,而在服务端把逻辑也当成了可信输入。本节给出官方、认证创作者、普通玩家三级信任模型,能力白名单、配额与审核强度,以及违规降级、升级条件和平台账本的分工与代价。

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

《游戏服务端架构·品类、状态与拓扑》10.2 UGC 地图的隔离、审核与发布

《长风原》的 UGC 地图编辑器上线前,一张 300 MB、四万实体的地图把沙箱打爆,另一张地图的依赖在审核后被悄悄换版本。本节给出不可变版本、内容寻址、依赖锁定、沙箱配额、灰度与回滚组成的发布流水线,并说明为什么回滚只能指向曾经发布过的版本。

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

《游戏服务端架构·品类、状态与拓扑》9.3 小游戏后端的轻量化与快速上线

以《泡泡工坊》春节活动为例,说明小游戏后端的最小组合为什么是单服务、单库、缓存与对象存储,以及什么时候才值得拆分;给出 Go 实现的版本化配置、令牌桶限流与上线前检查清单,覆盖配置发布、回滚、突发与补充、阻塞项与豁免测试,并列出可裁剪与不可裁剪能力清单。

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

《游戏服务端架构·品类、状态与拓扑》9.2 回合制卡牌的确定性与回放

以回合制卡牌为例,说明服务端权威洗牌种子、固定版本的随机数、确定性结算顺序与状态哈希如何共同支撑可验证回放;给出 Go 实现的 SplitMix64 洗牌、出牌状态机、SHA-256 状态指纹与回放校验,覆盖同种子复现、非法出牌、篡改动作与截断回放测试,并讨论断线重连与防客户端篡改的边界。

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

《游戏服务端架构·品类、状态与拓扑》9.1 无状态大厅加有状态房间

以《泡泡工坊》为例,说明休闲品类如何把大厅做成完全无状态、把房间做成带租约与 epoch 归属的有状态单元:大厅令牌只证明入场资格,房间租约决定谁能续约,过期回收把玩家送回大厅。给出可运行 Go 实现与令牌、心跳、加入、重入、过期五类测试,并讨论房间状态放内存还是 Redis 的判据。

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

《游戏服务端架构·品类、状态与拓扑》8.3 异步结算、离线收益与补算

《群岛纪元》玩家离线三天回来,资源产出、维护消耗、仓库上限和运营补偿要在一次登录里算清;客户端时间不可信,时区与夏令时又会移动每日边界。本节把登录补算、定时结算与读时结算放进同一套幂等账本,给出包含封顶、补算窗口与补偿领取的 Go 实现和测试。

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

《游戏服务端架构·品类、状态与拓扑》8.2 分区分服、跨服与合服

《群岛纪元》东南亚版本按服开服三年,120 个服里六成日活不足 500,跨服战场又要让不同服的玩家同场竞技。本节比较继续开服、跨服互通与合服三条路线,把 ID 重映射、重名、公会会长和排行榜写成可校验的合服计划,并给出切服、回滚与客服追溯的执行顺序。

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