posts

游戏服务器端专题导航:从 300 篇架构笔记到 Skynet、Pitaya 与工程实战

这是 content/posts/game/server 这棵树的入口导航。它本身不放文章,而是把 300 篇后代内容按三条主线重新编排:170 篇实战工程笔记、20 篇 Skynet 与 Pitaya 框架笔记,以及 2021 年 2 月到 12 月共 110 篇月度架构笔记。每一节都给出子专题 section 入口、覆盖主题与适用场景,帮助后端同学按「框架选型、工程落地、单点问题」三种路径快速定位,而不是在时间线里逐篇翻。

这个目录是「在线游戏服务端」这一主题的总入口。它自己不存放文章,而是作为容器,把 300 篇后代内容按三条主线归拢:一是 170 篇实战工程笔记,覆盖从登录鉴权、房间调度、战斗结算到运维排障的完整链路;二是 20 篇框架笔记,聚焦 Skynet 与 Pitaya 两个 Lua 系服务端框架;三是 2021 年 2 月到 12 月共 110 篇月度架构笔记,每篇都从「一个看似边缘的功能为什么会触到核心状态」讲起。它适合正在做游戏后端的技术负责人、准备从单体服走向分布式的中级工程师,以及需要给团队定架构规范的主程。

使用方式:先看下面的速览确定自己处在哪个阶段,再按「工程实践、框架、月度笔记」三条入口跳转。工程实践适合边做边查,框架适合选型期通读,月度笔记适合按时间顺序补齐对某一类系统(奖励、匹配、背包、活动、同步)的完整认知。所有子专题都在同一棵树内,不涉及跨站跳转。

专题速览

项目内容
本目录直接文章0 篇,纯容器目录
后代文章合计300 篇
子专题数14 个(3 个工程与框架专题 + 11 个月度专题)
时间跨度2021-02 至 2021-12,覆盖长线手游服务端从立项到稳定运营的完整周期
内容形态问题驱动型架构笔记,先讲清一个真实事故或边界,再给数据模型、状态机与取舍
覆盖方向登录与网关、匹配与排队、房间与副本、战斗结算、背包与交易、活动与运营、跨服与合区、观测与排障
适用读者游戏后端工程师、服务端主程、技术负责人,以及从 Web 后端转入游戏行业的同学
阅读方式工程实践按需查,框架专题选型期通读,月度笔记按主题串读
关联技术栈Lua 系框架(Skynet、Pitaya)为主,工程实践部分也覆盖通用分布式与数据层议题
维护方式新增文章只补对应子专题,本页仅维护子专题入口与月度关键词,不逐篇罗列
与其他专题的关系上游是游戏专题总览,下游是 14 个子专题;跨领域的客户端与设计问题请走各自专题
使用提示本页不收录文章正文,若发现链接失效,应回到对应子专题核对 slug 是否变更

工程实践与框架

这一组是「怎么把服务端做出来」的三块地基。实战工程专题体量最大,回答的是真实项目里反复出现的工程问题;Skynet 与 Pitaya 两个专题则分别对应「轻量 Actor 框架」和「面向全球服的分布式框架」两条技术路线,适合在选型或迁移时对照阅读。

子专题规模一句话核心内容
游戏服务器实战工程170 篇从登录、网关、匹配、房间到背包、活动、运维的全链路工程笔记,是这棵树里最厚的一层
Skynet 服务端框架17 篇围绕 Actor 模型、消息调度、服务编排与热更,讲清 Skynet 在长线项目里的用法与边界
Pitaya 分布式框架3 篇面向多区服与全球同服的分布式框架笔记,覆盖路由、会话与集群扩展的基本形态

2021 年月度架构笔记

这 11 个月度专题是同一写作计划的连续产物,每月 10 篇,合计 110 篇。它们不按系统分类,而是按时间推进,读起来像一份「服务端架构问题年表」:从 2 月的奖励与匹配,到 12 月的货币托管与 RPC 预算,几乎每个月都对应一类线上争议的收敛过程。想补齐某个系统的完整视角,可以按月读;想快速定位,用下面的关键词列。

月份专题篇数主题关键词
2021 年 2 月10 篇首胜奖励、伤害统计、表情广播、宠物成长、家园拜访、PVP 隐藏分、职业配额匹配、传送门、UGC 地图、分线切换
2021 年 3 月10 篇拍卖冻结、战斗观测快照、命令回执、跨服排队令牌、活动脚本预算、道具堆叠、改名索引、剧情触发、组队重连、资源刷新调度
2021 年 4 月10 篇防沉迷时长、外观组合、结算校验流水线、人机隔离、跨场景聊天、公会权限、掉落表版本、地图标记订阅、体力时钟、新手检查点
2021 年 5 月10 篇战斗观测采样、跨服报名、坐骑同步、NPC 对话状态、语音令牌、玩家设置同步、奖励预览契约、场景门禁、赛季补发、临时属性快照
2021 年 6 月10 篇权威随机抽取、玩法日历、公会贡献账本、实例暖池、道具绑定、匹配准备共识、在线状态对账、称号读模型、任务事件背压、投降投票
2021 年 7 月10 篇战斗旁路计算、补丁门控、GM 双人审批、库存预占、活动状态审计、队伍跨场景跟随、命令日志压缩、热对象拆分、会话票据续期、对象租约
2021 年 8 月10 篇技能效果流水线、批量领奖、副本进度恢复、好友邀请一致性、通知优先级、排行榜写缓冲、实时指令整形、分片缓存协同、空间事件索引、分区交接
2021 年 9 月10 篇账号变更串行化、回放确定性、输入仲裁、配置灰度护栏、实例调度约束、维护排水、消息乱序缓冲、运营熔断、房间快照归档、状态校验和对账
2021 年 10 月10 篇成就触发聚合、Boss 仇恨表、协作解谜状态机、外观装配校验、网关连接排空、战争迷雾可见性、匹配处罚、制作流水线、配装锁定、世界天气控制面
2021 年 11 月10 篇战场目标计分、客户端能力协商、伙伴指令归属、跨模式成长归一、调试命令沙箱、转服预检、私密房邀请令牌、PVE AI 导演、场景物件持久化、社交隐私
2021 年 12 月10 篇跨分片邮件路由、货币预占托管、实体兴趣订阅、公会战报名锁定、NPC 刷新租约、举报证据流水线、副本锁定存档、RPC 超时预算、赛季商店库存、技能打断

如何选择入口

推荐阅读路径

路径一 技术负责人:先定架构分层与选型

先读工程实践专题里的网关、会话与分布式调度相关篇目,明确长连接、房间进程与数据层各自的责任边界;再对照 Skynet 与 Pitaya 两个框架专题,判断团队应该自研轻量 Actor 框架还是直接采用分布式框架;最后用 2021 年 9 月的实例调度约束、维护排水与运营熔断三篇,把「上线之后怎么安全变更」这件事在设计期就留出接口。

路径二 业务后端:按系统补齐完整视角

如果你正在做奖励、背包或交易,先读 2 月首胜奖励、3 月拍卖冻结、6 月道具绑定与 7 月库存预占,再补 12 月货币预占托管,可以拿到一条从「单次发奖」到「跨系统资产一致」的完整链路;如果你在做匹配与对局,从 2 月职业配额匹配、6 月准备确认、10 月匹配处罚读到 12 月公会战报名锁定,基本覆盖竞技系统的全部争议点。

路径三 排障与运维:从观测到止血

先读 3 月战斗观测快照、9 月房间快照归档与状态校验和对账,理解「事后能不能解释一局」需要哪些事实层;再读 9 月运营熔断开关与 10 月网关连接排空,掌握出事时的止血顺序;最后用 12 月的 RPC 超时预算把跨服务调用的治理口径固定下来。

相关专题

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

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

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

9 分钟阅读

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

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

9 分钟阅读

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

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

9 分钟阅读

玩家在线状态对账架构:在线、离线、断线中和幽灵会话如何收敛

背景:一个小功能背后往往有多条状态链 玩家在线状态会被很多系统使用:好友列表显示在线,队伍判断是否可邀请,场景判断是否还保留角色,邮件和通知决定走在线推送还是离线存储。只要登录服、网关、场景和社交读模型之间不同步,就会出现“好友显示在线但无法邀请”或“玩家离线了角色还在场景里”的问题。

9 分钟阅读

道具绑定规则架构:可交易、账号绑定和临时绑定不能靠硬编码

背景:一个小功能背后往往有多条状态链 同一个道具可能因为来源不同拥有不同规则:商城购买可交易,活动赠送账号绑定,副本掉落限时可交易,任务奖励角色绑定。玩家合成、邮寄、上架拍卖、跨服转移时,都需要判断这件道具能不能流转。绑定规则如果写死在各处,交易系统会越来越难维护。

9 分钟阅读

玩法日历编排架构:限时玩法、重置和跨时区活动如何统一管理

背景:一个小功能背后往往有多条状态链 长线游戏里每天、每周、每赛季都有大量时间规则:世界 Boss 周三开放,竞技场每天结算,限时副本按区服时区开启,节日活动跨自然日,维护又可能临时打断。玩法日历编排架构的目标,是让这些时间规则有统一事实来源,而不是每个系统自己写定时器。

9 分钟阅读

游戏有状态服务发布架构设计

无状态后台可以滚动重启,有状态游戏服务不能这么粗暴。房间服里有战斗,场景服里有玩家位置,网关上挂着长连接。一次普通版本发布,如果没有架构支持,就会变成“凌晨发版仍然踢掉一批玩家”。2021 年很多团队开始把发布从运维动作前移到服务设计里,因为有状态服务能不能发布,取决于它平时是否允许状态被关闭、转移和恢复。

9 分钟阅读

玩家称号与徽章读模型架构:展示系统不能拖慢核心状态

背景:一个小功能背后往往有多条状态链 玩家称号、徽章、头像框这类展示资产看似轻量,却会出现在好友列表、排行榜、聊天、战斗结算、个人主页和观战界面。它们如果每次都去玩家核心资料里实时查询,会把一个展示需求变成全站级读压力;如果各处自己缓存,又容易出现玩家已经换称号但排行榜还显示旧称号。

9 分钟阅读