category

Mmo

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

《MMO 服务器开发》13.1 输入缓冲与本地预测

客户端先走一步能掩盖一个 RTT 的延迟,代价是服务端必须记住每个玩家「已经确认到哪一条输入」。本节给 aegis 的 predict 包写一个真实的输入缓冲:客户端给每次输入编号、本地立刻前进、把未确认的输入排进重放队列,服务端回一个确认号。最后用固定随机种子跑 500 步确定性回放,验证「服务端同意时客户端预测与权威状态逐字节相等」。

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

《MMO 服务器开发》9.3 世界时钟与 Tick 预算

世界时钟把不稳定的墙钟时间折算成固定步长的逻辑时间,让「第 N 帧发生了什么」完全确定、可重放。本节从零实现一个逻辑帧时钟:固定步长与累加器、单帧步数上限、追帧 / 丢弃 / 降频三种超支策略,以及时间缩放;并用确定性测试演示「死亡螺旋」是怎么形成的、丢弃策略又是怎么把它掐断的。

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

《MMO 服务器开发》9.1 心跳超时与技能冷却

心跳超时、技能冷却、Buff 到期是三类时间尺度完全不同的定时任务,却常被同一套「一个任务一个 time.Timer」的写法一锅端。本节先厘清三种尺度,再给 aegis 写两个真正省掉定时器的结构:惰性判定的冷却表与单节拍扫描的心跳看门狗,并用本机基准对比每定时器一个堆节点与共享扫描的成本。

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

《MMO 服务器开发》6.3 断线重连与重连票据

玩家掉线后必须能秒回游戏,但又不能凭一个账号名就免密登入。本节给 aegis 设计一张重连票据:用 HMAC-SHA256 签发、绑定账号与连接序号、带过期时间、且只能使用一次。我们用标准库把它从零写出来,并用测试逐一证明正常校验、签名被篡改、过期、以及同一票据二次使用这四种路径的行为。

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