谈谈《星际争霸2》中,系统统计的EPM在哪些地方上比APM低了

如果嫌太长或者看不懂可以直接拉到最后看结论。
最近想写一篇Serral的分析文章,但是文章便秘了。不过在分析Replay的时候我还是有点意外收获的,收集起来写成了这篇文章。
首先我要指出一点,EPM在编辑器统计数据里的真名叫做Command Per Minute(abbr. CPM),下文也会一直使用CPM而不会使用EPM。
编辑器里一共有5种玩家动作行为会用于计算APM和CPM
ActionsCommand
ActionsControlGroup
ActionsResourceTrade
ActionsSelect
ActionsTarget
------------------------------
CommandsCommand
CommandsControlGroup
CommandsResourceTrade
CommandsSelect
CommandsTarget
其中,Actions(动作)会被用于计算APM,Commands(指令)会被用于计算CPM。
为什么不是10种动作行为?因为所有的Command都是在Action发出后,通过条件判断增加的(换句话说,在ActionsCommand行为发出后,系统会先判断这个行为是否符合CommandsCommand,符合再递增。Commands只是满足特殊条件的Actions)。
接下来我们按照分组解释下这些动作。
------------------------------
ActionsCommand & CommandsCommand
ActionsCommand包括了几乎所有的单位指令:移动、采集、建造、释放技能……
满足ActionsCommand的行为基本上都会被计入CommandsCommand。
这两个数据很少会出现差异(基本上一局游戏中差异不会超过10),我现在已知的可能出现差异的一种情况是:建筑物修改集结点的时候进行了建造/取消建造等命令,这时候系统只会将集结点修改行为计入CC,而建造等行为只会计入AC不会计入CC。
------------------------------
ActionsControlGroup & CommandsControlGroup
ActionsControlGroup包括了所有的编队相关指令:修改编队、选择编队……修改编队行为需要成功修改已有编队才会被计入ACG(比如你框了一百个单位疯狂Ctrl+1231231231232,是只会计3个数的)。而选择编队行为也是要被选择编队和当前选中单位不一样才会被计入的(比如你疯狂按1号编队,只会计1个数)。
CommandsControlGroup非常刁钻,目前我只知道一种情况会被计入CCG,就是你切换编队后执行的第一个指令和你队上一组单位发出的最后一个指令不一样(比如1、2编队,你得按1A2M1A2M1A2M才会记数)。
------------------------------
ActionsResourceTrade & CommandsResourceTrade
这是多人对多人对战的内容,这里不作讨论。
------------------------------
ActionsSelect & CommandsSelect
ActionsSelect包括了以下行为:框选/点选单位、用闲置农民按钮选择农民、用TAB/反TAB切换当前子编组……
CommandsSelect的递增条件和CCG类似,需要对不同单位给出不同指令才能递增。
------------------------------
ActionsTarget & CommandsTarget
ActionsTarget包括了所有通过左键选择技能目标的行为(无论你是点了空地还是单位,无论你是不是在重复点同一个单位),这些被计入AT的行为不会被计入AC。注意,所有右键智能指令都会计入AC而不会计入AT。
满足ActionsTarget的行为基本上都会被计入CommandsTarget,不会被计入的特殊情况我还没有试出来。
【【【注意:任何镜头行为都不会被计入APM,就算你编了一万屏,光速轮指切屏,你的APM还是0】】】
上面那么多看不懂怎么办?那我给你再精炼一下,就是暴雪算法下的CPM数据其实没什么参考价值。APM和CPM会出现差别的地方就在ControlGroup和Select相关的操作上,但是这CPM在两块上的相关算法非常非常神秘,我几乎不能理解为什么阿三程序员会想出这种奇怪的算法。而暴雪在弄了这么套奇葩算法同时,却不给出相当关键的镜头动作统计数据,要知道切屏速度是衡量一个人操作效率的重要指标,他们写出了那种怪胎算法却弄不出这个数据,我表示懵逼。
不要再迷信EPM了,EPM体现不出一点Efficiency。
利用现有的工具其实可以自己做出合理的CPM计算器,可惜我么这个实力,溜了。