在网上可以找到的网络游戏外挂已经是网络游戏本身数量的好几倍了,在这个“不可思议”的年代,还有什么是可以让我们相信的呢?
●CS枪枪爆头就是作弊吗?
●游戏里比人走得快一点就是变速齿轮了?
●游戏里的AI人物真的是电脑吗?
●为什么用模拟器联网游戏时会出现双方都赢的情况?
为了让兄弟们不被假象所蒙蔽,同时也为了不冤枉好人,特意给大家献上完整的“内幕揭露”……
枪神再现!枪枪爆头的奇迹
仿佛人人都是HeatoN(AK王子,和AWP之神Jonhnny R齐名,曾效力于世界顶级强队SK)了,在CS中你是否遇到过被人枪枪爆头的怪事?“作弊了!”你可能已经出离愤怒了,但事实可能并非如此。
1.必备知识:
游戏的物理模型是否完全真实
很多游戏都是依据现实生活中的物理模型制作的,比如重力模型,能让游戏中的人物跳起来之后会像真实人物一样落地;还有碰撞模型,如果两个球体相撞各自会走出什么轨迹(桌球游戏中就广泛采用了此类系统);摩擦力模型,《极品飞车》里你如果把车开到草地里速度就会锐减。但是尽管如此,现有的电脑运算能力也只能让游戏选择非常有限的物理模型来模拟现实,同时只是近似模拟,而非完全。
(1)真实度和速度的悖论
这很容易理解,在运算能力一定的情况下,真实度越高,那么游戏速度就越慢。早期出现的游戏由于当时的运算能力所限,所以游戏中可以表现的状态极其有限,打个比方,大家都玩过红白机上的《超级玛莉》,里边跳一下可以把砖块撞碎,这基本符合物理学,但如果在今天再来做这个游戏,可能就会加入更加符合真实物理模型的系统,比如从某个角度只能撞裂、或者撞出的碎块掉落方向依据碰撞点不同而有所区别等。让人兴奋的是,目前家用电脑上的运算能力已经能够满足真实度很高的游戏了!
(2)真的有完全实时运算吗
如果你留意广告,就会发现经常有3D游戏号称“完全实时运算”,这意味着什么?这就是说在游戏里你在游戏中每走一步所看到的东西都是由电脑在当时运算出来的,这可能吗?当然可能,但是(请注意这里有“但是”^o^)一款合格的游戏决不会选择这么做。游戏开发界的大师级人物Andre Lamothe曾经建议游戏运行时应避免平方根、三角函数和任何复杂的数学函数,因为在每秒上百帧的游戏画面中,大量运算数学函数无疑会造成画面延迟,出现跳帧等情况。替代的方法是在游戏制作时就将可能需要运算的函数批量运算好并生成一个大规模的表文件,在游戏中需要计算时直接调用表里已经计算好的值即可。
2.看了以后,你应该知道什么
(1)不是SK等强队的成员,枪枪爆头者基本在作弊。
(2)完全实时运算是扯淡。
(3)游戏和现实是两码事,因此别以为在《侠盗猎车》里为非作歹没人治得了你就可以去现实社会中抢银行。
3.除此之外,你还能学到什么
(1)调低射击类游戏的分辨率
很多CS高手都喜欢使用较低的分辨率,因为在游戏中判定击中头部(即“爆头”)的依据是子弹与头部所在的若干像素格重合,而调低分辨率之后,由于游戏采用物理模型的近似值(在游戏中的最小单位是像素,永远不可能有1.5个像素之类的小数出现),在头部周边范围内就很容易与取近似值而多出的像素接触,并判定为爆头。
(2)切换武器使准星初始化
在CS中连续射击后,准星会变得很大,这是模仿现实中枪支长时间使用后准确度降低的模型。CS中每次切换武器都会将准星初始化,所以在连发后迅速把AK和刀切换一下,就能迅速使准星变小。
(3)神秘的《魂斗罗》水下8关
传说只要在《魂斗罗》第6关中,在某小兵变形后跳到其身上即可进入隐藏的水下8关。遗憾的是,在20年后的今天有人发现这仅仅是一个花屏BUG。
“凌波微步”还是变速齿轮?
为什么在游戏里有些人总是比你走得快!?在CS里你还没买完枪他就已经冲到了你面前,在MU(网络游戏《奇迹》)里你的攻击就是打不着他的瞬移……有必要搞搞清楚了!
必备知识:变速齿轮的加速之谜
1.连续的电影画面
首先有必要澄清一个事实,我们在游戏中所看到的画面大多是程序提前几毫秒就“画”好的。知道电影是怎么播放的吗?一张张连续拍摄的胶片快速从眼前穿过,就成了连贯的动态画面。当然,要骗过人眼,你至少得每秒准备24个画面。
2.先知和画面缓存
(1)提前计算和丢帧
《黑客帝国》里的先知能够预测未来(但我一直怀疑她预测但不阻止尼奥打碎花瓶是故意装酷),其实游戏也是“先知”,比如你按下“↑”键,游戏里的人物就花2秒钟时间往前走了几步,但实际上在你按下这个键的时候,游戏程序就已经在计算走这几步路所经历的2秒内的所有画面。刚才说过,如果画面切换的频率低于每秒24帧(即24fps)画面就会出现不连贯(俗称“丢帧”),但是有的画面很复杂,其中有路灯有树还有马,有的画面很简单,只是一个空旷的房间,电脑“画”出这些画面所花的时间肯定也是不同的,那如何保证游戏画面切换的频率稳定并且不低于底限呢?
(2)水库与缓存
在天气干旱时,很难弄到一滴水;在雨季来临时,水多得简直用不完。游戏画面的计算时间也是如此,因此就有聪明人建造了水库,在雨季时将用不完的水存起来在旱季慢慢使用,于是更聪明的人设计了画面缓存,将游戏画面都运算好放在缓存里,然后控制“流量”保持在固定帧数地放出。你可以想象一下,游戏中计算游戏画面的部分是工人A,而将计算好的画面放到屏幕上的部分是工人B,工人A不断地将算好的画面放到仓库(缓存)中,而工人B不管工人A生产速度变快变慢,始终每秒钟取30幅画面放到屏幕上,如果仓库没货了,就会丢帧,在低配置机器上玩游戏时很多人会大叫“怎么又卡住啦”就是这种情况。
(3)时钟机制和联机同步
有些游戏用变速齿轮就屡试不爽,而有些则毫无作用,这是为什么?因为刚才变速齿轮的作用就相当于调快上文中工人B的手表,让他提前把算好的画面放上屏幕,由于有些游戏中计时的依据是硬件底层的系统时钟,变速齿轮根本别想把它拨快。某些联机对战的游戏,服务器端控制了双方的时间,仅仅在客户端上变速当然也不起作用。
2.看了之后,你应该知道什么
(1)你看到的画面并不是当时计算出的。
(2)你的电脑配置高,在游戏中走路的速度并不会比别人快。
3.除此之外,你还能学到什么
(1)变速齿轮开太快出现的故障
如果把变速齿轮速度开太快,在游戏中就会出现问题,比如CS里会出现人物突然抽搐的情况。至于为什么……你在水库墙上捅个大洞,水流光了自然就没水了呗!
(2)除了作弊之外,还可以用技巧
除了作弊之外,我们还可以利用游戏本身设计上的漏洞或者故意留的技巧,比如著名的FALCOM公司的多款游戏(如《永远的伊苏》、《双星物语》等),斜着45度走比直走的速度快很多,又比如在MU中瞬移结束前鼠标抖动一下,就能避免敌人掌握你移动的方位。