posts

2021 年 7 月游戏服务器架构笔记导航:旁路计算、库存预占与世界对象租约的 10 篇索引

本页是 content/posts/game/server/202107 目录下 10 篇游戏服务器架构笔记的主题导航,覆盖游戏会话票据续期、运营活动状态机审计、世界对象租约、客户端补丁门控、房间命令日志压缩、战斗服旁路计算、库存预占、队伍跨场景跟随、GM 操作双人审批、场景热对象拆分十个方向。每篇给出真实 slug 链接与一句话核心内容,并按「战斗主循环与房间日志、会话与客户端门控、资产预占与运营审计、队伍跟随与世界对象租约」四组重新编排。

这个目录是 2021 年 7 月的游戏服务端架构笔记合集,10 篇,本月的统一开场是「问题通常藏在正常路径之外」。作者用这一批笔记说明:真正让线上出事的,往往不是主流程写错了,而是主流程之外的那些旁路——统计、日志、后台工具、补偿脚本、热对象,它们在高峰期会反过来挤占核心资源。

具体到本月,几条主线分别是:战斗主循环、房间日志与热对象处理「别让非权威计算挤占 tick 预算」,会话票据与补丁门控处理「长连接与客户端版本的安全边界」,库存预占、活动审计与 GM 审批处理「资产与高风险操作的可控」,队伍跟随与世界对象租约则处理「跨场景与动态对象的归属」。

它适合正在做战斗服、网关、运维工具与资产系统的服务端工程师,也适合需要给团队定「主循环只做权威裁决」「高风险操作必须双人」规范的主程。使用方式:先看速览确定系统归属,再按四个主题小节跳转;每篇都从一个真实事故或性能瓶颈讲起,落到拆分方案、租约模型与审批流程。

需要说明的是,本页只做导航,不重复文章内容。所有链接都指向文章的真实根级 slug,四个分组按「读者要解决的系统问题」划分,同一篇只归入最贴近的一组,以免导航膨胀成重复列表。

专题速览

项目内容
本目录直接文章10 篇
时间跨度2021-07-02 至 2021-07-29
主题分组4 个(战斗主循环与房间日志、会话与客户端门控、资产预占与运营审计、队伍跟随与世界对象租约)
内容形态问题驱动型架构笔记,先给瓶颈或事故,再给拆分方案与租约模型
覆盖方向旁路计算、日志压缩、热对象拆分、会话续期、版本门控、资产预占
适用读者游戏后端工程师、服务端主程、负责战斗服与运维工具的技术负责人
前置知识了解基本的进程隔离、日志压缩与租约/所有权概念即可
阅读建议按主题跳转,四组相互独立;主循环与租约两组建议优先阅读
单篇篇幅每篇约 3000 至 5000 字,含拆分方案、租约状态与审批流程
复用价值旁路拆分、租约与双人审批三类模式可迁移到任何高负载与高风险系统
相关月份前接 2021 年 6 月的随机与日历主题,后续为 8 月的技能流水线与分区交接主题
维护方式新增文章时只补主题小节与速查表,不移动既有文件,保证公开 URL 稳定

战斗主循环与房间日志

这一组处理「别让非权威计算挤占 tick 预算」。战斗主循环应该只做权威裁决,统计、报表、风险特征、观战摘要与 AI 建议都应该走旁路;房间命令日志是排障基础,但全量永久保存会让存储失控,需要在保留可回放能力的同时压掉低价值冗余;世界 Boss 与热门商人这类热对象如果和普通实体共用主线程,会拖慢整张地图。

三篇的共同结论是:把非核心的东西从关键路径上拆出去,而不是想办法把它做得更快。

文章一句话核心内容
战斗服旁路计算架构:统计、AI 辅助和反作弊别挤占主循环把非权威计算从战斗主循环拆出,保证高峰时主循环仍然稳定
房间命令日志压缩架构:保留可回放能力又不让存储爆炸对命令日志做压缩与分级留存,保留关键可重放能力并压掉冗余
场景热对象拆分架构:一个世界 Boss 为什么会拖慢整张地图把局部热点从场景大循环隔离,同时保持状态对周围玩家可见

会话与客户端门控

这一组处理「长连接与客户端版本的安全边界」。游戏会话会持续很久,中途经历弱网、切后台、网关迁移、顶号与版本更新,如果票据只在登录时校验一次,长连接就成了安全盲区;客户端补丁与服务端能力不对齐时,问题会非常隐蔽,因此需要在进入核心玩法前确认版本、资源、脚本与服务端能力都在兼容范围内。

两篇合起来说明:长连接与客户端版本都需要持续校验,而不是一次性准入。

文章一句话核心内容
游戏会话票据续期架构:断线重连、顶号和长连接安全怎么一起处理设计可续期的会话票据,兼顾断线重连、顶号与长连接安全
客户端补丁门控架构:版本、资源和服务器能力如何对齐在进入核心玩法前校验版本、资源、脚本与服务端能力的一致性

资产预占与运营审计

这一组处理「资产与高风险操作的可控」。背包里的同一件物品可能同时被交易、强化与任务盯上,只靠最终扣除时检查一次会在并发与重试下出现重复使用,因此需要在进入高风险流程前先锁定;运营活动有草稿、审批、预热、开启、暂停、恢复、结算与归档多个阶段,每一步都要可查可回滚;GM 后台的封禁、补偿、改数与回滚能力则必须走双人审批。

三篇的共同点是:把「不可逆或高风险的动作」变成有预览、有确认、有审计、有回滚的受控流程。

文章一句话核心内容
库存预占架构:交易、合成和消耗如何避免同一件物品被用两次用预占锁定物品,流程结束后确认消耗或释放,避免并发重复使用
运营活动状态机审计架构:活动从预热到结算每一步都要可查把活动生命周期做成可审计状态机,记录谁在何时切到哪个状态
GM 操作双人审批架构:高风险后台工具不能只靠信任为高风险 GM 操作引入预览、双人确认、审计与回滚

队伍跟随与世界对象租约

这一组处理「跨场景与动态对象的归属」。组队进入副本跨越队伍服务、场景服务、副本调度与客户端迁移,队长进去了队友没进去、席位预留了成员断线,都是常见边界;开放世界里的宝箱、机关与临时 Boss 并非永久存在,多个场景进程与事件控制器都可能想操作它,因此需要租约来明确「谁负责」。

两篇合起来说明:跨服务协作必须先确定唯一负责人,再谈协作细节。

文章一句话核心内容
队伍跨场景跟随架构:队长进副本时队友为什么不能丢协调队伍、场景与副本调度,处理席位预留、断线与版本不兼容
世界对象租约架构:宝箱、机关和临时 Boss 谁来负责用租约明确动态对象的负责人,处理迁移、续约与接管

本月主题脉络

7 月的十篇笔记有一条共同主线:把非核心成本从关键路径上移走。旁路计算移走统计与风控,日志压缩移走存储压力,热对象拆分移走局部热点,库存预占把并发冲突提前暴露,活动审计与 GM 审批把风险操作移出即时执行路径。凡是「先做完再说」的设计,最终都会在高峰期暴露。

第二条主线是「所有权必须唯一」。世界对象租约、队伍跨场景跟随、库存预占,本质都是同一个问题的不同形态:一件东西在同一时间只能由一个角色负责,否则就会出现重复刷新、重复进入与重复消耗。

第三条主线是「高风险操作要有流程」。双人审批与活动状态机审计说明,后台能力越强,越需要把执行拆成预览、确认、执行与回滚几个可审计的阶段。

本月文章速查

按发布时间排列,便于对照当月写作节奏与主题推进顺序。表格里的分组与本页上面的四个主题小节一一对应。

日期文章所属分组
2021-07-02游戏会话票据续期架构会话与客户端门控
2021-07-05运营活动状态机审计架构资产预占与运营审计
2021-07-08世界对象租约架构队伍跟随与世界对象租约
2021-07-10客户端补丁门控架构会话与客户端门控
2021-07-13房间命令日志压缩架构战斗主循环与房间日志
2021-07-16战斗服旁路计算架构战斗主循环与房间日志
2021-07-19库存预占架构资产预占与运营审计
2021-07-22队伍跨场景跟随架构队伍跟随与世界对象租约
2021-07-25GM 操作双人审批架构资产预占与运营审计
2021-07-29场景热对象拆分架构战斗主循环与房间日志

推荐阅读路径

路径一 做战斗服与性能优化的同学

先读战斗服旁路计算与场景热对象拆分,建立「主循环只做权威裁决」的认知。再读房间命令日志压缩,理解排障能力与存储成本如何平衡;最后读 2021 年 8 月的技能效果结算流水线与 2021 年 8 月的排行榜写缓冲,把主循环压力来源逐个拆掉。

路径二 做网关与客户端兼容的同学

从会话票据续期进入,掌握长连接安全与顶号处理;再读客户端补丁门控,理解版本与能力对齐的必要性。最后读 2021 年 11 月的客户端能力协商,把版本判断从单一版本号升级为能力协商。

路径三 做资产与运维工具的同学

先读库存预占与 GM 双人审批,建立「高风险动作要有流程」的认知。再读 2021 年 9 月的运营熔断开关与 2021 年 12 月的货币预占托管,把止血能力与资产托管补齐。

交叉阅读提示

相关专题

全部文章 Game Golang Saas Rust 游戏开发 客户端开发 GameDev Products Lua 写作

客户端补丁门控架构:版本、资源和服务器能力如何对齐

背景:问题通常藏在正常路径之外 客户端补丁和服务端能力不对齐时,问题会非常隐蔽。玩家可能资源包没更新却进入了新副本,客户端没有新字段却收到新协议,或者脚本热更失败但登录仍然放行。补丁门控架构的目标,是在玩家进入核心玩法前确认版本、资源、脚本和服务端能力都处于可兼容范围。

9 分钟阅读

运营活动状态机审计架构:活动从预热到结算每一步都要可查

背景:问题通常藏在正常路径之外 运营活动不是一个简单开关。它有草稿、审批、预热、开启、暂停、恢复、结算和归档,每个阶段都有不同的入口、奖励、榜单和展示规则。活动出问题时,团队最需要知道的是谁在什么时候把活动从哪个状态切到哪个状态,影响了哪些区服和玩家。状态机审计架构就是把这条链路变成可查、可回滚、可解释的生产流程。

9 分钟阅读

游戏会话票据续期架构:断线重连、顶号和长连接安全怎么一起处理

背景:问题通常藏在正常路径之外 游戏长连接和普通 Web 登录最大的区别,是会话会持续很久,并且中途可能经历弱网、切后台、网关迁移、顶号、设备风险变化和客户端版本更新。一个登录票据如果只在登录时校验一次,后续长连接就会变成安全盲区;如果每个请求都同步问登录服,又会把网关拖慢。

9 分钟阅读