基于 due v2.5.8 封装的分布式游戏服务端框架,开箱即用。
# 获取依赖
bash update_due.sh
# 启动基础设施(etcd + Redis)
docker compose -f docker/docker-compose.yaml up -d
# 启动网关(WebSocket)
go run cmd/gate/main.go
# 启动大厅逻辑服
go run cmd/hall/main.go- 模块化架构 — 可插拔的游戏模块(auth / player / clean / ...),遵循 DDD 四层 internal 架构
- Actor 串行化 — 同一玩家的所有状态修改在单 goroutine 中排队执行,杜绝读-改-写并发竞争
- 稳定节点归属 — 普通断线不解绑玩家节点,节点归属只由登录初始化和显式迁移流程修改
- 编号统一 — 路由和错误码共用
模块号 × 1000 + 子码公式,心智负担低 - Store 抽象 — 接口隔离存储实现,开发用内存,生产切换 Redis/MySQL/MongoDB
ddd/ DDD 领域驱动设计建模工具
cmd/ 入口点(gate、hall、frontend、backend、gsc)
stack/ 核心框架:应用启动、路由、错误码、Module 接口、中间件、debug 调试服务
module/ 可插拔游戏模块(actor / auth / clean / player)
proto/ 客户端通信协议(protobuf,客户端与服务端共用)
docs/ 设计文档
- 滚动更新
- 分布式事务
- 添加模块新模块
- 自动添加模块客户端协议
- 自动添加模块错误码
- 生成模块文档
- Token 共享存储(Redis 实现,支持跨节点令牌验证)
- 其余模块接入
- 背包系统
- 邮件系统
- 任务系统
- 排行榜系统
- 商店系统
- 生产环境 Store 实现(Redis / MySQL / MongoDB)
- 测试覆盖
-
go语言规范补充(命名规范、代码组织、并发)