开发游戏有哪些骗人的招数?
业内最著名的火车头盔是辐射3,我就不细说了,因为它无处不在。最近在学计算机图形学,说到骗眼睛,有个很好的例子。很多游戏的图像引擎中的反走样,其实就是在边缘制造模糊的过渡像素来欺骗大脑。分辨率和像素光栅化并没有改变,但大脑对模糊的边缘并不那么敏感。先说魔兽争霸3和dota1。题目主要讲的是如何用简单的方法实现复杂的东西。我先说如何用复杂的方法实现简单的事情。不一定是骗人眼睛的把戏,但还是挺有启发的。在魔兽地图编辑器中,不支持在受伤的情况下直接设置伤害值。而如果你连伤害值都设置不了,所有的伤害系统根本无法启动。当然,总有曲线救国的办法。地图作者发现虽然不能设置伤害值,但是可以获得伤害值并设置生命值或者使用代码造成伤害。所以在dota1等地图的伤害体系中,一些降低伤害的机制是在受到伤害时设置生命,并加回抵消伤害值。当然,任何事情都是有顺序的,在魔兽中,事件反应发生在实际伤害之前。此时用血模拟减伤,称为“前处理”。因为单位生命不能高于最大生命,所以前处理在接近满血的时候可能会溢出,造成减伤无效。dota1中(至少截至6.74),无脸虚空的概率抵消任何伤害的被动技能在满血时无效。到时候有经验的玩家可能在JB满脸是血的时候就知道输大了,就是这个道理。当然,在计时器的帮助下,我们也可以延迟用来抵消伤害的治疗效果。通常的做法是设置一个0秒定时器(实际上可能是0.0005秒左右),也叫“0秒治疗”。由于结算单,定时器到期后已经应用了伤害,然后再进行治疗就不会出现满血无效的问题。但是这种马后炮疗法会遇到一个新的问题,就是万一单位受伤阵亡,再进行治疗模拟减伤就来不及了。所以有经验的作者会把预处理和0秒处理结合起来,根据情况选择合适的方法,发挥优势。但在极端情况下,比如伤害高于最大生命,无法加前置治疗,0秒治疗也来不及,就需要求其他方法了。