游戏一般需要做战斗回放功能,这大多是回合制游戏。arpg虽然比较少,但有些情况下还是需要的。
那么如何实现arpg战斗回放呢?
如果是回合制,那么应该是容易的,因为回合制本身就是一个队列指令不断被执行。这个指令中包括每个回合的
动作以及动作的结果。那么假设一场战斗有20个回合,那么其实也就20个回合的指令存储一下,然后重播这个队列就好了。
但arpg不同,arpg并没有按照队列执行的概念(或许他是有一个队列),你只是赋予了非玩家操作角色一个ai,而玩家可控制角色就按照
你的操作去执行指令。那么为什么不能像回合制一样保存指令去执行呢?
假设我们按照回合制的思路去思考,那么马上就会发现几个问题:
1.指令数量中很多都是无效指令。 玩家疯狂的点击一个点,其实真正被执行的只有几个有效指令。一般战斗回放不能太大,不然你直接录像好了。
像魔兽争霸星级争霸 一场比赛半个小时下来 整个replay压缩后不超过1M. 所以我们可以想象这肯定不是记录所有玩家的指令,这样效率低下。或许你可以
去判断只保存有效指令。但这毫无疑问增加了工作量,毕竟你无法知道到底会有多少种不同的指令,而“有效”又作何定义?如果不小心遗漏了指令导致结果
看上去比较奇怪,那也不是我们想要的结果。