UE4网络同步

本文介绍了UE4中的网络同步概念,包括帧同步和状态同步的原理及其适用场景,讲解了如何选择UDP还是TCP,以及UE4中的可靠性和关键状态变量的同步策略。还涉及到Game Modes、Pawn、PlayerController的角色以及RPC的使用,最后阐述了服务器与客户端的连接过程和不同的服务器类型。
摘要由CSDN通过智能技术生成

什么是网络同步

多人游戏里面需要把某个玩家操作的结果通知给其玩家,这个通知的过程就是同步,再放到局域网或者广域网中进行,就是网络同步了。

中介转发

中介转发就是客户端/服务器模式(C/S),添加一个服务器作为中介节点,每台客户端只与服务器建立连接,客户端与客户端彼此独立,服务器负责转发消息。这种架构的复杂度仅为O(N),维护起来也方便。

帧同步与状态同步

帧同步是服务器将某个玩家的输入直接转发给其他玩家,自己不做处理。理论上所有客户端都以相同的初始状态开始,只要收到的输入相同,那么每时每刻的状态都会是相同的。

状态同步是服务器只同步影响游戏功能的某些重要状态变量,并且这些重要变量是在服务器运算出来的或者至少校验过的,客户端拿到这些状态变量后自行做本地的表现。

一般来说帧同步实时性节省流量方面比较好,状态同步则在安全性角度来说更胜一筹。具体选用哪种方案由具体游戏类型来决定,UE是在射击游戏基础上发展而来的,它默认的网络同步方案是状态同步,把决策权放在服务器上做,可以有效减少外挂,对于中途加入/断线重连也能天然支持。

使用UDP还是TCP

在UDP的基础上融合了TCP的优点,例如加入了乱序处理,以及对reliable的包丢失重传。可谓是各取所优,既保证了连接速度,也保证了可靠性。

Reliable,可靠性

  1. Reliable,不会丢失,立刻发出,适合重要的事件
  2. Unreliable,可能会丢失,适合表现相关的和不重要的事件
  3. 全部的远程调用都使用Reliable,可能会造成网络拥堵
  4. 尽量避免在循环里面进行远程调用和勾选Reliable选项
  • 丢失重传:reliable的包在发端会保存一个备份,只有收到收端返回的Ack包确认后才会清掉,若收到的Ack包跳序则会触发重传。
  • Packet乱序整理:因网络链路复杂性ÿ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值