Ue4----必备网络知识

1.网络需要同步各个客户端的信息,数据是从服务器同步到客户端,还是客户端同步到服务器?
服务器同步到客户端
2.网络模式大概有几种?虚幻是使用那种模式进行同步信息?
C/S模式
3.服务器大概有几种?他们之间的区别是什么?
DedicatedServer和ListenServer;区别在于ListenServer是拿一个客户端做服务器,而DedicatedServer是有一个独立的服务器。
4.虚幻的同步是通过什么方式实现的?
数据同步:Replicates;一个变量设置为Replicated以后,一旦服务器检测到变化,经过安全检测后,如果符合安全标准,就会将新的数据发送到各个客户端。需要注意的是,数据每帧都由CPU负责检测。
事件同步或者过程同步:RPC;RemoteProcedureCall。中文译为:远程过程调用。从这个端调用另外一个或者多个端的一个进程。比如说开枪,或者爆炸效果。
5.什么事RPC?英文全称是什么?都有哪几种实现方式?
服务器调用RPC事件,自己控制的客户端执行; UFUNCTION关键宏:Client
客户端调用RPC事件,服务器执行; UFUNCTION关键宏:Server
服务器调用RPC事件,所有的客户端执行; UFUNCTION关键宏:Multicast
(客户端也可以使用MultiCast事件,只是该事件只会在本地执行。)
6.什么是Replicates?

还有一种情况容易让人糊涂:假设在Pawn类中的Authority端生成一个Actor,并且把它存为变量,那么这个变量的Replicates属性和这个Actor本身的Replicates属性是什么关系?实际上,这里变量只是指向这个Actor的一个引用/指针,掌握住这点就好理解了。如果这个Actor没有Replicates,而让这个指针Replicates,那么它在客户端上就会指向一个NULL,这个并不会让引擎崩溃,但是没有任何意义。如果Actor Replicates,但是指针不是Replicated,那么在客户端这个Actor是存在的,但是指针没办法指向正确的对象。所以这种情况下需要Actor和变量都是Replicates(ed)才能达到正确的效果

另外,GameMode是不会Replicates的,它只存在于服务端,所以对它存储的变量设置Replicated没有任何意义。

7.GameMode是什么?它有什么作用?
游戏模式。处理游戏的规则,只存在于服务器端,因此客户端相关的逻辑不能存放在GameMode上。
8.用户连接到服务器的大概过程是什么?
1.去UE4官网连接github等待官方拉入;
2.从github下载所需的UE4版本,后进行安装;
3.使用VS对UE4的源文件进行生成编译,后新建项目;
4.打开项目,在建立连接网络的蓝图类中选择服务器的公网IP加入端口号;
5.开放云服务器对应的端口号;
6.生成服务器文件以及客户端文件;
7.将服务器文件上传到云服务器中,运行服务器;
8.在本机中打开客户端选择进行网络连接,即可连接到服务器。

你可能感兴趣的:(UE4-从菜鸟dao小白,ue4,网络,游戏引擎,虚幻,游戏程序)