虚幻引擎网络系统(一)

虚幻引擎网络系统(一)

网络游戏构成必要条件

1,终端用户(客户端)

2,联网硬件环境

3,伺服器(服务器)

4,数据传输通信协议
在这里插入图片描述

伺服器

提供计算服务的设备。由于服务器需要响应服务请求,并进行处理

计算逻辑更复杂,响应更快,并发连接数更大,升级难度更高。适应性更广泛,数据处理及时性要求严格。

客户端

将玩家操作收集,逻辑操作反馈给服务器,在服务器进行整理再做下发广播。客户端设计的繁琐度高,制作难度大。

虚幻网络框架

并没有提供数据库存储解决方案(要状态存储需要使用者自行设计)

更适合”局“

产品层(非引擎层)数据交互解决方案,提供”数据同步“和”行为同步“。虚幻引擎中不需要处理网络连接逻辑,制定通信协议,寻找数据压缩策略,协议序列化策略,包括硬件通信协议。

虚幻用的RPC

客户端-服务器模型

启动服务器指令

类型启动命令
监听服务器
专用服务器
客户端

监听服务器—— 一个玩家扮演房主身份

专用服务器——《绝地求生》

可以通过C++源码可以编译独立服务器

Listen-Server

核心设计——同步数据和行为

虚幻引擎框架角色网络分布

虚幻引擎框架中的角色,他们在那里(主机端还是客户机端)

  • GameMode(只在服务器)

  • GameState 在所有终端都有

  • PlayerController 自己终端有自己的,但没有别人的,服务器有所有终端的

  • PlayerState 自己有自己的,自己有别人的,服务器有所有终端的

  • Pawn 在所有终端都有

  • HUD 自己有自己的,自己没有别人的,服务器也没有别人的

GET Controller获取的是自己的控制器

GET Player Controller获取的是当前终端的控制器

所有位置分类

  • Server Only
  • Server &Clients
  • Server &Owning Client
  • Owning Client Only
    在这里插入图片描述
    在这里插入图片描述

**

地图加载同步

**

虚幻中的同步单位——actor

是否场景中摆放的物体启动时都会同步到所有终端?

​ 默认是会同步到所有终端,但是他们没有做网络关联!

​ ”Net Load On Client“选项默认是勾选的

在这里插入图片描述

没开的时候:
在这里插入图片描述

动态生成的Actor是否会同步到所有终端?(需要考虑在哪里生成)

​ 当场景中摆放的Actor需要进行网络同步时,需要在细节面板勾选”Replicates“,该选项默认关闭,需要设计者根据需求开启。

生成和销毁

在服务器生成Actor时,如果生成类开启了”Replicates“,则会同步到所有终端

当在服务器销毁Actor时,如果Actor开启了”Replicates“,则所有终端中的关联对象均会被销毁

不能同步动作!!!

虚幻对于同步操作提供了两种方式——行为同步属性同步

行为同步

Actor网络身份(区分客户端or服务端)

网络中的身份可以帮助我们更好的 甄别 当前对象当前所在终端的关系,并且可以帮我们判断当前对象所在的终端类型

身份授权类别

  • Simulated

    远程代理。拾取物,发射物,交互对象

  • Autonomous

    远程代理,本地执行部分功能,但会受到服务器端的矫正。Pawn

  • Authority

    服务器端存在标记,表明当前Actor会将信息复制到其他机器上进行远程代理

  • None

    此对象在网络中没有开启同步

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值