category

Mmo

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

《MMO 服务器开发》18.3 进入玩法卷

卷一交出的七个零件——会话表、路由表、Actor 邮箱、定时器、幂等窗口、同步模型、权威校验——到了卷二《单服架构与玩法系统》手里会长成什么。本节给出「零件 → 卷二章节 → 用途」的交接映射表,讲清为什么玩法必须先有这套地基,把卷二不写的跨服、压测、运营划给卷三与卷四,最后把整张契约编码成可测试的 Go 类型。

12 分钟阅读
MMO 游戏服务端 网络编程
mmo

《MMO 服务器开发》18.1 卷一回顾:我们造出了什么

卷一 17 章各造了一件零件,却从没按一条主线串起来看过。本节把帧格式、会话表、路由、时间轮、Actor 邮箱、幂等窗口、同步模型与权威校验按依赖顺序排成一张「零件 → 文件 → 验收方式 → 实测结论」总账,逐章交代它解决了什么问题、留下了什么接口、下一章为什么需要它,并用五条贯穿全卷的伏笔说明这些零件如何拼成一个可裁决的世界。

11 分钟阅读
MMO 游戏服务端 网络编程
mmo

《MMO 服务器开发》16.1 协议 fuzz 与畸形包

长度字段来自网络,是不可信输入:一个声明「长度 = 4 GiB」的畸形包就能让服务端按声明预分配巨量内存。本节用 Go 原生 testing.F 给 internal/proto 的帧解析写一个 fuzzer,覆盖长度越界、截断、超长与 flags 组合,讲清「解析器必须对任意字节序列都不 panic、不无限分配」,并给出本机 5 秒百万级执行的实测。

6 分钟阅读
MMO 游戏服务端 网络编程
mmo

《MMO 服务器开发》15.2 移动与战斗合法性校验

移动和战斗是外挂最爱下手的两条路径。本节给 aegis 写一套真跑的校验:把「目的地」当提议、用位移与时间的比值判定超速、用单帧位移上限抓瞬移、用线段采样挡穿墙,再让服务端独占技能冷却与命中判定;并说明为什么校验函数要写成无时钟、无 I/O 的纯函数。每条规则都配了断言,跑得绿才贴进来。

6 分钟阅读
MMO 游戏服务端 网络编程
mmo

《MMO 服务器开发》15.1 权威边界与信任模型

外挂的根子不在客户端有漏洞,而在服务端信了不该信的话。本节把权威边界画清楚:哪些字段客户端只能提议、哪些必须由服务端裁决;再用一个真跑的信任契约表证明——客户端一旦发来服务端自有字段就是违规。最后说明为什么信任模型必须落到字段级,以及「把一切搬上服务端」并不是正确答案。

7 分钟阅读
MMO 游戏服务端 网络编程
mmo

《MMO 服务器开发》14.1 服务器时间线与时钟同步

「现在几点」这个问题在服务器上比想象中难:墙钟会被 NTP 校时、被 GC 暂停打断,客户端时钟和服务端更是各走各的。本节把逻辑时间与墙钟彻底分离,用单调钟搭一条只向前走的时间线,用 NTP 四时间戳估出客户端时钟偏移,并用确定性测试演示一次向后跳变是怎么被时间线吸收掉的。

7 分钟阅读
MMO 游戏服务端 网络编程
mmo

《MMO 服务器开发》13.2 服务器回滚与和解

预测让客户端先走一步,但权威永远在服务端:一旦服务端的答案和本地不一致,客户端必须回滚到权威状态、把未确认的输入重放一遍。本节把 13.1 的输入缓冲接到和解逻辑上,讲清裁剪-复位-重放三步、用一条测试给回滚的代价定上界(重放条数只跟 RTT 有关),并给出和解误差阈值的取法与「小误差平滑、大误差瞬移」的判据。

10 分钟阅读
MMO 游戏服务端 网络编程