户县建设局网站,网站建设完成汇报,株洲seo推广,wordpress 旅行主题转自#xff1a;http://www.gameres.com/489361.html
腾讯一下出了两款MOBA游戏#xff0c;全民超神#xff0c;王者荣耀#xff0c;玩了一下#xff0c;效果不错#xff0c;就分析了一下它底层的一些技术#xff0c;发现一个是采用的状态同步#xff0c;TCP协议#…转自http://www.gameres.com/489361.html
腾讯一下出了两款MOBA游戏全民超神王者荣耀玩了一下效果不错就分析了一下它底层的一些技术发现一个是采用的状态同步TCP协议另一个是采用的帧同步UDP协议。自从去年了解到即时游戏帧同步这门技术我就一直关注使用这个技术的游戏一直没有发现虽然我们自己的游戏也是采用的帧同步毕竟还没有上线现在线上有帧同步的游戏效果还挺好有点小激动。所以就写了这篇文章分享出来大家一块研究。 先说一些题外话感慨一下没兴趣的直接略过。 做了这么多年游戏了深深知道一个游戏的成功需要多方面的因素不仅需要人和有的时候也需要天时地利但作为一个游戏开发者而言能决定就是人和而这也是游戏能成功的基础有一帮人能够全身心的投入去开发一款游戏不断的打磨甚至调整方向面对问题能够及时反馈不断迭代就像做一个互联网产品一样在这个过程中团队里的所有人都能够互相信任不厌其烦的对产品进行改动每一次的信任来源不是为大家打鸡血画饼而是实实在在的数据分析以及努力总结原因后的理性决策。如果以上能够坚持的话先不说创新最起码游戏可以做到某一品类的极致我想在任何的市场环境下只要这个品类还没死总有你的一席之地在我看来很多游戏死了很多原因是做的还不到位向当年抄COC的游戏很多最后缺没有一款成功的而截至到目前COC的利润还在不断上升如果国内抄袭者真能做到COC的一样的体验我想一定会有成功的。 那又有人要说了怎样才能做的比别人还好呢这个问题确实比较复杂我感觉首先一定要有合适的人什么是合适的人呢从3个方面考察责任心积极性、学习能力、能力我把能力放在最后是因为如果前面两个条件满足的情况下这个人一定会变得有能力然后就是需要有个高的要求目标就是精品这个不是光说说就行了从策划设计程序实现美术都要向着最高的标准要求要比市面上的都要优秀绝对不会为了各种其他因素时间点实现复杂有任何妥协。最后是需要有点耐心合理安排计划时间高效率完成其实这点事最难的团队里的人很多游戏制作有的时候经常需要反复经常就是初期很有激情中期不断磨灭到了后期尤其是项目遇到困难时候就比较松懈了如果是没有耐心的人估计在一起继续工作都是问题了还怎么谈之前的事情。团队是需要打磨的如果你有一支这样的团队那真的要好好的珍惜。 好了这是我对于游戏开发的一些感慨还是回归正题吧对于一个游戏来讲战斗就是灵魂如果战斗做不到极致其他方面做的再好也是徒劳这几年也参与了很多游戏的开发其中有很多游戏是从决策到死掉全程参与深有感慨。从端游到页游 从页游再到手游 每一个新市场机会出现的时候都是从闭着眼睛就能赚钱到大部分赚不到钱过度对游戏的开发技术都要求也是越来越高只不过每个市场到成熟的时间都被大大缩短了。对于战斗来讲很多都是策划脑补的跟实际做出来的完全不是一回事很多原因都是战斗方案选型就是错误的。 从程序角度来讲我把战斗从两个维度分类 1、从操作方式上分为回合操作、即时操作。 2、从交互方式上分为 离线战斗 联网战斗这个地方需要说明一下有些游戏虽然也能进攻别人例如COC 但是因为战斗的时候另外一个人是不可以操作的类似于这样的战斗也可以称为离线战斗。 基本上所有的战斗都是以上两种方式在某种程度的组合而已例如梦幻西游可以认为是联网战斗、回合操作类型。 最近比较火的全民超神王者荣耀属于 联网战斗|离线战斗即时操作类型。 最新网易出的功夫熊猫 属于 联网战斗|离线战斗即时操作类型相对于dota类的全民超神、王者荣耀他对延迟要求的更高了。 如果在立项初期项目计划时候不确定游戏的操作类型以及网络要求做得后期要想调整的话改动是致命的假设按照之前时空猎人的方式实现的纯离线战斗及时游戏最多也只能做做离线PVP如果想增加联网PVP的功能的话对于程序来讲几乎需要重写战斗。 随着移动游戏市场越来越成熟对于战斗的要求也在提高原来做一款ARPG只有单机玩法就足够了不需要开发实时PVP但是现在市面上的ARPG不仅可以联网PVP甚至可以联网组队PVE了所以我感觉如果现在再去做游戏的话只是一个单机玩法或者是离线PVP玩法已经远远不能满足现代玩家的口味了。 我认为现在战斗系统需要满足一下几点。 1、一定要有离线PVE玩法或者离线PVP玩法可以在让玩家在网络不好的时候消遣节省流量。全民超神、王者荣耀在5V5匹配时候都有一定几率匹配到离线战斗这个时候是不耗流量的其他人全是AI控制的 2、一定要有在线PVP在线PVE能够让玩家在网络比较好的时候实时竞技。增加可玩性。 3、战斗中尽最大程度节省玩家的流量例如全民超神这款游戏一场30分钟的战斗基本上要消耗掉20M的流量而且此类游戏大部分是玩的联网战斗基本上在非wifi情况下没法玩。 4、需要有战斗回放机制可以让策划设计离线玩法的时候更自由例如COC战斗回放基本变成了它游戏的一部分。 5、防作弊如果有离线玩法的话一定有机制对离线玩法的结果进行验证要不然等你游戏真火了你就知道错了。 6、实现难度相对较低。 对于联网游戏来讲同步的方式主要分为两种状态同步、帧同步。 1、状态同步顾名思义是指的将其他玩家的状态行为同步的方式一帮情况下AI逻辑技能逻辑战斗计算都由服务器运算只是将运算的结果同步给客户端客户端只需要接受服务器传过来的状态变化然后更新自己本地的动作状态、Buff状态位置等就可以了但是为了给玩家好的体验减少同步的数据量客户端也会做很多的本地运算减少服务器同步的频率以及数据量。 2、 帧同步RTS游戏常采用的一种同步技术 上一种状态同步方式数据量会随着需要同步的单位数量增长对于RTS游戏来讲动不动就是几百个的单位可以被操作如果这些都需要同步的话数据量是不能被接受的所以帧同步不同步状态只同步操作每个客户端接受到操作以后通过运算可以达到一致的状态通过随机种子保证所有客户端随机序列一致这样的情况下就算单位再多他的同步量也不会随之增加。 下面我们从以上的5个方面对各自实现方式进行描述 idiframe_0.9020318946303958 srcdata:text/html;charsetutf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id%22img%22%20src%22http://www.gameres.com/data/attachment/forum/201602/29/1021578dxy22edkkaeeew5.jpg?_5283265%22%20style%22border:none;max-width:1569px%22%3E%3Cscript%3Ewindow.onload%20%20function%20()%20%7Bvar%20img%20%20document.getElementById(img);%20window.parent.postMessage(%7BiframeId:iframe_0.9020318946303958,width:img.width,height:img.height%7D,%20http://www.cnblogs.com);%7D%3C/script%3E frameborder0 scrollingno styleborder-width: initial; border-style: none; width: 1569px; height: 276px;总结一下 1、对于回合制战斗来讲其实选用哪种方式实现不是特别重要了因为本身实现难度不是很高采用状态同步也能实现离线战斗验证。所以采用帧同步的必要性不是很大。 2、对于单位比较多的RTS游戏一定是帧同步对于COC来讲他虽然是离线游戏但是他在一样输入的情况下是能得到一样结果的所以也可以认为他是用帧同步方式实现的战斗系统。 3、对于对操作要求比较高的例如MOBA类游戏有碰撞玩家、怪物可以互相卡位、物理逻辑纯物理类即时可玩休闲游戏帧同步实现起来比较顺畅有开源的Dphysics 2D物理系统可用 它是Determisti的。 4、对于战斗时大地图MMORPG的一个地图内会有成千上百的玩家不是小房间性质的游戏只能使用状态同步只同步自己视野的状态。 5、帧同步有个缺点不能避免玩家采用作弊工具开图。