posts

在线联机原型全集第 9 章导读:协作扫雷与共享状态的乐观锁

《在线联机原型全集》第 9 章的章节导读。本章用协作扫雷(Cooperative Minesweeper)验证多人同时操作同一共享状态时的冲突解决:乐观锁与版本号控制并发写入、幂等操作 ID 防止重复执行、ETag 与 CRDT 式的冲突合并、Redis 快照保存全局状态、限时任务调度与超时裁定,以及操作序列的审计与回放。本页给出本章定位、核心验证目标、技术栈建议、文章清单与相邻章节关系。

第 8 章的玩家各自守着一份秘密,第 9 章反过来:所有玩家共享同一个世界,谁都可能在同一毫秒点击同一个格子。这看起来只是「多人点同一张图」,但它把分布式系统里最经典的难题直接搬进了游戏——并发写入、幂等性、版本冲突、超时裁定。协作扫雷的失败条件也很有意思:任何人踩雷,全体失败。这让冲突解决的正确性直接等价于游戏体验,而不是一个可以事后补偿的后台问题。

本章定位

核心验证目标

  1. 并发操作控制:多人同时点击同一格时的乐观锁与版本号机制,保证「先到先得」而非「双写双翻」。
  2. 幂等性保障:重复提交不重复执行,每个操作携带唯一 ID,重试安全。
  3. 冲突合并:多人修改同一资源时的 ETag 或 CRDT 式合并策略,翻格与标雷需区别对待。
  4. 全局状态快照:以 Redis 保存棋盘快照,支持快速恢复与多实例共享。
  5. 限时机制:三分钟倒计时的定时器与超时仲裁,超时即判负。
  6. 审计日志:操作按时间序列记录,支持事后回放与责任追溯。
  7. 协作胜负判定:踩雷全体失败、翻完所有非雷格全体胜利,胜负判定必须在并发环境下保持唯一。

技术栈建议

本章文章

文章标题核心内容
在线联机原型全集:第 9 章 协作扫雷 / 限时合作解谜(Cooperative Minesweeper)完整 PRD:GridEngine、ConflictResolver、TimerScheduler、AuditLogger 四模块设计,含乐观锁、幂等 ID 与限时裁定流程

本章只有一篇 PRD;共享状态的事务模型在第 10 章的城格建造 mini-SLG 中会被进一步放大到经济结算层面。

与相邻章节的关系

相关专题

全部文章 Game Golang Saas Rust 游戏开发 客户端开发 GameDev Products Lua 写作