posts

2021 年 11 月游戏服务器架构笔记导航:战场计分、能力协商与角色转服预检的 10 篇索引

本页是 content/posts/game/server/202111 目录下 10 篇游戏服务器架构笔记的主题导航,覆盖客户端能力协商、伙伴指令归属、场景物件持久化、战场目标计分板、角色转服预检、私密房间邀请令牌、线上调试命令沙箱、社交在线隐私、PVE AI 导演预算、跨模式成长归一化十个方向。每篇给出真实 slug 链接与一句话核心内容,并按「战场计分与 PVE 导演、客户端能力与调试沙箱、伙伴成长与转服、社交隐私与场景物件」四组重新编排。

这个目录是 2021 年 11 月的游戏服务端架构笔记合集,10 篇,本月的统一开场是「长线在线游戏的服务器架构,最怕把一个看似局部的玩法能力做成隐形全局规则」。作者用这一批笔记说明:战场计分、能力协商、转服预检这些功能一旦被当成局部实现,就会慢慢变成全服都在依赖的隐性契约。

具体到本月,几条主线分别是:战场计分与 PVE 导演处理「多人协作的结果如何度量与调度」,客户端能力协商与调试沙箱处理「能力与权限的边界」,伙伴归属、成长归一化与转服预检处理「跨系统与跨服的连续性」,社交隐私、私密房间与场景物件持久化则处理「可见性与状态留存」。

它适合正在做战场与 PVE 玩法、多端兼容、转服与社交系统的服务端工程师,也适合需要给团队定「隐性契约显式化」规范的主程。使用方式:先看速览确定系统归属,再按四个主题小节跳转;每篇都从一个真实边界讲起,落到计分模型、协商协议与预检清单。

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

专题速览

项目内容
本目录直接文章10 篇
时间跨度2021-11-03 至 2021-11-30
主题分组4 个(战场计分与 PVE 导演、客户端能力与调试沙箱、伙伴成长与转服、社交隐私与场景物件)
内容形态问题驱动型架构笔记,先给边界场景,再给计分模型、协商协议与预检清单
覆盖方向目标计分、AI 导演、能力协商、调试沙箱、成长归一、转服预检
适用读者游戏后端工程师、服务端主程、负责多端兼容与转服的技术负责人
前置知识了解基本的计分/权重模型、能力协商与数据迁移概念即可
阅读建议按主题跳转,四组相互独立;计分与转服两组建议优先阅读
单篇篇幅每篇约 3000 至 5000 字,含计分模型、协商协议与预检清单
复用价值计分归因、能力协商与迁移预检三类模式可迁移到任何多端与多区服系统
相关月份前接 2021 年 10 月的副本机制与网关排水主题,后续为 12 月的托管与租约主题
维护方式新增文章时只补主题小节与速查表,不移动既有文件,保证公开 URL 稳定

战场计分与 PVE 导演

这一组处理「多人协作的结果如何度量与调度」。大型战场里玩家不只击杀,还会占点、推车、护送、打断、修复与夺旗,客户端要实时看到比分,结算要知道谁贡献了什么,奖励要按团队结果与个人贡献发放,因此计分板需要一个可归因的模型;PVE 关卡则需要动态刷怪与节奏控制,玩家表现太好时加压、濒临团灭时放缓,但导演不能只看血量,否则容易被玩家利用。

两篇的共同结论是:把「结果」拆成可解释的贡献项,把「节奏」交给有预算约束的调度器。

文章一句话核心内容
游戏服务器战场目标计分板架构设计把占点、推车、护送与夺旗拆成可归因贡献项,支撑实时比分与结算发奖
游戏服务器 PVE AI 导演预算架构设计用带预算约束的导演调度刷怪节奏,避免被玩家利用且保持体验起伏

客户端能力与调试沙箱

这一组处理「能力与权限的边界」。长线手游同时存在官网包、渠道包、海外包与审核中的旧包,若服务端只按版本号判断,很快会遇到渠道包版本号不同、热更资源不同、审核服功能开关不同的问题,因此需要能力协商;线上事故时研发和值班需要查状态、查队列与临时修数据,没有工具只能连数据库,工具过于强大又可能误操作玩家资产,因此需要沙箱化。

两篇合起来说明:能力和权限都要按「最小必要」原则授予,并留下可审计的记录。

文章一句话核心内容
游戏服务器客户端能力协商架构设计用能力协商替代单一版本判断,处理多渠道包、热更与审核服差异
游戏服务器线上调试命令沙箱架构设计为线上调试提供受限命令与沙箱,兼顾排障效率与资产安全

伙伴成长与转服

这一组处理「跨系统与跨服的连续性」。宠物、佣兵与召唤物既听玩家指令又自主决策,需要明确指令归属,处理断线、召唤者死亡与多人共享的边界;不同模式都给经验、通行证进度或货币,如果各自计算收益,很快会出现某个低成本模式刷成长最快,因此需要归一化;角色转服看起来只是搬数据,实际牵涉公会、好友、拍卖、邮件、排行、未领取奖励与支付订单,必须先预检。

三篇的共同点是:跨边界之前先把口径与依赖理清楚。

文章一句话核心内容
游戏服务器伙伴指令归属架构设计明确伙伴指令的归属与接管规则,处理断线、死亡与多人共享
游戏服务器跨模式成长归一化架构设计用统一下发口径替代各模式自算收益,避免低成本模式刷成长
游戏服务器角色转服预检架构设计在迁移前预检公会、好友、拍卖、邮件与支付依赖,降低回滚成本

社交隐私与场景物件

这一组处理「可见性与状态留存」。在线状态被好友列表、组队推荐、观战入口与私聊可达性共同依赖,但玩家可能设置隐身、屏蔽某人或只对公会可见,因此可见性要按关系与设置分层;私密房间的邀请码看似简单,却会遇到泄露、过期码复用、踢人后反复进入与机器人刷入;场景物件则要处理可破坏木门、一次性宝箱与多人机关在重启后能否恢复。

三篇合起来说明:可见性要按关系计算,状态要按物件类型决定留存策略。

文章一句话核心内容
游戏服务器社交在线隐私架构设计按关系与隐私设置分层计算在线可见性,兼顾社交与隐私
游戏服务器私密房间邀请令牌架构设计设计可过期、可撤销、可限制的邀请令牌,处理泄露与刷入
游戏服务器场景物件持久化架构设计按物件类型定义持久化与恢复策略,处理破坏、领取与重启

本月主题脉络

11 月的十篇笔记有一条共同主线:把隐性契约显式化。计分规则、能力要求、成长口径、转服依赖、可见性规则、邀请权限,本月每一篇都在把一个原本藏在代码里的假设写成明确的模型。凡是没有显式定义的约定,都会在渠道包、跨模式、跨区服或跨关系时失效。

第二条主线是「跨边界要有预检与协商」。能力协商面向客户端与服务端之间,转服预检面向区服之间,伙伴指令归属面向玩家与 AI 之间,三者的共同点是在动作发生之前先确认双方都处于可兼容状态。

第三条主线是「按类型区分策略」。场景物件按类型决定是否持久化,可见性按关系决定是否下发,邀请令牌按权限决定是否可用,本月把「一刀切」替换成了「分类处理」。

本月文章速查

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

日期文章所属分组
2021-11-03游戏服务器客户端能力协商架构设计客户端能力与调试沙箱
2021-11-06游戏服务器伙伴指令归属架构设计伙伴成长与转服
2021-11-09游戏服务器场景物件持久化架构设计社交隐私与场景物件
2021-11-12游戏服务器战场目标计分板架构设计战场计分与 PVE 导演
2021-11-15游戏服务器角色转服预检架构设计伙伴成长与转服
2021-11-18游戏服务器私密房间邀请令牌架构设计社交隐私与场景物件
2021-11-21游戏服务器线上调试命令沙箱架构设计客户端能力与调试沙箱
2021-11-24游戏服务器社交在线隐私架构设计社交隐私与场景物件
2021-11-27游戏服务器 PVE AI 导演预算架构设计战场计分与 PVE 导演
2021-11-30游戏服务器跨模式成长归一化架构设计伙伴成长与转服

推荐阅读路径

路径一 做战场与 PVE 玩法的同学

先读战场目标计分板与 PVE AI 导演预算,建立「结果可归因、节奏有预算」两个认知。再读 2021 年 8 月的技能效果结算流水线,把战斗侧结构补齐;最后读 2021 年 10 月的 Boss 仇恨表,理解机制状态如何集中建模。

路径二 做多端兼容与运维工具的同学

从客户端能力协商进入,掌握能力协商替代版本判断的方式。再读线上调试命令沙箱,理解排障能力如何受限;最后读 2021 年 9 月的配置灰度护栏与 2021 年 7 月的客户端补丁门控,把变更与准入补齐。

路径三 做转服与成长系统的同学

先读角色转服预检与跨模式成长归一化,建立「跨边界先预检、跨模式先归一」的认知。再读伙伴指令归属,理解共享实体的所有权处理;最后读 2021 年 6 月的公会贡献账本,把跨系统口径统一起来。

交叉阅读提示

相关专题

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

游戏服务器伙伴指令归属架构设计

长线在线游戏的服务器架构,最怕把一个看似局部的玩法能力做成隐形全局规则。很多 RPG 或战术游戏都会加入宠物、佣兵、召唤物和临时伙伴。玩家可以下达跟随、攻击、撤退、释放技能等指令,AI 也会自主决策。问题在于,伙伴到底听谁的?玩家断线后伙伴是否继续战斗?召唤者死亡后召唤物是否消失?多人队伍里共享佣兵由谁控制?

8 分钟阅读

游戏服务器客户端能力协商架构设计

长线在线游戏的服务器架构,最怕把一个看似局部的玩法能力做成隐形全局规则。一款长线手游同时存在官网包、渠道包、海外包和审核中的旧包。运营想灰度新的组队界面,客户端团队新增了若干字段,服务器也希望给新包返回更丰富的队伍状态。若服务端只按版本号判断,很快会遇到渠道包版本号不同、热更资源不同、审核服功能开关不同的问题。

8 分钟阅读