tag

Go

共 679 篇文章。
全部文章JavaGo书稿TypeScript游戏开发独立开发者小游戏游戏设计Godot性能优化RustKafkaPython游戏引擎
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 游戏服务端 玩法系统