美利坚:游戏制作教父 第895节
一台计算机(不管是游戏机还是PC还是掌机),想要运行代码,是不可能直接跑N语言这种高级语言的。
它必须要被编译成机器码,编译成电脑能理解的版本才行。
编译器在处理编译的过程中,本身就会对代码进行一次初步的优化。
把一些不必要的循环解除,不必要的变量改成常量,降低性能的写法改成更高效的写法……
也就是说,最终交给电脑运行的,其实跟程序员编写的根本不是同一个东西。
《雷神之锤2》的源码的确从来没有动过。
但编译器更新了。
而这,连锁引发了一个极度不起眼,甚至根本没有人当回事的问题。
浮点数精度变化。
简单来说,就是现在的数字比以前更精确了。
计算机为了性能,或者是为了实现某些必要的数学计算,往往在数字的处理上其实非常鬼畜。
就像典中典之《我的世界Minecraft》里的边境之地,其实就是一个典型的浮点数误差。
由于整个世界坐标都是用的浮点数的问题,Java在这个数字极大的时候,细微的误差会被不断积累放大。
最终便导致了出现各种诡异的扭曲偏移。
在这儿也是同理。
小数点后的几位发生了变化。
所以门打不开了,此案告破。
当众人终于是把这个‘穿越时空的幽灵’抓到时,直接被气笑了。
就这样?
真相就这样吗?
人群之中,被临时喊来加班的前地球头号黑客,现役GAMENOVA首席安全顾问凯文��米特尼克脑门直冒黑线。
他本期待着展开一场紧张刺激的黑客攻防战。
他们本以为是有一位比林立新还要恐怖的世外高人侵入到了GAMENOVA服务器内,神不知鬼不觉地破坏了源码。
“呃……好吧,不管怎么说,把这次的经验记在员工手册里,不然浮点数的坑以后还不知道要踩多少次。”
哪怕是林立新,此刻也有些无语。
起码还算是一场颇具奇幻色彩的DEBUG之旅。
随着以后物理引擎越来越发达,3D化越来越先进,不可避免地一定会频繁跟这些问题打交道。
提前踩踩坑也算是好事。
“��?说起浮点数误差,我们之前测试的时候还发现了一个问题。”
卡马克一拍脑门,赶快来到工作站前,
“我们做了完整的刚体物理和重力拟真,现在玩家可以拿起场景里的一些物品了,就比如这些桶子,或者这几块板子……”
他说着,将地图里的瓶瓶罐罐捡起,然后丢出去。
尽管整个物理系统的流畅度还有待提升,精度和细节程度也还不算完美。
但对比过去来说,简直就是惊为天人。
一个可以交互的物理世界,那可真的太夸张了。
“然后我发现了一个好玩的,你看,我把板子先放在这儿……完事我跳上来,再举起板子,卡好一个视角……”
卡马克操作着角色踩在木板上,按下交互键,将镜头略微微调了一番。
随后……
他狂按跳跃键,整个人居然是左脚踩右脚,直接御板飞上了天。
整个场景的真相顿时便尽收眼底。
除了中间的小房子,其他地方清一色的都是什么都没有的一片空白。
卡马克倒是玩得很开心。
一旁的项目主管克里斯托弗脸上可就挂不住了。
当着林立新的面跟他爆了这么多BUG出来,简直就是丢人丢到姥姥家了。
“还没完呢,你看好,我在这个位置把板子和桶稍微堆一下,我试试……上次我直接挤到了地图外面……”
卡马克倒是没心没肺,那叫一个欢腾。
克里斯托弗眼瞧卡马克没有停下的意思,继续下去还不知道要整出啥事儿呢,赶忙主动开口道:
“目前还是个测试阶段的Demo,这几天我们的主要目标就是提升精度,这些问题后面肯定都能得到改善的,BUG很快就能修好。”
“修?你说这个板子飞天啥的吗?为什么要修?”
林立新不解地偏过头来看向他。
“啊?BUG不修吗?”
这反问反倒是给克里斯托弗整不会了。
不修那不成屎山了?
到时候发出去玩家要骂娘的好吗?
“恶性的BU当然要修,但这个……我觉得其实无所谓。”
林立新耸了耸肩,望着玩得正开心的卡马克,
“不要把玩家有趣的举动当做是作弊,如果大家都觉得有意思,那就鼓励他们去胡闹就好了。”
有的设计师,技术不咋地,代码也写得一塌糊涂。
花了大量时间打磨出来了一个堪堪过及格线的作品。
然后玩家找到了很多他没有发现的有趣套路,迅速找到了破局之法,把原本艰难的挑战攻克了。
于是他便急了眼。
我这么用心的设计,你们也必须用心地去玩,不允许逃课。
为了不让玩家玩得这么开心,浪费了他的艺术才华,他便迅速推出热补丁修复了这个捷径。
本以为这样玩家们就会去体验他那些‘精妙的设计’了。
但没想到,玩家们迅速找到了新的套路。
于是他又补,玩家又攻克。
更好用的模组从民间长了出来,修改器成了人手一份的工具。
直到最后,他也会觉得是自己没堵好所有的缝隙,让这些该死的虫子钻了过去。
但他似乎从来都没有意识到一点。
会不会……他所引以为傲的那些东西,本来就不好玩呢?
“如果你对内容有足够的信心,你就没有必要担心玩家们会逃课,因为他们一定会回来的。”
“即便他们真的靠着物理引擎的特性逃了课,那也是玩家们自己的自由。”
“永远都不要教玩家玩游戏。”
这也算是林立新的肺腑之言了。
当初《像素战》的时候,就是因为他急于求成,指望引进率土Like玩法快速破圈,搞得最后不好收场。
也就是玩家们愿意支持GAMENOVA,不然指不定要被骂成啥样呢。
这件事也算是GAMENOVA发展史上少有的黑历史了。
事实证明,设计师最大的原罪就是傲慢。
“我们应该做个封闭测试,找一些玩家来体验,如果他们觉得这不影响体验,反而很有意思,那它就不是BUG,而是……‘特性’。”
你说是吧,BugJump?
不管是基于《半条命(半衰期)》、《传送门》、《GMod》诞生的围绕起源引擎的整个社区。
还是日后《Minecraft我的世界》那种真正完全自由的超级沙盒世界。
它们都保留了大量的BUG。
这其中,不得不承认或许的确有不少是因为技术问题没有来得及修复。
但也有很大一部分,的的确确就是为了游戏体验而刻意保留的。
就像MC里,如果修复了TNT复制,那一大票红石生电机械就会原地报废,大量的生电玩家都会放弃更新版本,成为一代遗老。
《GMod》也会失去它那种肆意妄为的畅快感。
第702章 物理学圣剑
【Gordon Freeman】(戈登��弗里曼)
上一篇:娱乐圈最严厉的父亲!
下一篇:太太请安分
