永兴房产网站,购物app排行榜,南京网站制作公司有哪些,装修办公室装修设计开始之前先说一下网游中服务器与客户端的大致关系#xff1a;网络游戏中各段关系图客户端职责#xff1a;1#xff09;接收玩家的输入翻译得到【玩家指令】上传服务器#xff1b;2#xff09;接收服务器下发的【游戏指令】并将其实现服务器职责#xff1a;1#xff09;接…开始之前先说一下网游中服务器与客户端的大致关系网络游戏中各段关系图客户端职责1接收玩家的输入翻译得到【玩家指令】上传服务器2接收服务器下发的【游戏指令】并将其实现服务器职责1接收客户端的指令并处理2广播当前帧所需的游戏数据与游戏状态强联网中的高带宽与游戏中的卡顿解释服务器压力我们打团战的时候会出现输入没有响应正式因为让你的输入产生结果的模块不在客户端而是在服务器此时服务器要处理大量用户指令计算时间过长外加网络限制客户端得不到及时的数据更新【有预处理机制部分还是能动的例如部分网游在延迟是时也能正常速率移动但是在得到最新数据后玩家将被纠到正确坐标这正是一种降低小幅延迟的策略所带来的现象。想继续了解如何解决网络延迟策略的可以传送门https://www.zhihu.com/question/36258781/answer/80841137】高带宽多名玩家同屏时为了能看到其他玩家的样子和属性值所以每次更新都需要所有需要绘制的玩家数据所以高带宽是强联网的前提我们再来看局域网中的主机与客户端的关系主机与客户端的关系因为主机与客户端本身都是同一套应用程序所以都包含完整功能然而局域网游戏中作为主机的一端除了运行完整的客户端玩家操作接收处理和图像图形显示职能外还需要具有网络结构中的服务器端职能对整个局域我那个游戏的数据进行计算与存储逻辑处理与发送而其他客户端进需要运行客户端部分功能即可参与局域网游戏故局域网中主机压力巨大既要做逻辑与数据运算还要完成图像显示处理--------------------开启本章内容官方案例讲解-----------------------------书接上回在上一篇尾巴上留了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标记所带来的一次事件调用1创建一个变量2标记为Replicated3你会发现蹦出来一个与该变量关联的函数4桶盖这个函数来对变量赋值即可标记提供的一次函数调用此处用来变更材质颜色属性值为什么灯有变化有兴趣的同学看看材质蓝图知识点使用该标记后得到的函数调用可以用来编辑一些诸如生命归零的死亡判断或是与跟该变量有关的函数赋值操作就像本示例中的材质属性变更都可以写在该函数中案例1.5 事件广播Multicast的使用本实例通过对自定义事添加Multicast标签使其成为服务器在调用时所有客户端都会触发的事件达到广播的目的触发事件的广播设置案例2.1 不添加复制标记的蓝图效果本实例应当是作为参照示例使用并没有特殊之处我们可以看到永远是服务器端触发金闪闪实现毕竟事件没有加复制标记客户端未接收任何事件调用案例2.2 依旧是事件广播Multicast的使用本实例中关于事件广播就不赘述了我们可以发现一个有趣的事情就是有个圈在圈外的客户端是无法接收到广播消息的并且在进入环形范围内也不会再看到触发效果【广播事件是不会被保存的】当然你站上去也是没用的以为有DoOne节点只可能发生一次Paste_Image.png看一下圈是怎么缩放设置的缩放环形模型大小该值是每个参与复制的对象都需要设置的值该值标示这个对象接收服务器消息数据更新的范围这个值不能直接用为了距离比较时削减运算开销所以是个平方值这里注意一下注意该对象的Replicates属性案例2.3关于如何对进入复制检测范围的对象进行状态更新本实例中使用了一个bool值来记录状态当有客户端进入该范围内时更新这个客户端用户的变量值这个时候会触发Replicated标记创建来的函数也就实现了开箱和闪光效果此处将特效显示与箱子翻起的显示部分都放在这个函数内了知识点我们可以模仿此方法来实现对走入检测范围内的新对象的状态更新案例2.4 仅保留开箱后的结果更新不显示闪光特效我们可以看到这个版本的蓝图中开箱与闪光特效被分开触发了这样在触发范围内的客户端可以接收到触发闪光特效也可通过变更bool值变量来完成开箱动画但是后进入的客户端仅能触发开箱动画即完成了新版组合方案变更后的蓝图