最近在筹备业余制作一款多人游戏,来系统学习一下ue4

为了偷懒 通信这块更多的使用dedicated server 减少一些场景同步方面的开发工作

架构初定如图

UE4 多人地下城联机游戏开发初章-LMLPHP

中心服务器:用于管理地图服务器、副本服务器、组队、聊天等相关通信及数据存储部分

地图服务器:公共地图服务器、每个地图为一独立进程服务、启动后注册到中心服务器、客户端进入地图需从中心服务器获取地图ip地址进行连接

副本服务器:根据需要动态扩容的一组服务器列表、指定一批端口号为动态分配监听列表、在玩家创建副本的时候动态创建监听进程,监听地图、怪物分布等信息不同,在所有玩家离开时销毁

客户端:采用socket协议始终与中心服务器保持连接,进行聊天、组队、地图跳转等内容的通信处理,图中虚线网关部分表示考虑服务器压力负载均衡考虑,可以添加扩容网关服务器,网关服务器与中心服务器连接,客户端与中心服务器交互皆由网关服务器中转

注:移除地图服务器部分,架构就为LOL、吃鸡等游戏的单局对战游戏架构,每场战局为一个副本

 

基本通信流程如图

UE4 多人地下城联机游戏开发初章-LMLPHP

UE4 多人地下城联机游戏开发初章-LMLPHP

07-17 02:19