posts

《MMO 服务器开发》单服架构与玩法系统 · 全书目录与章节索引(55 篇)

《MMO 服务器开发》卷二《单服架构与玩法系统》全 55 篇,把玩法装进卷一造好的 aegis 底座:从 gateway / logic / scene / data 分层与状态归属起步,经实体运行时与对象池、地图实例生命周期、九宫格与十字链表 AOI 从零实现及基准对照、服务器权威移动与 A* 寻路、战斗指令管线与结算防重、掉落表与确定性随机、背包并发修改、属性成长与离线推进、任务依赖图与每日重置、聊天频道与好友关系、组队与队长迁移、公会仓库与公会战报名、排行榜分段与赛季结算、邮件投递与红点聚合、拍卖行托管与竞价回滚、匹配算法与大厅生命周期,最后把《晨曦大陆》装配成一个单服可玩的版本并跑出承载数字。

《MMO 服务器开发》卷二《单服架构与玩法系统》全 55 篇,是把玩法装进卷一那条管道的一卷。卷一已经让 aegis 能登录、能移动、能广播,但那个服务器里没有游戏。卷二从「状态归谁」这一条主线出发,先把分层与实体运行时做出来,再逐个实现玩法域:AOI 与移动、战斗与掉落、背包与属性、任务与成长、聊天与社交、组队与公会、排行榜与邮件、交易与匹配——每一个域都遵循同一套「谁持有状态、怎么改状态、怎么结算、怎么审计」的模板。每一节都写代码,每一节的代码都在本机真跑过,跑出来的结果就是这一节的结论。

本卷不需要任何中间件:排行榜、缓存、队列全部用内存实现,只用 Go 标准库,你可以在任何一台装了 Go 1.26 的机器上把全部 54 节代码原样跑一遍。

本页是《单服架构与玩法系统》的全书目录:按章节顺序列出全部 55 篇,点击标题直达正文。也可以从各节末尾的「阅读导航」按顺序通读,或先看目录篇 里的学习路径与验收清单。

全书概览

项目内容
书稿《MMO 服务器开发》卷二《单服架构与玩法系统》
篇数55 篇(正文 18 章 54 节 + 目录篇)
领域MMO 单服玩法系统从零实现
贯穿项目《晨曦大陆》——一款多人在线开放世界小游戏
从零服务端aegis——Go 实现,只用标准库,可本机真跑
承接复用卷一《网络与并发内核》 的帧格式、命令号与幂等约定
阅读方式从目录篇 进入按顺序通读,或按查漏场景跳读
实测环境Go 1.26.0、macOS Darwin 25.3.0
可运行性54 节全部为 L1 纯逻辑或 B 基准,本机实跑,基准数字附原始数据

全书目录

前置

篇目核心内容
目录本卷定位、阅读路径、单服可玩验收清单与可运行性口径

第一部分:分层与运行时(第 1–3 章)

节文章核心内容
1.1gateway / logic / scene / data 分层四层职责边界与数据流向
1.2状态归谁:防重复发奖与旧数据覆盖单写者、读副本与版本号
1.3本书范围与站内架构文章的分工与站内 170 篇架构文的四重区隔
2.1entity runtime 与句柄实体存储布局与句柄寻址
2.2生命周期与对象池生成、销毁与分配压力
2.3运行时所有权与迁移实体归属与跨实例迁移
3.1地图数据结构与逻辑坐标网格、阻挡与浮点逻辑坐标
3.2实例创建与回收实例池与回收时机
3.3分线、副本与主城/野外三类场景的差异与切换

第二部分:空间与战斗(第 4–6 章)

节文章核心内容
4.1九宫格 AOI 从零实现格划分、邻居查询与进出事件
4.2十字链表 AOI 从零实现双向链表维护与增量更新
4.3基准:三种 AOI 的 CPU 与带宽对照三种方案的实测对照与选型结论
5.1服务器权威移动移动指令与位置推进
5.2A* 与导航网格从零实现 A* 与网格寻路
5.3移动校验与防穿墙速度上限、路径合法性与瞬移检测
6.1指令投递与执行队列战斗指令的入队与定序执行
6.2技能与 Buff 建模技能、冷却与 Buff 叠加规则
6.3战斗结算与防重复发奖结算幂等与奖励只发一次

第三部分:资产与成长(第 7–9 章)

节文章核心内容
7.1掉落表服务掉落表结构与权重抽取
7.2确定性随机与随机种子每实体独立 PRNG 与可复现种子
7.3保底机制与掉落审计保底计数器与掉落流水
8.1物品与堆叠模型物品实例、堆叠与格子
8.2并发修改与事务单写者串行化与原子变更
8.3装备与强化装备槽位、属性贡献与强化
9.1属性计算与加成来源基础值、加成与结算顺序
9.2等级与成长状态机经验、升级与成长节点
9.3离线推进与体力离线收益与体力恢复

第四部分:任务与社交(第 10–12 章)

节文章核心内容
10.1任务依赖图与循环检测前置图与拓扑校验
10.2事件上报与进度服务事件驱动进度与幂等计数
10.3每日重置与时区窗口重置边界与跨时区口径
11.1频道模型与权限频道类型、订阅与发言权限
11.2敏感词与限速治理词库匹配与令牌桶限速
11.3好友关系与关系一致性双向关系与状态一致
12.1队伍状态与入口控制队伍状态机与加入条件
12.2满员判断与匹配锁定并发入队与锁定
12.3掉线处理与队长迁移掉线保留与队长接替

第五部分:组织与资产流转(第 13–15 章)

节文章核心内容
13.1入会、职位与权限公会成员与权限模型
13.2公会仓库与捐献流水共享仓库与流水对账
13.3公会战报名与锁定报名窗口与名单锁定
14.1为什么不能只用一张表排行榜查询代价与结构选择
14.2写缓冲与分段榜单跳表、分桶与写合并
14.3结算与赛季边界赛季切换与发奖
15.1邮件投递与去重投递幂等与重复抑制
15.2附件、过期与流拍结算附件领取与过期返还
15.3红点聚合与离线同步红点计数与离线补偿

第六部分:交易、匹配与综合(第 16–18 章)

节文章核心内容
16.1资产冻结与托管上架冻结与托管账户
16.2竞价并发与异常回滚出价竞态与回滚
16.3价格索引与经济风控价格指数与异常交易识别
17.1匹配算法与公平性评分收敛与匹配公平
17.2大厅生命周期:防幽灵房间大厅创建、超时与回收
17.3实例分配与回收实例池分配与归还
18.1把玩法系统接进 aegis装配顺序与模块接线
18.2《晨曦大陆》单服可玩端到端验收脚本与清单
18.3单服承载数字玩法接入后的真实承载数据

怎么用这份索引

相关阅读

全部文章 Golang Game Saas Rust Python Java 游戏开发 客户端开发 GameDev Typescript
mmo

《MMO 服务器开发》11.3 好友关系与关系一致性

好友关系是 MMO 里最容易不一致的共享状态:它是双向的,一次只写一半就会留下「半边关系」。本节把关系图建成有向边、把双向一致写死成不变量、用全局唯一的 opID 幂等窗口挡住重发,并给出半边检测与补偿的实现,呼应卷一的幂等窗口与顺序保证,让关系一致从口头约定变成机器可验证的断言。

6 分钟阅读
MMO 游戏服务端 玩法系统
mmo

《MMO 服务器开发》11.2 敏感词与限速治理

敏感词与限速是聊天管线的两级治理:前者挡内容,后者挡频率,两者都必须便宜到能挂在每条消息的同步路径上。本节用 AC 自动机实现一次扫描命中所有敏感词、用每玩家每频道的令牌桶限速,再把禁言、限速、过滤串成一条顺序固定、可 go test 的三级管线,并给出本机实测的匹配开销对照。

7 分钟阅读
MMO 游戏服务端 玩法系统
mmo

《MMO 服务器开发》10.3 每日重置与时区窗口

每日任务几点重置,是整条时间链上最容易被时区坑掉的地方:主机在哪个时区、夏令时怎么切、时钟被 NTP 往回拨一下会不会重置两次。本节把「今天」钉在一个固定时区上,用「日键」而不是时间减法判断跨天,并让重置跟踪器只向前触发,最后用真跑的测试覆盖边界、周界与时钟回拨。

8 分钟阅读
MMO 游戏服务端 玩法系统
mmo

《MMO 服务器开发》10.1 任务依赖图与循环检测

任务表里一条前置关系画错,整条任务线就会锁死:玩家接了 A 却发现要先完成 B,而 B 又要求先完成 A。本节把任务配置建成有向图,用 Kahn 算法做拓扑排序,用三色 DFS 把设计者画错的那一圈环精确指出来,再用一组真跑的 Go 测试证明正常表能排出合法顺序、环表能被定位到具体节点。

7 分钟阅读
MMO 游戏服务端 玩法系统
mmo

《MMO 服务器开发》8.3 装备与强化

装备是背包里唯一同时带「位置」和「个体属性」的东西。本节实现装备位与换装(旧装备换下回背包),给出按等级配置成功率、材料消耗与保底等级的强化表;强化在同一事务里扣材料、失败掉级、材料不足整笔回滚,随机源由调用方注入以保证可复现,产出的强化等级作为第 9 章属性计算的输入。

8 分钟阅读
MMO 游戏服务端 玩法系统
mmo

《MMO 服务器开发》6.3 战斗结算与防重复发奖

一次公会战结算要同时做对三件事:命中扣血、判定死亡、发放奖励,而且重复到达的结算请求只能发一次奖。本节给 aegis 从零写战斗结算与防重复发奖:为什么结算和发奖必须分开、迟到的伤害包怎么被死亡状态挡掉、为什么发奖的去重键是业务指纹而不是传输序号,并链回卷一的幂等窗口。

6 分钟阅读
MMO 游戏服务端 玩法系统