找回密码
 点一下
查看: 2286|回复: 5

【卡顿解决方案】基于war3 mod的游戏后期(2小时以上)卡顿的临时解决方案

[复制链接]
18 GA币 回复本帖可获得 1 GA币奖励! 每人限 1 次
发表于 2015-6-23 16:15:18 | 显示全部楼层 |阅读模式
本帖最后由 windywel 于 2015-10-7 22:40 编辑

从4月12号【无尽防守(War3)】的发布开始,一直困扰我的也是我一直希望头目能抽出宝贵时间来解决的问题就是游戏后期卡顿(lag)。玩过我图2小时以上的玩家应该能体会到,即使是外星人也不例外。这段时间通过各种方案对游戏进行优化,例如,减少buff数量,设计卡限,优化script。但是都杯水车薪,无济于事。前天晚上终于找到了一个临时的解决方案。该解决方案仅仅能够推迟卡顿1~2小时。不过已经足够让主频2.2Ghz的玩家流畅的进行【16波无尽】模式。这里把这个临时解决方案分享给大家。希望能够有所帮助。方案的原理我会最后说。

这里假设地图作者希望游戏速度为普通(默认)。 地图作者需要做以下修改:

script 修改:
   1,将游戏速度设置为slower. 即现实中的1.6666秒为游戏时间的1秒。
   2,将GameTimeScaleGlobal的值设置为1.6666秒。
   3,将所有wait等待是时间类型为c_timeGame的等待秒数乘以0.6。
   4,如果你使用了Timer,请将Timer的时间类型修改为c_timeReal.
   5,设置一个线程每一段时间,例如5s, 设置整张地图的单位的行走动画速度为3左右(可以自行决定)。所使用的函数大概是 LibNtve_gf_WalkAnimSpeed()。现在没法查,没在开发机上。之所以不是在单位创建时的trigger中做是因为设置行走速度的函数并不是每次都生效,从个人观察发现,只有当单位没有进行行走时设置才生效。
  注意请在MapInit完成后设置游戏速度,因为头目MOD在MapInit中将游戏速度设置为了Normal. 如果你在mapinit中设置,可能不会成功。

编辑器修改:
   1,buff -> war3_unit->修改:
        a), 移动速度上限*1.6666
        b), 加速度*1.6666
        c), 减速度*1.6666

以上设置后就基本完成。游戏不会再像以前那么卡。 玩家基本感觉不到有何改变。不过使用该方法有以下瑕疵。

瑕疵

  1,技能释放动画会变慢。例如,a) 不死的小强的第一个技能。但是不影响结果。 b) 收割者的跳岩石。这个会影响跳至的时间。
  2,单位所显示的移动速度与攻击速度比原来的快60%,但只要不看数据,玩家感觉不出来差别。这也是我想知道,是否有方法只修改数字而不影响实际攻击频次的方法。例如我想让攻击速度显示为2,但是实际却是1.
  3,小地图右上方的游戏时间会变慢。我也想知道是否有方法改变。
4,会导致人类步兵的盾模式BUG. 例如,当有20个穿刺攻击(pierce)的单位攻击步兵的盾模式时,调试监视event的可视化窗口的event数量会急剧上升(例如,到2000)导致卡顿,即使当所有穿刺单位都死亡后也不会减少。除非解除盾模式@麦德三世 头目我查看了代码....但有点没明白原因,有时间的话求指点。(该问题是由于测试时输入无敌导致的


原理
  非常慢的游戏模式下每秒处理事件的数量比普通少。这样单位时间内对CPU的要求更少。具体的数据请有兴趣的玩家到sc2mapster上寻找。

通过这样的修改后,2.2Ghz的CPU就大概相当于以前没有优化的3.67Ghz。而以前能够流畅玩到25波的CPU 3.40Ghz就相当于5.67Ghz. 所以卡顿减缓并且推迟了1~2小时。不过该方案只是临时方案。后面,头目或者暴雪优化后,该方案就可以抛弃了,除非你希望游戏内有大规模的战争。这次优化还发现,显示在小地图右上方的游戏时间和卡顿成正比。就是当该时间到达2个半小时时,fps会下降到接近以前我说的卡顿帧率8fps. 虽然接近,但是却高于这个帧率5fps左右。

希望对游戏制作者有所帮助。




发表于 2015-6-23 17:57:09 | 显示全部楼层

回帖奖励 +1 GA币

楼主为什么不把自己的地图拿到魔兽争霸和星际2贴吧宣传

点评

感谢提醒。 楼主认为卡顿没解决拿出去宣传了,玩家玩一次就被卡怕了。现在基本解决,但是等几天看有什么反馈。如果没啥就去宣传宣传。  详情 回复 发表于 2015-6-23 18:45
回复

使用道具 举报

 楼主| 发表于 2015-6-23 18:45:50 | 显示全部楼层
Star_of_dada 发表于 2015-6-23 17:57
楼主为什么不把自己的地图拿到魔兽争霸和星际2贴吧宣传

感谢提醒。
楼主认为卡顿没解决拿出去宣传了,玩家玩一次就被卡怕了。现在基本解决,但是等几天看有什么反馈。如果没啥就去宣传宣传。
回复

使用道具 举报

发表于 2015-6-24 02:33:04 | 显示全部楼层

回帖奖励 +1 GA币

你这个地图难道大量使用了步兵的盾技能吗?

点评

没。在修改后测试时发现的步兵盾技能会导致事件数量急剧上升。一旦切换回去,事件数量一下就降低了。  详情 回复 发表于 2015-6-27 08:25
回复

使用道具 举报

 楼主| 发表于 2015-6-27 08:25:40 | 显示全部楼层
麦德三世 发表于 2015-6-24 02:33
你这个地图难道大量使用了步兵的盾技能吗?

没。在修改后测试时发现的步兵盾技能会导致事件数量急剧上升。一旦切换回去,事件数量一下就降低了。
回复

使用道具 举报

 楼主| 发表于 2015-8-17 09:31:59 | 显示全部楼层
看了很多国外的基于warcraft III assets 的地图,都存在一个后期卡顿的问题。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-4-19 11:25 , Processed in 0.144987 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表