这个目录是 2021 年 6 月的游戏服务端架构笔记合集,10 篇,本月的统一开场是「一个小功能背后往往有多条状态链」。作者用这一批笔记说明:一次随机抽取、一次准备确认、一次投降投票,看起来都是单点功能,实际会牵动配置、概率、队列、共识与结算多条链路。
具体到本月,几条主线分别是:随机抽取与道具绑定处理「结果与规则的权威性」,准备确认与投降投票处理「多人共识与超时」,实例暖池与任务事件背压处理「规模与性能」,玩法日历、公会贡献账本、在线状态与称号读模型则处理「统一事实来源与读模型」。
它适合正在做抽卡与掉落、匹配与对局流程、实例调度与任务系统的服务端工程师,也适合需要给团队定「读模型与服务端事实分离」规范的主程。使用方式:先看速览确定系统归属,再按四个主题小节跳转;每篇都从一个真实争议讲起,落到状态机、背压策略与账本设计。
需要说明的是,本页只做导航,不重复文章内容。所有链接都指向文章的真实根级 slug,四个分组按「读者要解决的系统问题」划分,同一篇只归入最贴近的一组,以免导航膨胀成重复列表。
专题速览
| 项目 | 内容 |
|---|---|
| 本目录直接文章 | 10 篇 |
| 时间跨度 | 2021-06-02 至 2021-06-29 |
| 主题分组 | 4 个(随机抽取与道具绑定、匹配共识与对局投票、实例调度与事件背压、日历公会与在线读模型) |
| 内容形态 | 问题驱动型架构笔记,先给争议场景,再给状态机、账本与背压设计 |
| 覆盖方向 | 随机权威、绑定规则、对局共识、实例调度、事件路由、在线状态 |
| 适用读者 | 游戏后端工程师、服务端主程、负责匹配与抽卡系统的技术负责人 |
| 前置知识 | 了解基本的服务端权威模型、消息队列背压与读模型概念即可 |
| 阅读建议 | 按主题跳转,四组相互独立;随机与共识两组建议优先阅读 |
| 单篇篇幅 | 每篇约 3000 至 5000 字,含数据模型、状态机与异常处理 |
| 复用价值 | 账本化记录、共识状态机与读模型三类模式可迁移到任何多状态系统 |
| 相关月份 | 前接 2021 年 5 月的门禁与快照主题,后续为 7 月的旁路计算与租约主题 |
| 维护方式 | 新增文章时只补主题小节与速查表,不移动既有文件,保证公开 URL 稳定 |
随机抽取与道具绑定
这一组处理「结果与规则的权威性」。随机抽取是游戏里最容易产生争议的系统,玩家关心概率是否真实、保底是否生效、断线后结果是否丢失,研发关心抽取是否幂等、配置是否正确、审计能否复盘,因此抽取事实必须由服务端权威生成;道具绑定则要处理同一件道具因来源不同而规则不同的情况,不能让绑定判断写死在各处。
两篇的共同结论是:随机要有可复核的上下文,规则要有集中的判定点。
| 文章 | 一句话核心内容 |
|---|---|
| 权威随机抽取架构:宝箱、卡池和掉落为什么不能只靠客户端表现 | 由服务端权威生成抽取事实,处理幂等、概率配置、保底与审计复盘 |
| 道具绑定规则架构:可交易、账号绑定和临时绑定不能靠硬编码 | 把绑定规则集中建模,处理合成、邮寄、上架与跨服转移时的流转判断 |
匹配共识与对局投票
这一组处理「多人共识与超时」。匹配成功不等于对局开始,系统要让玩家确认准备,并处理掉线、拒绝、超时、客户端没弹窗与队伍成员变化;投降投票则要明确开局多久才能发起、掉线玩家是否算弃权、四人队与五人队阈值是否相同。
两篇合起来说明:共识类功能必须先把规则写成状态机,再谈体验优化。
| 文章 | 一句话核心内容 |
|---|---|
| 匹配准备确认架构:十个人点准备背后的共识与超时处理 | 用状态机处理准备确认、掉线、拒绝、超时与取消后的惩罚边界 |
| 投降投票状态机架构:竞技对局里的少数服从多数并不简单 | 明确发起条件、投票阈值、掉线计票与通过后的结算衔接 |
实例调度与事件背压
这一组处理「规模与性能」。副本实例如果每次都从进程启动与地图加载开始,高峰期会把启动链路打满,暖池要解决的是提前准备可用容器;任务系统会消费大量事件,最危险的做法是每来一个事件就扫描玩家身上所有任务,背压要解决的是让击杀高峰不把任务服务打成热点。
两篇的共同点是:把突发成本前置或后置,而不是压在核心路径上。
| 文章 | 一句话核心内容 |
|---|---|
| 副本实例暖池架构:高峰期开房不应该从零开始 | 提前准备可用实例并处理回收、预热失败与容量水位 |
| 任务事件路由背压架构:别让一次击杀触发全服任务扫描 | 用事件路由与索引替代全量扫描,控制击杀高峰期的任务服务负载 |
日历公会与在线读模型
这一组处理「统一事实来源与读模型」。玩法日历要把世界 Boss、竞技场结算、限时副本与节日活动的时间规则收敛到统一来源,而不是每个系统自己写定时器;公会贡献需要区分个人贡献、建设度、活动积分与分红资格,避免多口径数值散落;在线状态要在登录服、网关、场景与社交读模型之间收敛,避免幽灵会话;称号与徽章这类展示资产则要有独立读模型,不能每次都回查核心资料。
四篇的共性是把「唯一事实来源」与「面向展示的读模型」分开。
| 文章 | 一句话核心内容 |
|---|---|
| 玩法日历编排架构:限时玩法、重置和跨时区活动如何统一管理 | 用统一时间事实来源管理限时玩法、周期重置与跨时区活动 |
| 公会贡献账本架构:贡献值、建设度和奖励资格不要混在一起 | 用账本化记录区分贡献口径,支撑排行、等级、任务与分红资格 |
| 在线状态对账架构:在线、离线、断线中和幽灵会话如何收敛 | 对账多服务在线视图,收敛幽灵会话与好友可见性差异 |
| 玩家称号与徽章读模型架构:展示系统不能拖慢核心状态 | 为展示资产建立独立读模型,避免全站级读压力与展示不一致 |
本月主题脉络
6 月的十篇笔记有一条共同主线:把「散落的多份数据」收敛成「一份事实加若干读模型」。随机抽取要有唯一的抽取记录,道具绑定要有唯一的规则判定点,玩法日历要有唯一的时间来源,公会贡献要有唯一的账本,在线状态要有唯一的收敛口径,称号徽章要有唯一的展示读模型。
第二条主线是「共识与超时需要显式状态机」。匹配准备与投降投票都属于多人达成一致的过程,本月把它们从「一次请求」升级为「一个有时限、有参与方、有终态的状态机」,这为后续处理队伍、公会战与跨服活动提供了可复用的模式。
第三条主线是「把成本挪出核心路径」。实例暖池把启动成本前置,任务事件背压把扫描成本后置,两者都在回答同一个问题:高峰期不应该让玩家等待系统做准备工作。
本月文章速查
按发布时间排列,便于对照当月写作节奏与主题推进顺序。表格里的分组与本页上面的四个主题小节一一对应。
| 日期 | 文章 | 所属分组 |
|---|---|---|
| 2021-06-02 | 玩家称号与徽章读模型架构 | 日历公会与在线读模型 |
| 2021-06-05 | 公会贡献账本架构 | 日历公会与在线读模型 |
| 2021-06-08 | 任务事件路由背压架构 | 实例调度与事件背压 |
| 2021-06-11 | 匹配准备确认架构 | 匹配共识与对局投票 |
| 2021-06-14 | 副本实例暖池架构 | 实例调度与事件背压 |
| 2021-06-17 | 玩法日历编排架构 | 日历公会与在线读模型 |
| 2021-06-20 | 道具绑定规则架构 | 随机抽取与道具绑定 |
| 2021-06-23 | 投降投票状态机架构 | 匹配共识与对局投票 |
| 2021-06-26 | 权威随机抽取架构 | 随机抽取与道具绑定 |
| 2021-06-29 | 在线状态对账架构 | 日历公会与在线读模型 |
推荐阅读路径
路径一 做抽卡与掉落系统的同学
先读权威随机抽取与道具绑定规则,建立「抽取事实在服务端、流转规则集中判定」两个认知。再读 2021 年 4 月的掉落表版本钉住,把随机与配置版本的对应关系补齐;最后读 2021 年 12 月的赛季商店库存,理解随机与限购并存的场景。
路径二 做匹配与对局流程的同学
从匹配准备确认进入,掌握共识状态机的组织方式;再读投降投票,理解阈值与掉线计票的处理。最后读 2021 年 10 月的匹配处罚限制,把行为约束接到共识流程上。
路径三 做实例与任务系统的同学
先读副本实例暖池与任务事件路由背压,建立「成本前置或后置」的思路。再读 2021 年 9 月的实例调度约束,理解房间应该被放到哪台机器;最后读 2021 年 8 月的世界分区交接,把实例生命周期扩展到开放世界。
交叉阅读提示
- 公会贡献账本与 2021 年 12 月的货币预占托管都属于账本化设计,建议对照阅读以理解流水与余额的关系。
- 玩法日历与 2021 年 3 月的世界资源刷新调度共享「统一调度」思路,建议一起看。
- 在线状态对账与 2021 年 11 月的社交在线隐私是同一主题的两面,建议连续阅读。
相关专题
- 游戏服务器专题总览,本目录所在的上层专题,可按框架、工程与月度三条主线查找
- 2021 年 5 月服务器笔记,本月的上一期,聚焦场景门禁与属性快照
- 2021 年 7 月服务器笔记,本月的下一期,转向旁路计算与世界对象租约
- 游戏服务器实战工程,更偏工程落地的同主题笔记合集
- 游戏设计专题,从玩法与数值侧理解这些服务端约束的来由
- 游戏引擎专题,从运行时原理理解实例调度与同步的底层背景