posts

《游戏服务端架构·核心系统与契约》 · 全书目录与章节索引(45 篇)

《游戏服务端架构》卷二全 45 篇:沿账号、登录、匹配、房间、战斗、经济、社交、榜单、邮件、支付、平台十一条系统线,把数据所有权、幂等键、失败语义与 SLA 写成可检查的契约;含序、前言、目录、附录 A–C、四条阅读路径与可运行性口径,评审时可直接对照。

《游戏服务端架构》是一套四卷本:卷一《品类、状态与拓扑》、卷二《核心系统与契约》、卷三《规模化、全球化与成本》、卷四《平台化与架构治理》。本页是卷二的完整目录,共 45 篇。

卷二回答的是“系统之间怎么约定”。卷一确定拓扑之后,真正决定项目能否稳定交付的,是账号、登录、匹配、房间、战斗、结算、经济、社交、榜单、邮件、支付这些系统之间的边界:谁拥有数据、谁可以写、重复执行会怎样、失败时谁兜底。卷三处理容量与全球化,卷四处理平台治理。

全书概览

项目内容
书稿《游戏服务端架构·核心系统与契约》
篇数45 篇(13 章 × 3 节 + 序、前言、目录、附录 A–C)
贯穿案例北辰工作室:《裂隙战场》《群岛纪元》《泡泡工坊》
技术栈Go 1.26.0;本地验证工程 gsarch-lab
运行级别卷二以 L1 为主;唯一约束与回调场景说明 L3 口径,不声称已跑
阅读方式从目录与学习路径 进入顺序通读,或按下方路径跳读
上级专题书稿专题
相关专题游戏服务端笔记 · 架构设计

四条阅读路径

路径 A:顺序通读(约 30 小时)

按“接入与身份 → 对局与战斗 → 经济与成长 → 社交与运营 → 支付与平台 → 收口”的顺序读。第 1–2 章建立身份与接入契约,第 3–5 章处理对局核心,第 6–7 章处理钱与成长,第 8–10 章处理社交与运营,第 11–12 章处理支付与平台,第 13 章收口。

路径 B:带着系统来(约 8 小时)

先看 13.1 的契约矩阵定位自己关心的能力,再跳到对应章节:账号登录读第 1–2 章,对局读第 3–5 章,经济读第 6 章,运营读第 8–10 章,支付合规读第 11 章,平台读第 12 章。

路径 C:只关心评审(约 5 小时)

读 5.2、6.1、10.1、11.1、13.1–13.2,再读附录 B 的契约模板与附录 C 的故障模式清单。适合正在做系统接入评审、事故复盘或平台能力收放的负责人。

路径 D:只看代码与测试

从每节的 // file:、// tier:、// verify: 标记进入 gsarch-lab,按 go test ./internal/<包>/ 逐个跑。代码覆盖身份模型、票据续期、网关归属、匹配窗口、房间生命周期、实例分配、AOI、分线与广播、结算幂等、账本、交易托管、成长状态机、任务进度、重置窗口、关系链、公会权限、聊天限速、榜单读写、邮件投递、支付发货、退款对账、合规判定、租户隔离与契约矩阵。

全书目录

前置与附录

篇文章核心内容
序序:拓扑定下来之后,真正难的是系统之间怎么约定卷一与卷二的分工、三个反复出现的问题、四个写作立场
前言前言:系统契约怎么写成可验证的东西技术基线、13 章验证包、L1–L4 口径与复现方式
目录目录与学习路径十三章结构、三条阅读路径与可运行性说明
附 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 网关路由与连接归属网关职责、rendezvous 路由、节点摘除与归属对账
2.32.3 登录排队、限流与开服洪峰排队语义、公平性与等待估算、拒绝与退避、重试放大

第二部分:对局与战斗(第 3–5 章)

第 3 章 匹配与房间

节文章核心内容
3.13.1 匹配算法与公平性分段与窗口扩展、队伍与延迟、匹配质量与等待取舍
3.23.2 房间生命周期与幽灵房间房间状态机、租约与心跳、幽灵检测、结算交接
3.33.3 实例分配、暖池与回收租约分配、暖池与冷启动、故障回收、资源碎片

第 4 章 场景与世界

节文章核心内容
4.14.1 AOI 选型:九宫格、十字链表与空间索引先算消息量、三种方案对照、同步模型与切换触发
4.24.2 分线、副本与主城/野外分线代价、迁移一致性、副本与共享世界边界、容量滞回
4.34.3 世界事件与全服广播扇出估算、事件分级、分区订阅、去重与补发

第 5 章 战斗与结算

节文章核心内容
5.15.1 战斗服模型:房间内、旁路与托管三种模型、tick 与故障域、崩溃恢复语义、选型判据
5.25.2 结算契约与防重复发奖结算单状态机、幂等键、先落单再发奖、改判与冲正
5.35.3 战斗日志、回放与审计日志分级、确定性回放 vs 记录回放、审计查询

第三部分:经济与成长(第 6–7 章)

第 6 章 经济与交易

节文章核心内容
6.16.1 货币、产出与消耗货币分层、来源标签、双分录账本、对账频率
6.26.2 交易托管、冻结与回滚托管状态机、冻结与可用余额、并发与跨服交易
6.36.3 经济风控与价格指数异常信号、价格指数的局限、处置手段与申诉

第 7 章 成长与任务

节文章核心内容
7.17.1 属性、成长与状态机属性来源分层、计算顺序、成长状态机与非法迁移
7.27.2 任务事件与进度服务上报 vs 订阅、进度去重、跨天补算、并发完成
7.37.3 每日重置、时区与赛季重置边界、幂等与补做、赛季切换与未领奖励

第四部分:社交与运营(第 8–10 章)

第 8 章 社交与公会

节文章核心内容
8.18.1 好友、黑名单与关系一致性有向关系模型、双向一致性、删除清理、跨服边界
8.28.2 公会、权限与仓库RBAC、权限版本、仓库并发、解散与合并清算
8.38.3 聊天频道、审核与限速频道扇出、限速与刷屏、审核位置、误封申诉

第 9 章 排行榜与赛季

节文章核心内容
9.19.1 榜单模型与分段榜单类型、分段与同分规则、写模型选择
9.29.2 写缓冲、结算与赛季边界批量刷榜、截止快照、幂等结算、赛季切换读一致性
9.39.3 榜单的读模型与缓存整榜/分页/个人名次缓存、偏差窗口、热点降级

第 10 章 邮件与奖励

节文章核心内容
10.110.1 邮件投递与去重投递模型、去重键、全服扇出、重试与死信
10.210.2 附件、过期与流拍结算附件状态机、过期策略、背包满处理、资产归属
10.310.3 批量领取、补偿与红点批量领取语义、补偿批次、红点计数一致性

第五部分:支付与平台(第 11–12 章)

第 11 章 支付与合规

节文章核心内容
11.111.1 支付渠道与发货幂等订单状态机、验签、回调去重、发货幂等
11.211.2 退款、对账与差异处理退款状态机、差异分类、自动冲正与人工挂账
11.311.3 防沉迷、实名与未成年人保护判定与执行分离、数据最小化、留存与删除传导

第 12 章 平台服务化

节文章核心内容
12.112.1 账号、支付、社交、数据平台的职责能力清单、收进平台的判据、平台与游戏的边界
12.212.2 多游戏复用与租户隔离租户模型、隔离维度、配额与 noisy neighbor、版本兼容
12.312.3 平台 SLA 与产品团队的契约分能力 SLA、变更与回滚承诺、责任边界与联合响应

第六部分:收口(第 13 章)

第 13 章 卷二收口

节文章核心内容
13.113.1 三款产品共用平台的契约矩阵十项能力的共用方式、SLA 与降级责任、矩阵读法
13.213.2 系统边界与数据所有权总表数据所有权、越权写入清单、与卷一拓扑基线对照
13.313.3 进入卷三:规模与全球化未决问题、就绪检查点、进入规模化前的测量要求

与现有专题的关系

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

读完卷二的验收标准

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

  1. 能为每个核心系统指出唯一写入者,并说明用什么约束挡住第二个写入者;
  2. 能列出所有写操作的幂等键,以及重复请求的返回语义;
  3. 能说明超时、部分成功、下游不可用时,系统分别返回什么、谁兜底;
  4. 能画出账号—登录—对局—结算—支付的关键链路,并指出哪一步允许最终一致;
  5. 能说清平台收了哪些能力、按什么维度隔离、SLA 如何按能力定义;
  6. 能把上述内容填进附录 B 的契约卡,并通过附录 C 的故障模式检查。

相关阅读

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

《游戏服务端架构·核心系统与契约》8.1 好友、黑名单与关系一致性

《裂隙战场》《群岛纪元》《泡泡工坊》对好友、关注和黑名单的需求并不相同。本节把关系链还原为有向边加不变量,比较双写事务、异步回写和读时合成三种方案,说明 A 加 B 时另一侧如何更新、失败时能否不对称,并给出可运行的有向关系存储与账号删除清理边界。

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

《游戏服务端架构·核心系统与契约》6.2 交易托管、冻结与回滚

《群岛纪元》的玩家交易曾出现扣了银币却没收到物品、掉线后双方各持一份货的情况。本节把交易拆成锁定、校验、交换、解冻四个状态,说明冻结余额与可用余额的区别、重复提交和并发冲突的处理、跨服托管的边界,并给出可运行的 Go 托管状态机与失败模式兜底。

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

《游戏服务端架构·核心系统与契约》6.1 货币、产出与消耗

《群岛纪元》一次活动配置把奖励放大十倍,团队却只能看到余额异常,查不出是哪条产出路径、发给了谁、是否已流入玩家交易。本节结合三款产品的货币分层,比较单表余额、双分录账本与事件溯源,说明来源标签、对账频率和差异处置,并给出可运行的 Go 双分录账本与失败模式。

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

《游戏服务端架构·核心系统与契约》5.3 战斗日志、回放与审计

客服申诉、作弊复核和经济异常,最终都要落到同一份战斗日志上。本节对比原始输入、裁决事件和结果摘要三层日志的体积与保留期,分析“重演模拟”和“重读记录”两种回放路线的成本、可信度与适用场景,并给出哈希链校验、回放摘要比对和按操作者查询的可运行代码。

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

《游戏服务端架构·核心系统与契约》5.2 结算契约与防重复发奖

战斗结束后的奖励发放,最容易出的问题不是算错,而是发两次。本节从 battle_id、参战者、结果和奖励表版本四类输入出发,对比先落结算单与先发奖两种顺序,给出幂等键、唯一约束、状态机、改判权限和冲正流程,并用可运行代码演示重复请求、部分失败与二次冲正的处理。

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

《游戏服务端架构·核心系统与契约》5.1 战斗服模型:房间内、旁路与托管

《裂隙战场》的 30 Hz 对抗、《群岛纪元》的异步战报和《泡泡工坊》的轻量对局,对战斗进程的要求完全不同。本节用 tick 预算、战斗时长、回放要求和团队运维能力四组约束,对比房间内计算、独立战斗服与托管算力三种模型的延迟、成本与故障域,并给出崩溃恢复语义和可运行的选型函数。

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

《游戏服务端架构·核心系统与契约》4.3 世界事件与全服广播

世界 Boss 刷新、赛季结束、全服公告看起来都是一条消息,扇出代价却相差几个数量级。本节先算连接数、消息大小与频率的乘积,再按全服、战区、地图、房间四级拆通道,讨论分区订阅如何隔离热点、有界日志如何支撑补发,以及去重、乱序和断线补发分别该怎么处理。

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

《游戏服务端架构·核心系统与契约》4.1 AOI 选型:九宫格、十字链表与空间索引

《裂隙战场》《群岛纪元》《泡泡工坊》三个场景的 AOI 选型不能只看数据结构排名。本节先按在线人数、视野半径和同步频率估算消息量,再对比九宫格、十字链表与空间索引的实现成本、边界穿越和动态实体适应性,并给出从网格切换到空间索引的触发条件与可运行代码。

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

《游戏服务端架构·核心系统与契约》3.2 房间生命周期与幽灵房间

从《泡泡工坊》房间进程重启后的幽灵房间讲起,给出创建、等待、填充、运行、结算、回收六态状态机,说明租约、epoch、幂等键与对账扫描如何发现并安全回收幽灵房间,并讨论结算落库与资源释放的先后顺序,说明回收时如何避免误杀正常对局,并给出可运行 Go 实现。

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

《游戏服务端架构·核心系统与契约》2.3 登录排队、限流与开服洪峰

开服洪峰与日常登录不是同一个问题:总量、斜率与重试放大都不同。排队管理预期,限流保护后端,两者不能互相替代。本节给出令牌桶加租户公平队列、位置与等待估算、超时与去重,比较限流放在边缘、网关或账号服务的代价,并说明如何避免排队、超时、重试、更拥堵的正反馈。

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

《游戏服务端架构·核心系统与契约》2.1 登录态、票据与续期

登录票据与会话令牌常被混为一谈:前者单次、短暂、绑定网关,后者长期、可续期、需要吊销。本节拆开两者的生命周期,比较自包含令牌与查库校验的代价,给出滑动过期加绝对天花板、并发续期版本号、全端下线与时钟偏移处理的可运行实现,并划定令牌泄露与跨游戏复用的边界。

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

《游戏服务端架构·核心系统与契约》1.3 账号安全、找回与风控

账号能被认出来之后,服务端还要回答这次登录是否可信、找回请求能否放行。本文把设备变化、异地、失败频次与行为异常折算成可解释的风险分,给出放行、挑战、阻断三档动作与带期限的锁定策略,讨论找回证据各自能证明什么,并用 internal/accountrisk 的 Go 实现、审计记录和五组表驱动测试说明风控如何避免变成永久封禁。

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