UE4联网开发翻译(一)

这pdf只适合于你有ue4独立开发基础。

基本上没教新手如何用UE4。

如果你是UE4新手,你去看本作者写的“Blueprint Compendium"。

这份文档希望教会你用蓝图和C++。

保证你的UE4引擎是4.14.x版本。

开始学UE4联网

 

扫描二维码关注公众号,回复: 6727521 查看本文章

欢迎看此文档。

以前我在工作中开发看的UE4官方文档其实介绍得很好了,不过我还是在这总结一下。

接下来,给你介绍网络框架,解释下classes、replication、ownership等等。当需要的时候我会提供蓝图/C++例子帮助你理解如何使用。

文档中肯定有很多来自官网文档的内容,因为就是这么用的。

放心这个文档不是复述官方文档内容。

 

UE4用标准C/S网络架构。意味着,服务器是authoritative(权威的),所有数据需先从客户端发送到服务器。

然后服务器验证(validates)数据后根据你的代码做出相应操作。

A small example:

在多人游戏中,想在客户端上移动你的角色,其实是你告诉服务器你想移动他。

然后服务器就会更新他连接所有客户端上角色的位置,包括你。

Note:

为了你在本机客户端上不感受到“延迟”,程序员通常设置本机角色直接操控(而不先告诉服务器,再由服务器通知本机客户端)角色移动,包括本机客户端玩家作弊,服务器照样执行。意味着,本机客户端(几乎)永远不和其他客户端直接交互。

Another example:

如果你要跟其他客户端聊天,你发送的聊天消息其实是先发送到服务器,再由服务器发送到对方客户端(私聊、帮派聊天、世界频道聊天都是这样)。

 

记得别完全信任客户端操作,必须检测是否作弊,再运行客户端提交的操作!

一个简单的的射击作弊检测例子:

客户端提交射击操作后,你在服务器运行这个操作之前,先检测是否有弹药和是否符合射击条件。

 

根据UE4 C/S架构信息,可将其划分为4个部分:

1.Server Only —— 对象只允许存在于服务器上

2.Server & Clients —— 对象存在于服务器和所有客户端上

3.Server & Owning Client —— 对象只存在于服务器和此对象拥有者的客户端

4.Owning Client Only —— 对象只存在于客户端

“Owning Client”意思就是:拥有这个对象的客户端/玩家。你可以理解成操作这个角色的本机。这个Owning隶属关系对后面RPC调用很重要。

下一页给你介绍下常见的classes类和并介绍他们属于上面4部分的哪个。

 

上面就是几个比较重要的类所属的部分,红色代表server拥有,蓝色代表clients拥有。owning client only那个指的是本机独有。就最简单理解成:每个玩家的UMG UI界面状态都不一样。

 

这个图举了一个服务器+两个客户端的例子,介绍了这些类怎么进行网络分布。

Client1和Client2之间的交集没有对象,因为他们不共享仅需他们自己知道的对象。

 

接下来几页介绍几个特别重要的常用类。

当然附带例子给你看看这么使用。

而这些类以后的例子会经常用到,以后就不再重复解释了,请现在好好打下基础弄懂他。

但是下面这几个例子都需要Replication(复制)的知识。所以你有可能弄不懂,如果你弄不懂,那就先忽略一下,当你学完Replication(复制)这个章节再回头弄懂他。

猜你喜欢

转载自blog.csdn.net/qq_16468937/article/details/94584009