为什么迫击炮发射炮弹后按下H或走开可以防止游戏卡顿?
各位大大们好,今天在优化大量小炮攻击导致卡顿这个问题时,发现了一个出乎我自己意料的情况:当150个小炮一起攻击同一地点时,在炮弹发出未落地间,按下H或让小炮走开,我电脑的游戏fps=16。而如果不进行任何操作,fps降低至5.下图为按下H的时间点:
不按H的fps (按H的不好截图...):
在测试之前,个人认为这个卡顿是由于炮弹爆炸所导致的,但上面的结果却与之前个人的假设相矛盾。由此,在小炮发射出炮弹到炮弹落地爆炸之间,小炮应该有一个很消耗CPU的运算。如果我不进行操作,这个运算就会导致游戏卡顿。而如果我使用H按键对这个运算的前置进行打断,那么就可以避免卡顿。如果要优化小炮的卡顿问题,就需要找到这个H到底打断了什么操作?
目前个人的猜测是演算体中有某一个很耗时的运算。但是自己对这一块去很不熟。希望演算体的高手或者头目能够帮我下。这运算在哪?是否是在演算体中?按H后到底打断了什么...
提前谢谢。
哦,因为攻击地面这个技能是通过攻击一个隐藏单位实现的。
每个单位会在攻击地面时创建一个对应的隐藏单位。当你有150个迫击炮的时候其实创建了150个隐藏单位。
这些隐藏单位会在攻击停止后自动移除,所以当你按了S或者H自然就没了
如果你试着在地上放一个单位,然后让所有迫击炮都攻击这个目标,你会发现fps马上就变得高多了。
我在虚空之遗beta里发现了攻击地面的更好的实现方案,所以3.0以后会改成那个。 在眼下你可以用触发器来简单地做一个优化。比如当你有超过多少单位同时被下达攻击同一个点的指令的时候,在目标点创建一个单位,然后命令它们改为攻击那个目标。 麦德三世 发表于 2015-5-12 23:26
在眼下你可以用触发器来简单地做一个优化。比如当你有超过多少单位同时被下达攻击同一个点的指令的时候,在 ...
谢谢头目,果然A一个单位就不卡了~~~~
对了头目,还有个疑问,关于攻城机车的。110个人类的攻城机车如果按照默认的移动速度穿过屏幕会很卡。我电脑上是10fps。但是当把移动速度减半时,相同情况下可以达到16fps左右。是不是机车的转轮动画太耗CPU了... 那纯粹是因为车轮胎印太多了吧。
你去模型那页找到hmtt这个模型(普通坦克)或者hrtt这个(弹幕模式)。修改它们的事件属性,把第一条和第二条以外的条目全部删光。你就会发现移动起来几乎不耗费fps了。(因为把创建轮胎印的事件全部删光了,所以也就不会留下任何轮胎印子) 100坦克,54fps 麦德三世 发表于 2015-5-13 22:01
100坦克,54fps
删除模型其他,是不是少了很多动画?我还没弄,在写代码...哦,知道了,谢谢头目~~
麦德三世 发表于 2015-5-13 21:53
那纯粹是因为车轮胎印太多了吧。
你去模型那页找到hmtt这个模型(普通坦克)或者hrtt这个(弹幕模式)。 ...
头目...问个其他问题...为啥现在 libF2835B3B_XX() 函数都不见了~~~~我代码里面可以用的咋就只有
libF2835B3B_gf_War3MeleeMapInitialization()函数...其他全是Init,func...我用的galaxy++
windywel 发表于 2015-5-13 22:07
删除模型其他,是不是少了很多动画?我还没弄,在写代码...哦,知道了,谢谢头目~~
保留第一条和第二条就好,其它都是我拿来设置轮胎印的,只会少轮胎印,不会少动画。 windywel 发表于 2015-5-13 22:16
头目...问个其他问题...为啥现在 libF2835B3B_XX() 函数都不见了~~~~我代码里面可以用的咋就只有
libF28 ...
你确定不是lib755ACB0A? 麦德三世 发表于 2015-5-13 22:18
保留第一条和第二条就好,其它都是我拿来设置轮胎印的,只会少轮胎印,不会少动画。
对了,头目,有么有不删除,设置一个流畅或接近原版的flag,然后可以自动切换两种模型?我能想到的是做两个tank,当玩家选接近原版时就使用现在这个..当选择为了流畅度,就使用修改后的... 坦克模型没有变化啊,轮胎的印子是单独模型,和坦克本身分开的。 麦德三世 发表于 2015-5-13 22:20
你确定不是lib755ACB0A?
我reparse后使用 lib7与libf的智能提示如下:
输入libf后:
输入lib7后:
额....如果是lib7的话,那就应该是他程序有bug了.....
麦德三世 发表于 2015-5-13 22:29
坦克模型没有变化啊,轮胎的印子是单独模型,和坦克本身分开的。
恩,了解了,谢谢头目。我看其他模型有没有超级多的footprint,如果太多我就删掉些。感谢头目 windywel 发表于 2015-5-13 22:33
恩,了解了,谢谢头目。我看其他模型有没有超级多的footprint,如果太多我就删掉些。感谢头目
头目,删除后,我瞬间上23帧~~~哎,电脑性能差╮(╯▽╰)╭ 麦德三世 发表于 2015-5-13 22:01
100坦克,54fps
头目...有个问题...110头科多兽好卡,每2s有一秒非常流畅,但是另外一秒....完全不能动。
我已经移除了大部分的footprint.现在的模型的动画事件如图:
我测试了下,不是显示太多光环的问题,也不是因为为了增加攻击buff的每秒的搜索。
科多相关波次让玩家卡得想哭~~~~
我该如何修改
PS:我把优化的扩展mod(war3 data Fps Opt)放战网了 ,头目有空可以用这个扩展看下110头科多让人好伤心......
页:
[1]