魔兽3 开发日志 - 性能优化记录

坑爹的漂浮文字

最近在忙着优化游戏性能,目前正在排查漂浮文字的性能问题,实现漂浮文字开关功能。

由于先前漂浮文字动画效果做得比较丰富,涉及计时器和样式较多,导致实现漂浮文字开关功能时意外消耗大量开发时间。

考虑到魔兽rpg的整体环境,做这种动画效果我觉得画蛇添足了,同时给自己增加额外工作压力。

实在是浪费时间。

单位池

目前有问题的做法:

  1. 先在游戏内预设1000个单位并隐藏。
  2. 需要时取出空闲单位,使用 DzSetUnitID 设置为目标单位类型。
  3. 在0.5秒内完成新单位的初始化+构建。

问题在于短时间大量同时调用 DzSetUnitID 时,会出现不小的概率设置失败。

随后将构建时间从0.5秒延长到1秒后这种现象明显减少。

还需要进一步观察。

ShowUnit 与 YDWE伤害系统

在开发单位池时发现,倘若创建单位后立即使用 ShowUnit(u, false) 来隐藏单位,会导致YDWE伤害系统无法捕获到目标单位,进而导致无法完成伤害事件的注册。

这也太诡异了。

此外,哪怕在创建时先保持显示,延迟半秒再隐藏,仍然会导致伤害事件失效。

更诡异了。

总之避开就好了。