posts

文章归档

PlumePHP 全站文章的归档入口,按时间倒序汇总各专题的技术文章,并提供按主题浏览的专题分类入口。

这里是全站文章的归档入口,下面是按时间倒序排列的全部文章。若想按主题浏览,请从首页的专题分类进入。

全部文章

全部文章 Books game Java Indie golang 客户端开发 Minigame Saas rust Python
game

《游戏服务端编程实践》11.1 架构拆分与职责边界

从业务域、玩法、读写和团队四个维度讨论服务拆分,给出变更频率、伸缩差异、故障隔离、数据所有权与认知负担五条判据,识别共享数据库、共享缓存 key 与跨服务 JOIN 三种反模式,并用 Go 依赖图实现环检测、资源所有权校验与越权拒绝,附可运行测试。

9 分钟阅读
game server game in action game server development tutorial complete
game

《游戏服务端编程实践》10.3.3 负载均衡与消息分片

讨论聊天服按频道分片时的分片键选择、一致性哈希的稳定性、实例摘除与迁移顺序、跨分片私聊和热点频道隔离,并给出可测试的 ShardRouter 实现,避免同一频道被多个实例重复处理;文章用路由器代码说明频道归属的不变量,并给出迁移与热点回退的检查清单。

7 分钟阅读
game server game in action game server development tutorial complete
game

《游戏服务端编程实践》10.3.2 实现群聊与频道广播

沿着客户端到网关再到聊天服的完整链路,拆解群聊成员表来源、在线推送与离线转存、发言长度与频率限制、重复消息抑制,并给出可测试的 GroupChat 实现,说明广播必须只落在真正的成员身上;文中用假连接验证投递边界、离线补发顺序与限频窗口的边界。

6 分钟阅读
game server game in action game server development tutorial complete
game

《游戏服务端编程实践》10.3.1 消息通道与订阅模型

从 Redis Pub/Sub 的至多一次语义出发,梳理聊天频道命名、发布与订阅连接分离、断线重连后的补订阅,并给出可测试的内存 Broker 实现与频道校验规则,帮助读者判断哪些消息能走 Pub/Sub、哪些必须换用持久化队列;文中测试覆盖多订阅者、退订与重连补订阅。

7 分钟阅读
game server game in action game server development tutorial complete
game

《游戏服务端编程实践》10.2.3 社交互动与排行榜

从赠送体力、点赞和组队邀请的共同骨架出发,讨论关系校验、频率限制、收益上限与幂等键,再比较全服、好友、公会排行榜的数据来源和读写成本,说明密集并列名次、稳定排序与赛季重置,并给出维护 TopN 的 RankBoard 实现和测试,同时指出读放大、缓存与赛季版本失效的边界。

7 分钟阅读
game server game in action game server development tutorial complete
game

《游戏服务端编程实践》10.2.2 公会 / 联盟模块

拆解公会与联盟的两层组织结构、成员角色与权限矩阵,讨论加入退出、踢人解散、会长主动转让与离线继承的判定,说明资产账本和跨服赛季数据的归属,并给出带容量、终态和继任规则的 Guild 状态机实现,以及权限、继任和解散清理的测试场景;所有权限必须由服务端统一校验,不能依赖前端隐藏按钮。

6 分钟阅读
game server game in action game server development tutorial complete
game

《游戏服务端编程实践》10.2.1 好友关系与黑名单

从单向申请与双向好友的模型差异出发,拆解同意、删除、数量上限和黑名单优先级,说明跨服好友如何用归一化 pair key 保证成对写入、把持久关系与在线状态分离,并给出可测试的 FriendStore 实现,以及重复申请、残留申请、拉黑后私聊与组队拦截的测试。

7 分钟阅读
game server game in action game server development tutorial complete
game

《游戏服务端编程实践》10.1.3 过滤与审查机制

聊天过滤不能只靠客户端,也不能把所有规则塞进一个大正则。本篇拆解长度与频率、敏感词、链接和广告的过滤层次,比较 AC 自动机与正则,讨论先发后审、误杀申诉和词表热更,并给出可测试的 Go 匹配实现,测试覆盖命中、重叠、大小写与全半角等四类变体。

10 分钟阅读
game server game in action game server development tutorial complete
game

《游戏服务端编程实践》10.1.2 消息队列与转发

聊天消息从接入到投递要经过校验、过滤、路由和队列。本篇比较同步转发与异步队列,讨论消息 ID、频道内顺序、去重与跨网关投递,并给出按频道分片串行、跨频道并行的 Go 队列实现,测试覆盖顺序、满队列、并行和关闭四种边界,以及队列隔离与背压策略。

11 分钟阅读
game server game in action game server development tutorial complete
game

《游戏服务端编程实践》10.1.1 私聊 / 公聊 / 频道模型

私聊、房间、世界和系统公告的投递语义并不相同。本篇拆解频道成员、权限、禁言、离线消息与多端同步,给出带成员校验和发言权限的 Go 实现与测试边界,并总结世界频道广播风暴、私聊绕过黑名单、离线消息无限堆积等常见错误,以及可运行的频道模型测试。

7 分钟阅读
game server game in action game server development tutorial complete
game

《游戏服务端编程实践》9.3.3 商城与交易系统

商城和玩家交易是货币离开与重新分配的主要通道。本篇讨论商品、限购、上下架与渠道差异,订单为什么必须按业务单号幂等;玩家交易用托管状态机保证双方原子性,并给出交易锁、二次确认和异常价格检测。Go 实现包含幂等 Buy 与托管 Trade,测试覆盖重复下单、余额不足和撤销退款。

6 分钟阅读
game server game in action game server development tutorial complete
game

《游戏服务端编程实践》9.3.2 产出与消耗平衡

经济系统是否健康,不能只看充值流水。本篇区分产出、消耗、存量与通胀四个指标,按日和周聚合流水,讨论工作室与脚本如何扭曲数据,并给出可审计的调控手段。Go 实现用 Ledger 记录带分类和时间的产出消耗,支持时间窗口汇总与重复导入幂等,最后总结常见错误。

7 分钟阅读
game server game in action game server development tutorial complete
game

《游戏服务端编程实践》9.3.1 货币模型与汇率

游戏经济系统的第一块地基是货币模型:免费、付费、绑定、活动代币各自能做什么,兑换方向与手续费如何限制,金额为什么必须用整数最小单位。本篇给出兑换边界、滑点与溢出的处理方式,并用 Go 实现带方向的 Wallet 与可运行测试,同时讨论跨币种结算和兑换上限这类常见漏洞。

7 分钟阅读
game server game in action game server development tutorial complete
game

《游戏服务端编程实践》9.2.3 日常任务与成就系统

日常任务的核心不是每天把计数清零,而是用稳定的周期键判断是否跨期。本篇讨论自然日与 ISO 周的时区边界、跨天在线与幂等重置、一次性与累计成就、进度与奖励分离,并给出防刷与离线补算策略,最后用跨天、重复重置、跨天在线和时区边界测试验证实现。

9 分钟阅读
game server game in action game server development tutorial complete
game

《游戏服务端编程实践》9.2.2 触发条件与事件总线

任务进度不应该由战斗、背包、场景代码各自直接修改。本篇把击杀、采集、到达统一成事件,讨论事件结构、订阅顺序、同步与异步边界、幂等键与事件风暴,并给出带去重和 panic 隔离的事件总线实现,最后总结重入与条件校验的常见错误、边界与实现中的取舍。

8 分钟阅读
game server game in action game server development tutorial complete
game

《游戏服务端编程实践》9.2.1 任务状态机

任务不是完成与未完成的布尔值,而是未接、进行中、可交付、已完成、失败五个状态。本篇拆解前置任务、互斥关系与四类进度模型,给出交付时状态变更与奖励发放的原子实现,并用前置未满足、重复交付、放弃重置三组测试覆盖边界,最后总结任务系统最常见的数据不一致问题。

8 分钟阅读
game server game in action game server development tutorial complete
game

《游戏服务端编程实践》9.1.1 物品与堆叠模型

从物品定义与实例分离讲起,说明最大堆叠、不可堆叠、绑定隔离三条规则,对比槽位背包与无序背包在索引稳定性和空槽管理上的取舍,并用 Go 实现事务化 Add、稳定槽位、拆分合并与跨堆填充测试,最后给出背包协议与失败场景的边界建议,帮助读者建立可测试的物品模型。

10 分钟阅读
game server game in action game server development tutorial complete
game

《游戏服务端编程实践》8.3.3 重连与状态恢复

帧同步战斗断线后,玩家需要带着战斗 ID、最后确认帧和会话凭证回到同一场战斗。本篇比较快照恢复与全量重放,讨论断线期间的冻结、托管和踢出,并给出幂等的 Resume 实现,以及快照过期、帧号超前和重复重连的测试,最后总结恢复流程的常见错误与边界。

5 分钟阅读
game server game in action game server development tutorial complete