category

Mmo

共 180 篇文章。
全部文章GolangGameSaasRustPythonJava游戏开发客户端开发GameDevTypescriptCocosEngineMmoLua
mmo

《MMO 服务器开发》10.1 跨服务事务与补偿

跨服发奖发到一半崩了怎么办:点券扣了奖励没到、奖励到了流水没记。本节把跨服务事务的三种方案摆开——2PC 为什么不适合游戏服、TCC 的冻结确认撤销、Saga 的编排式与编舞式——并用 aegis 的 saga 包实现一套可跑的 Saga 状态机与补偿动作,断言正向全成功状态一致、中途失败逐个补偿回到一致态、补偿自身失败时重试并打上人工介入标记。

8 分钟阅读
MMO 游戏服务端 分布式
mmo

《MMO 服务器开发》1.3 本书范围与站内服务治理文章的分工

站内已经有一大批游戏服务器架构文章,卷一写了网络内核、卷二写了单服玩法,那这一卷《分布式与跨服》到底写什么、不写什么?本节把三份内容的分工摊开讲清楚:站内架构文负责「应该怎么设计」,卷一与卷二负责「底座与单服怎么写」,本卷负责「集群与跨服从零实现并跑出数字」,并把这条边界编码成一张可查询、可测试的表。

11 分钟阅读
MMO 游戏服务端 分布式
mmo

《MMO 服务器开发》1.2 什么时候该拆、什么时候不该

上一节定下了集群拓扑,但拆不拆是另一回事——拆分从来不是免费的。这一节先列出一份拆分成本清单:一次 RPC 换来多少容量、又付出多少延迟与运维面,再把「单服能扛到多少 CCU 才值得拆」拆成三道可判定的闸门,最后用一个能跑的容量-拆分决策函数把这三道闸门编码成代码。

7 分钟阅读
MMO 游戏服务端 分布式
mmo

《MMO 服务器开发》1.1 分区分服与集群拓扑

卷一造出了单机的网络内核,卷二装上了单服的玩法系统,可一旦在线人数上来,一台机器就扛不住了。这一节先把集群的三条路线——分区、分服、全球同服——摊开对比,再把网关、场景、战斗、世界、目录五类节点的职责边界定清楚,最后用一份能跑的 Go 代码把「哪个节点持有什么状态」钉成断言。

9 分钟阅读
MMO 游戏服务端 分布式
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 游戏服务端 玩法系统