快节奏多人联网游戏Demo,UGK-Server:unity、go、kcp server 。
服务器使用微服务架构,服务器游戏逻辑需要物理碰撞、寻路的使用Unity、C#开发,其他使用Go开发。
对应客户端ugk-client。 开发中......
服务 | 描述 |
ugk-agent | 执行unity服务器docker进程的创建销毁 |
ugk-agent-manager | 管理ugk-agent服务,为玩家房间分配游戏进程 |
ugk-api | HTTP Restful请求接口 |
ugk-charge | 充值 |
ugk-chat | 聊天 |
ugk-common | 公共逻辑封装 |
ugk-game | 游戏微服务 |
ugk-gate | 网关,消息转换 |
ugk-lobby | 大厅,一般逻辑 |
ugk-login | 登录、账号 |
ugk-message | 协议消息 |
ugk-resource | 文档、脚本 |
ugk-stress-testing | 压力测试客户端集群 |
- Unity、C# 客户端和服务器
- Go 服务器
- Kcp 网络通信 忘记和网关,网关和后端服务通信
- Protobuf+Grpc 内部网络通信
- Zookeeper 服务发现注册
- Mongodb,Redis 数据存储
- Docker、Jenkins 进行CI/CD
- 网络同步、延迟、插值、回退(延迟补偿),物理同步,动画同步,位置方向同步
- 场景同步消息,transform同步消息,aoi管理
- 客户端同步封装,参考NetworkTransform、NetworkAnimator、NetworkRigidbody?(参考Mirror)
- 封装NetworkTransform 进行位置,方向,缩放同步,插值
- 客户端NetworkTransform 封装成抽象类,具体子游戏继承,子弹类需要同步速度,需要同步实体的唯一ID,配置ID,ConfigRole
- 服务器NetworkTransform只起配置作用,通过对象manager进行批量同步,子弹碰撞服务器检测,需要回滚
- 客户端和服务器配置都通过go服务器拉取
- 完整的GalacticKittensMatch流程
- Unity服务器日志打印类文件,添加Trace级别日志屏蔽输出
- 玩家进入游戏后端已经可以通过agent创建unity docker容器;下一步需要前端进入游戏场景,后端unity服务器开发,
- 房间号没有存数据库递增,一直是1?
- 场景消息同步定义,后端刷出小怪及客户端显示角色 ,小怪,boss同步频率低(1s一次?),给速度,客户端模拟,服务器出发了碰撞等在同步
- Websocket网络通信
- 压力测试客户端使用ugk-web开发界面(vue3)
- 添加聊天、排行、匹配、房间(Mirror)服务
- 广告、充值接取
- 断线重连(ugk-client,unity后端服务器与网关等)
- 使用c#开发导表等图形化工具
- 服务器unity提取公共包,unity的package
- ugk-client 弹窗增加tween动画
- 后台管理系统查看unity docker服务器