快节奏多人联网游戏Demo,UGK-Server:unity、go、kcp server 。 服务器使用微服务架构,服务器端游戏逻辑需要物理碰撞、寻路的使用Unity、C#开发,其他使用Go开发。 对应客户端ugk-client。 实现原理和腾讯合金弹头 如出一辙,开发中......
- 微服务架构
- 前后端分离
- 自动化编排Docker容器(Unity dedicated server)
- 快照同步,状态同步预测插值
- 多玩家匹配,消息分发
- 减少服务器所需要的资源,最小化unity服务器资源内存、cpu消耗
- 游戏逻辑更加简单明了
- 可以减少网络带宽(Mirror和Unity官方的组件都封装了Spawn和Despawn,需要额外的消息同步特效,音效等)
服务 | 描述 |
---|---|
ugk-agent | docker中运行的unity服务器的创建与销毁 |
ugk-agent-manager | 管理ugk-agent服务,为玩家房间分配游戏进程 |
ugk-api | HTTP Restful请求接口 |
ugk-common | 公共逻辑封装 |
ugk-game | 游戏微服务 |
ugk-gate | 网关,消息转换 |
ugk-lobby | 大厅,一般逻辑 |
ugk-login | 登录、账号 |
ugk-message | 协议消息 |
ugk-resource | 文档、脚本 |
游戏 | 视频展示 | 描述 |
---|---|---|
game-galactic-kittens | bilibili | 2D多人飞船射击游戏 |
- Unity、C# 客户端和服务器
- Go 服务器
- Kcp 网络通信 客户端和网关,网关和后端服务通信
- Protobuf+Grpc 内部网络通信
- Zookeeper 服务发现注册
- Mongodb,Redis 数据存储
- Docker、Jenkins 进行CI/CD
- Mirror
- Unity Multiplayer Networking
- FishNet
- Telepathy TCP前端
- kcp2k unity前端
- kcp-go go服务器
- grpc 服务器之间通信··
- 可靠UDP,KCP协议快在哪?
- Prediction,Reconciliation,Lag Compensation
- Latency Compensating Methods in Client/Server In-game Protocol Design and Optimization
- 无畏契约网络代码
- com.unity.multiplayer.samples.bitesize 小游戏示例demo
- GalacticKittens 2D示例demo
- ParrelSync 多窗口调试
- Client Driven Overview开发
- 音频播放优化,抽出全局的
- GalacticKittens 有bug,存在卡死,进入房间存在不显示飞船
- Websocket网络通信
- 压力测试客户端使用ugk-web开发界面(vue3)
- 服务器unity提取公共包,unity的package
- ugk-client 弹窗增加tween动画
- 后台管理系统查看unity docker服务器
- Limits how often data is sent for objects distance to players to reduce how much bandwidth the server uses. Tests show this feature can reduce transform updates, such as moving objects, between 90-97%. FishNet解决方案,远的对象,减少同步频率
- 打android包测试,使用StarterAssets中的资源
- 断线重连
- hybridclr+Addressables 热更新
- luban 游戏配置
- 日志工具替换,支持Elasticsearch搜索
- 使用C#的异步编程
- 将Unity服务器代码从go中分离出去,单独一个仓库
- 添加Prometheus监控,和logurs输出日志
- 使用C# Orleans实现大厅和匹配服,unity直接通过Orleans客户端进行交互?unity grpc支持不好
- QQ群: 236076532