基于 due v2.5.5 封装的分布式游戏服务端框架,开箱即用。
# 获取依赖
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/node/main.go- 模块化架构 — 可插拔的游戏模块(auth / player / ...),遵循统一的 6 文件模式 + gRPC
- Actor 串行化 — 同一玩家的所有状态修改在单 goroutine 中排队执行,杜绝读-改-写并发竞争
- 断线无缝重连 — 30s Grace Period 内重连保留内存数据,避免频繁清理重建
- 编号统一 — 路由和错误码共用
模块号 × 1000 + 子码公式,心智负担低 - Store 抽象 — 接口隔离存储实现,开发用内存,生产切换 Redis/MySQL/MongoDB
ddd/ DDD领域驱动设计建模工具
cmd/ 入口点(gate、node)
stack/ 核心框架:应用启动、路由、错误码、Module 接口、中间件、延迟清理器
module/ 可插拔游戏模块(actor / auth / player)
proto/ 客户端通信协议(protobuf,服务端客户端共用)
docs/ 设计文档
- 添加模块新模块
- 自动添加模块客户端协议
- 自动添加模块错误码
- 生成模块文档
- Token 共享存储(Redis 实现,支持跨节点令牌验证)
- 其余模块接入 CleanableService
- 生产环境 Store 实现(Redis / MySQL / MongoDB)
- 测试覆盖
- 邮件系统
-
go语言规范补充(命名规范、代码组织、并发) - 各模块 Store 接口文档