ue4如何做ue4联机构建游戏

开始之前先说一下网游中服务器与客户端的大致关系:

网络游戏中各段关系图客户端职责:

1)接收玩家的输入翻译得到【玩家指令】上传服务器;
2)接收服务器下发的【游戏指令】并将其实现

1)接收客户端的指令并处理;
2)广播当前帧所需的游戏数据与游戏状态;

强联网中的高带宽与游戏中的卡顿解释:服务器压力:

多名玩家同屏时,为了能看到其他玩家的样子和属性值,所以每次更新都需要所有需要绘制的玩家数据,所以高带宽是强联网的前提;

我们再来看局域网中的主机与客户端的关系

因为主机与客户端本身都是同一套应用程序,所以都包含完整功能;然而局域网游戏中,作为主机的一端除了运行完整的客户端(玩家操作接收处理和图像图形显示)职能外,还需要具有网络结构中的服务器端职能,对整个局域我那个游戏的数据进行计算与存储,逻辑处理与发送;而其他客户端进需要运行客户端部分功能即可参与局域网游戏;(故局域网中主机压力巨大,既要做逻辑与数据运算,还要完成图像显示处理)

书接上回在上一篇尾巴上留了RPC介绍,也就是虚幻的函数复制原理,本章我带着大家过一遍官方关于networke的案例,了解一下变量复制与函数复制以便后面使用节点时不会懵逼;

下载完当然是打开了 

打开后我们点击根目录Content,然后使用筛选功能,找出所有场景

然后找到【Network_Features】这里推荐点击官方的帮助文档“食用”效果更佳:

找到绿色的帮助对象,点击打开帮助文档

英语不好的同学可以切换到中文场景的查看方式均使用多窗口浏览; 

不要忘了上一章讲的多窗口浏览方式和设置方法案例1.1对象的复制本案例将在两个【Target Point】的位置生成幽灵对象;由于对象的蓝图类的Replicates属性的不同,所以表现出不参与复制对象在主机端存在而客户端不存在的效果;

运行结果1)我们打开场景蓝图与两个幽灵的蓝图类;

两个生成对象所使用的蓝图类是不一样的

虽然是继承关系但是在复制选项上有所区别可以看到由于两个不同的对象类在复制选项上有所区别,故客户端与服务器的显示结果是不同的,需要注意的(一定将核心处理限制在主机端): 

确认服务器执行这是联机蓝图的关键所在,逻辑也好数据处理也好,一定要交给服务器来操作,客户端只要做显示与用户操作采集相关的编辑即可;案例1.2 Switch Has Authority节点学习该实例通过对服务器和客户端执行不同实现来加深对Switch Has Authority节点的了解;

该幽灵的蓝图案例1.3值复制(仅更新变量值)该实例主要使用值复制的方法来实现客户端与主机的数据同步;

运行结果,客户端观察到左侧幽灵的健康值一直为0而右侧的则与服务器同步

右侧的幽灵中关于Health这个int值进做了复制设置知识点分析:

当变量被标记为Replicated后,在服务器修改该变量数值,系统会及时将其更新到客户端,此时对该变量进行调用则可以拿到更新后的值;

【使用在角色属性或是绘制相关数据的同步情景,】

案例1.4值复制(更新变量值时触发一次函数调用)本实例使用定时修改一个标记为RepNotify的浮点值得方式变更交通灯的状态;我们主要学习RepNotify标记所带来的一次事件调用;

3,你会发现蹦出来一个与该变量关联的函数
4,桶盖这个函数来对变量赋值即可

标记提供的一次函数调用,此处用来变更材质颜色属性值

为什么灯有变化?有兴趣的同学看看材质蓝图知识点:

使用该标记后得到的函数调用,可以用来编辑一些诸如生命归零的死亡判断,或是与跟该变量有关的函数赋值操作就像本示例中的材质属性变更都可以写在该函数中;

案例1.5 事件广播Multicast的使用本实例通过对自定义事添加Multicast标签使其成为服务器在调用时,所有客户端都会触发的事件,达到广播的目的;

触发事件的广播设置案例2.1 不添加复制标记的蓝图效果本实例应当是作为参照示例使用,并没有特殊之处

我们可以看到永远是服务器端触发金闪闪实现,
毕竟事件没有加复制标记客户端未接收任何事件调用
案例2.2 依旧是事件广播Multicast的使用本实例中关于事件广播就不赘述了,我们可以发现一个有趣的事情就是有个圈,在圈外的客户端是无法接收到广播消息的,并且在进入环形范围内也不会再看到触发效果【广播事件是不会被保存的】(当然你站上去也是没用的,以为有DoOne节点,只可能发生一次)

光环范围看一下圈是怎么缩放设置的

缩放环形模型大小该值是每个参与复制的对象,都需要设置的值,该值标示这个对象接收服务器消息数据更新的范围(这个值不能直接用,为了距离比较时削减运算开销所以是个平方值,这里注意一下) 

注意该对象的Replicates属性案例2.3关于如何对进入复制检测范围的对象进行状态更新本实例中使用了一个bool值来记录状态,当有客户端进入该范围内时更新这个客户端用户的变量值,这个时候会触发Replicated标记创建来的函数,也就实现了开箱和闪光效果


此处将特效显示与箱子翻起的显示部分都放在这个函数内了知识点:

我们可以模仿此方法,来实现对走入检测范围内的新对象的状态更新;

案例2.4 仅保留开箱后的结果更新,不显示闪光特效我们可以看到这个版本的蓝图中开箱与闪光特效被分开触发了,这样在触发范围内的客户端可以接收到触发闪光特效也可通过变更bool值变量来完成开箱动画,但是后进入的客户端仅能触发开箱动画,即完成了新版组合方案;

变更后的蓝图官方demo算是跟完了,该场景内有不理解的都可以留言提问,下一篇将开始创建PC局域网demo并发布测试;

下一节将制作一个与该demo结构一致的项目,如果自己看项目能理解更好,不能的话就跟着下一篇一起做吧

}

晶核教育ue4培训,0学费0基础入学,先就业后付款,EPIC官方合作伙伴,内部教学资料.EPIC大牛授课,前沿课程大纲,紧跟技术潮流.虚幻4培训就选晶核教育.

}

    话题:谁能告诉我ue4怎么设置游戏

    回答:简而言之,UnrealScript被下岗了,恭喜你咱们下岗了~。变成了Blueprint,这时候关卡设计师们大声叫好:”不再需要求着愚蠢的程序员帮我们实现系统了,哈哈“。 游戏类型随意,Paper2D让你轻松制作2维游戏。 

    话题:ue4开发的游戏是多少?

    问题详情:想换 性能如何啊

    回答:是建议试下Unity。 大型开发团队,搞3A的,主机的,看重画质的,有把握驾驭好ue的,搞ue4。万

    话题: 是多少 ue4能开发手游吗

    回答:分别 手机游戏开发可以用Unity3D以及cocos2d-x。 总体来讲,行业首选的游戏引擎,主要都集中在Cocos2d-x与Unity3D之上。 在我国,Cocos2d-x主要被用于移动端的游戏开发。 而Unity3D具有跨平台的特点,可以很方便地将游戏发布到android手机平台上。并不出众。

    话题:是 ue4用什么语言开发

    回答:拥有源代码的好处是可以任意定制引擎的核心功能,如果你只是业余,并不是拿引擎来进行定制开发高级的功能(比如超大型多人网游地图,比如改写shader),一般个人或者小型工作室是用不到的。CE EaaS目前已经开放了部分核心源代码。.,宽度上与同

    话题:谁能告诉我 ue4怎么改成中文语言起

    回答:简而言之,JAVA实际比C,C++实用点,能做点实事,C++看似简单,用起来要功底了,C不深入学习什么都干不了,希望回答对你有所帮助。

    话题:想学ue4应该从哪起步?注意些什么??

    回答:游戏类型随意,Paper2D让你轻松制作2维游戏。

    参考回答:呵呵.再使用"添加控制点"(输入A)再确定. 3,这样就可以在需要的地方增加控制点了,记住在增加点时,把对象捕捉关掉. 增加完成后,按回车键退出修...

    话题:ue4怎么设置游戏的开始和退出

    话题:如何使用Xcode分析调试在真机运行的UE4 IOS版游戏

}

我要回帖

更多关于 ue4联机 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信