游戏性能提升降帧处理方式
游戏性能提升降帧处理方式
jun9152143 发表于6个月前
游戏性能提升降帧处理方式
  • 发表于 6个月前
  • 阅读 8
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

游戏性能提升降帧处理方式_游戏开发_游戏设计_性能提升_课课家

      什么是降帧&为什么降帧?

  一般情况下我们为了提高整个游戏的体验,所以我们一般会将游戏的帧数(每秒钟刷新多少次)设置的比较高。一般情况下,我们的游戏所有的代码都是一帧执行一次。为了让每一帧都变成真的关键数据帧。不过,部分手机能性能可能跟不上,或者计算量太大的情况下,手机的运算速度不能够支持的情况,过高的性能消耗就会拖慢运算的速度,让一秒内没有办法打到满帧。所以就会觉得游戏变得卡顿。

  其实一部分逻辑并没有必要每一帧都去执行,可以将他们隔几帧运行一次也不是不可以。比如说伤害值的运算,伤害应该与游戏运营的帧数无关,比如每0.1秒执行一次伤害代码,那么在满帧60帧的情况下,其实每6帧执行一次就OK。

  我们之所以希望能提高帧数,是为了制造流畅的感觉。但是降帧则会违反这种感觉。所以游戏的帧数不能降低,或者在准确一点来说,游戏的View的帧数不应该降低,减低的应该是逻辑帧数。

  或者有朋友会问,如果我们的程序最少的逻辑间隔时间是0.1的话。所有的游戏逻辑都是间隔0.1判定一次不就好了?这不是很简单的事情?但实际上事情并没有那么简单。一般情况下我们人眼的录入认为是16帧每秒。

  现在的理论上满足16帧的游戏,会显得更加的流畅了,我们知道一个16帧的游戏,并不能让人觉得非常流畅。为什么呢?其实原因也非常简单。人看到的东西会有预判,现在你看到这个怪物在水平移动,如果说游戏表现出来的效果与你的预判是保持一致的,也许你会觉得这样是显得非常流畅的,但是如果怪物的移动跟你的预判不一致,那么你就会觉得这个游戏并不流畅。

  那么该怎么去降帧?

  在文中已经是提到,我希望将游戏的帧数分为两种,一种是逻辑帧,另外一种View帧。View帧是满帧在跑的。而逻辑帧则是间隔执行的。也没错。上文中已经提到了,简单的区分这两种更新的实际也并不合适。因为依然会有一点的卡顿,那怎么才会不卡呢。那就可以将数据量分摊到各个帧里边,这样也就达到要求了。

  怪物会有两种跟新模式

  1、View更新:用来更新他的位置,动画一类

  2、用来更新行为:攻击、打出伤害等

  主循环会有多个对象列表比如说6个

  那么主循环会将每一次的Update标上记号。调用所有的对象的View更新方法和与标记相对应的对象列表的逻辑更新。

  这样就将所有的逻辑分摊到了各个帧数里边,让各个帧数更平均一些,最后是达到流畅的目的

  对游戏感兴趣的朋友们可以在这方面深入的进行研究,游戏开发设计制作是属于一个比较复杂的项目,要想对游戏精通,还得从兴趣的基础上进一步的优化。

共有 人打赏支持
粉丝 0
博文 93
码字总数 76288
×
jun9152143
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: