最近工作比较忙,和以前不同,我可以连续两天发帖。 以后我会尽量每周发一篇文章。 同时,我也想告诫自己,要不断学习,这样才能跟上时代潮流,不被抛在后面。

今天讲一下虚幻网络部分。 今天主要讲一下网络部分的基础理论。 如果您想获得一些可以立即实施的实用技能,那么本文不适合您。 你可以阅读官方文档。

首先,让我问你几个问题。 让大家仔细思考一下,然后我会一一解答。 这是一个很好的方法。

1、既然是网络,那么各个客户端的信息需要同步。 那么数据是从服务器同步到客户端,还是从客户端同步到服务器呢?

2、有几种网络模式? 采用什么模式来同步信息?

3、服务器有多少种类型? 他们之间有什么区别?

4. 虚幻同步是如何实现的?

5.什么是RPC? 英文全名是什么? 实施方法有哪些?

6.什么是?

7、虚幻框架有什么作用?

8. 这是什么? 它有什么作用?

9、其中涉及到的几个重要的类在服务端和客户端的分布是怎样的?

10.如果你想改变你控制的pawn而不是其中指定的pawn,该怎么办?

11、用户连接服务器的大致流程是怎样的?

12. 有网络功能的插件吗?

好的,我给你 10 分钟。 也许10分钟可能还不够。 这些问题要仔细思考一下。 这在执行网络功能时起着关键作用。 这些问题的背后是网络问题以及处理网络问题的设计模型。 因此,即使你已经根据一些例子学会了如何处理一些问题,但在做大型游戏项目时你仍然会感到束手无策。

之一个问题:数据从哪一端同步到哪一端?

我们先不说如何同步。 很多人的想法肯定是每个用户都有自己的操作。 我控制着我自己的角色,我必须将我的信息同步给他们。 如果你这么认为,那我就要问了,服务器的作用是什么? 那么我告诉你,数据是从服务器同步到客户端的。 为什么要这样设计呢? 假设我们没有服务器,大概的示意图应该如下图所示。 从表面上看,我们似乎也可以实现网络同步功能。

与此同时,一个问题也出现了。 如果其中一个客户端网络较差,延迟达到200ms,而另外两个客户端网速正常,你能想象他们会遇到什么情况吗? 网速不好会卡死吗? 如果客户端拦截数据流并作弊怎么办?

一、网速差会不会卡顿? 不,它不会被卡住。 只是网速好的人可能会看到网速差的人有卡顿,但网速差的人不会感觉到卡顿。

第二,如果客户作弊怎么办? 答案并不容易。 安全判断只能在数据同步时进行。

第三个也是最关键的问题是,如果你在网络不好的情况下射击瞬移者,你如何判断你是否击中了他? 你看他的位置是在这里,但是在他的客户端,他已经不在这个位置了。

那么,综上所述,我们需要解决的最关键的问题是,如何避免网络延迟对客户端移动的影响? 如何权威地判定你是否打了他。 这也引入了网络架构中的C/S模式。 这种组网模式的示意图大致如下:

只有这样才能真正说明服务器的真正作用:

数据从每个客户端传输到服务器。 服务器有权威版本。 里面的逻辑判断、击杀判断,这里都以它为标准。 然后服务器将最权威的信息传输给每个客户端,以便客户端可以存在服务器最权威版本的近似版本。

这种网络设计模型的关键是服务器是权威。 由服务器来决定是否射击其他玩家,因为每个玩家的位置数据都是从服务器汇总然后同步到每个客户端的。 这时,如果你的网速比较差,获取到的位置数据肯定与最新版本的服务器不同。 因此,如果你射击其他玩家,不一定会射击服务器上的其他玩家。 而且如果你的网速好的话,那镜头就拍出来了。

之一个:网速差的话,游戏就会卡住,卡到一定程度就会无法移动,移动缓慢,射击也会变慢。 为什么? 因为移动的位置需要从客户端传递到服务器,所以服务器会汇总每个客户端的数据,然后传递给每个客户端。 想想看,如果你的网速很差,那么将数据传输到服务器的时间就会更长。 ,从服务器同步数据到本地所需的时间也会更长,所以你会走得更慢。 因为你的位置不是由客户端决定的,而是由服务器决定的。 服务器会根据你的按键命令移动服务器(当然还有其他位置同步方法,这里不讨论)。 客户端并不会直接移动,而是将服务器角色的位置信息仅同步到本地电脑。 由此可见网络速度的重要性。

第二:作弊的方式有很多种。 先说一下,比如之前CF中出现的瞬移情况。 这可以通过非常简单的安全检查来避免。 如果我们在从位置信息到最后一次向服务器发送信息的时间间隔内以更大速度移动,那么更大移动范围是多少? 如果超出范围,即可判定为作弊。 具体情况可能比这更复杂。

第三:如上所述,C/S本身的设计可以解决这个问题。

第二个问题:有几种网络模式? 虚幻使用什么模式?

这个问题有点重复,所以可以回答问题一。 C/S模式。

第三个问题:服务器有哪些不同类型? 有什么区别?

两种类型: 和

不同的是,不再使用客户端作为服务器,而是有一个独立的服务器。

举个例子:之前我们玩局域网游戏CS的时候,其中一个人创建了一个房间,其他玩家加入了这个房间。 这是最早也是众所周知的实现方法。 创建房间的人更准确地创建服务器,而不仅仅是房间。 数据从每个客户端传递到房主,即服务器。 房主将这些信息传到自己的电脑上,然后每个客户端都会得到房主最权威的版本作为服务器。 你大概可以看出,房主有很多大的优势,在局域网中可能还不够明显,但是在广域网呢? 这样的网络模式是不是有点不公平? 据说CF以前就用过这种网络模式。 所以,当你的网速很差,而且你还是房主的时候,其他玩家就会出现问题,因为你的信息会暂时无法与其他客户端同步,哈哈。

另外,如果您使用它,您将避免使用它时出现的一些不公平现象。

第四个问题:虚幻同步是如何实现的?

这里的问题一定是具体的技术细节,数据同步:; 事件同步或进程同步:RPC;

数据同步:变量设置后,一旦服务器检测到变化,经过安全检测,如果符合安全标准,就会向各个客户端发送新的数据。 需要注意的是,CPU负责检测每一帧数据。

事件同步:RPC:,中文名称:远程过程调用。 含义:从这一端向另一端或多端调用一个进程。 比如射击,比如爆炸效果。

问题5:什么是RPC?

远程过程调用大致可以分为以下几类。

服务器调用RPC事件,由自身控制的客户端执行; 关键宏:

客户端调用RPC事件反恐精英 非法检测程序 无法连接的该服务器,服务器执行; 关键宏:

服务器调用RPC事件,所有客户端执行; 关键宏:

(客户端也可以使用事件,但事件只会在本地执行。)

今天写这个我已经累了。 哈哈哈,下一篇继续更新以上问题。

未经允许不得转载! 作者:admin,转载或复制请以超链接形式并注明出处天心神途传奇手游发布网

原文地址:《UE4网络基础知识》发布于:2024-03-14

发表评论

表情:
验证码
评论列表 (暂无评论,76人围观)

还没有评论,来说两句吧...