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 服务器开发》18.1 把玩法系统接进 aegis

前十七节把十四个玩法域各自写成了能跑的包,但它们还是散落的零件。本节讲怎么把玩法系统接进卷一造好的 aegis:每个域往同一张 cmd→handler 路由表登记命令,复用卷一的 11 字节帧协议与分发模型,再用一个进程、一个世界的 Server 把世界、战斗、掉落、背包、任务、队伍装起来,并给出装配后的实测结果。

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

《MMO 服务器开发》16.3 价格索引与经济风控

价格索引是经济风控的眼睛:它把散落的成交记录压成中位价与成交量加权均价,再用偏离度和对手方频次给每笔拟成交打分。本节用 internal/trade 的 PriceIndex 从零实现滑动窗口中位价、VWAP、对敲计数与三级风控打分,并用测试验证单笔异常价不污染中位价、滑出窗口的对敲计数会衰减、自买自卖与严重偏离会被拦下。

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

《MMO 服务器开发》16.2 竞价并发与异常回滚

竞价并发要同时守住三条不变量:同一拍品任意时刻只有一个有效最高价、被顶掉的出价人金币分文不损、出价失败时拍卖状态一个字节都不变。本节用 internal/trade 的 Auctioneer 从零实现出价与回滚,把「先冻新、再退旧」这个固定顺序讲透,并用 60 个 goroutine 并发出价配合 go test -race 验收唯一赢家与金币守恒。

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

《MMO 服务器开发》16.1 资产冻结与托管

资产冻结与托管是拍卖行与玩家交易的地基:上架时物品必须离开卖家背包,出价时金币必须从可用栏搬进冻结栏,成交或流拍再按结果分流。本节用 internal/trade 的 Escrow 从零实现这套托管,硬约束是任何一步失败都不留下半冻结状态,并用 go test 把重复冻结、金币守恒、成交过户与已结算退回逐一钉死。

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

《MMO 服务器开发》14.1 为什么不能只用一张表

排行榜看着只是「按分数排个序」,可一旦塞进一张表用 ORDER BY 去查,读放大、写入热点、并列名次和「我的排名」四件事会同时把它压垮。本节先讲清排行榜真正要回答的问题、为什么一张表不够,再在 internal/rank 包里写出一个正确但注定会崩的朴素榜单,作为后两节优化版的对照基线。

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

《MMO 服务器开发》13.3 公会战报名与锁定

公会战的第一步是报名与锁定:报名只能在开窗时段内、由持有报名权限的成员发起;名单必须在截止时刻一次性冻结,之后入会或退会都不再改变参战名单。本节用 aegis 从零实现报名窗口、权限校验与名单快照,讲清锁定为什么必须幂等,并说明卷二只做单服内的报名与锁定,真正的跨服对战留给卷三,最后用真跑的 L1 测试钉死窗口边界、权限与冻结。

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

《MMO 服务器开发》13.2 公会仓库与捐献流水

公会仓库是多人共享的资产容器,捐献则是一份只增不改的流水账。本节用 aegis 从零实现:仓库按物品种类限槽但允许无限堆叠,捐献用请求号幂等去重避免重试翻倍,提现按职位控权并按日限额。重点讲清「先判幂等再写库存」的顺序为什么是正确性的关键,并用真跑的 L1 测试验证重试不翻倍、超额提现被拦、跨日重置生效。

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

《MMO 服务器开发》13.1 入会、职位与权限

公会系统是 MMO 里第一个跨玩家的持久组织:入会有自由与审批两种策略,职位有会长到成员五级,权限是一张职位到动作的位掩码表。本节用 aegis 从零实现单服公会模型——把权限收敛成一张可审计的表、让入会与审批幂等、把职位变更约束在层级之内,并用真跑的 L1 测试钉死满员竞态、重复申请与越级任免三条边界。

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