游戏机制详解:多个加载阶段的加权进度与简单平均——权重[3, 5, 2]的十二组加载快照(实例03)
三个阶段分别显示进度时,直接平均百分比不一定符合总体工作预算。为每阶段事先设定权重,可以把不同规模的阶段放在同一个总进度模型里比较。
下面是一组独立的虚构游戏输入与逐步结果。先记录单位、编号和端点是否包含,再尝试自己推算,最后对照第一处差异。所有结论都以本例规则为前提;其他作品采用不同约定时,应按它自己的说明重新计算。
本例规则与数据
三个阶段各有正的权重与总工作数,快照给出完成数,均在零到总数之间。总进度是各阶段完成比例乘权重后的和,再除总权重;各快照独立,不假定权重代表真实剩余时间。
权重[3, 5, 2],总工作[7, 20, 17] [[0, 0, 0], [7, 20, 17], [7, 0, 1], [7, 12, 13], [5, 11, 8], [1, 8, 6], [6, 0, 16], [2, 10, 4], [0, 13, 6], [3, 16, 3], [6, 10, 7], [1, 1, 8]]
过程记录
完成数[0, 0, 0],各比例['0', '0', '0'],已兑现权重['0', '0', '0'];除总权重10得0,简单平均为0。
完成数[7, 20, 17],各比例['1', '1', '1'],已兑现权重['3', '5', '2'];除总权重10得1,简单平均为1。
完成数[7, 0, 1],各比例['1', '0', '1/17'],已兑现权重['3', '0', '2/17'];除总权重10得53/170,简单平均为6/17。
完成数[7, 12, 13],各比例['1', '3/5', '13/17'],已兑现权重['3', '3', '26/17'];除总权重10得64/85,简单平均为67/85。
完成数[5, 11, 8],各比例['5/7', '11/20', '8/17'],已兑现权重['15/7', '11/4', '16/17'];除总权重10得2777/4760,简单平均为4129/7140。
完成数[1, 8, 6],各比例['1/7', '2/5', '6/17'],已兑现权重['3/7', '2', '12/17'];除总权重10得373/1190,简单平均为533/1785。
完成数[6, 0, 16],各比例['6/7', '0', '16/17'],已兑现权重['18/7', '0', '32/17'];除总权重10得53/119,简单平均为214/357。
完成数[2, 10, 4],各比例['2/7', '1/2', '4/17'],已兑现权重['6/7', '5/2', '8/17'];除总权重10得911/2380,简单平均为81/238。
完成数[0, 13, 6],各比例['0', '13/20', '6/17'],已兑现权重['0', '13/4', '12/17'];除总权重10得269/680,简单平均为341/1020。
完成数[3, 16, 3],各比例['3/7', '4/5', '3/17'],已兑现权重['9/7', '4', '6/17'];除总权重10得671/1190,简单平均为836/1785。
完成数[6, 10, 7],各比例['6/7', '1/2', '7/17'],已兑现权重['18/7', '5/2', '14/17'];除总权重10得1403/2380,简单平均为421/714。
完成数[1, 1, 8],各比例['1/7', '1/20', '8/17'],已兑现权重['3/7', '1/4', '16/17'];除总权重10得771/4760,简单平均为1579/7140。
零快照的总进度为零,全部完成为一;中途快照由明确的阶段权重决定。
独立核对与实际应用
把每个阶段的完整权重看成它在总预算中的份额,先算已兑现多少份额再相加。全部为零应为零、全部完成应为一;各阶段同一完成比例时总值也应相同。
加权进度不是精确倒计时。若真实阶段工作量临时增加,原先固定权重就可能失去代表性;本例不自动重估权重。简单平均只在权重相等或某些巧合的快照下与本例结果相同。
测试时先保留输入和中间状态,再只改变一个条件。空状态、正好相等、重复出现和最后一步都值得单独检查。若最终结果不符,应从第一处偏差查起,而不是在末尾随意增加补偿让数字表面一致。
