第701章 时空幽灵,能够穿越现实时间的BUG(中秋快乐!!!) (第1/3页)
你相信这个世界上有幽灵存在吗?
一个能够穿越时间,穿越空间,甚至穿梭在半导体的数字世界里的幽灵。
它能悄无声息地破坏那些原本正常的代码。
即便这个代码从头到尾都没有任何人动过。
在代码仓库里,近一年都没有任何提交。
连字节码哈希值都完全一致。
但它就是坏了。
因为开发组在一个完全无关的新版本里加入了物理引擎。
这……
简直就是一个存在於数码世界的鬼故事。
不过任何一个科学无法解释的现象,或许都只是水平暂时达不到罢了。
有的时候,真相或许并不会满足大家的期待。或许……真相其实非常简单,也非常蠢。
「是……是开着的!」
几人围在电脑前,看着那扇成功打开了的门,啧啧称奇。
「原来是这样……」
林立新坐在跟前,面露异色。
作为一名现代人,其实在上手代码的第一时间,他的脑海中就已经有了大致的猜测。
游戏圈有这样一个潜规则。
如果说游戏里最容易踩坑的是哪两样东西。
那莫过於门和浮点数了。
qake2时期,这扇门是完全可以正常打开的。
即便是门後有npc站着。
这扇门在打开时,碰撞箱会恰好挤到npc的脚,制造一个非常微小的偏移,恰好容纳门正常通过。但在完全没有修改源码里任何一点东西的时候,为什麽这个门突然打不开了?
即便是把硬体回退到nx而不是nf上,仍然是打不开?
其实答案非常简单。
源码一样跟机器码一样完全是两个概念。
amenva上下全体工程师,在开发过程中的主要语言往往就两样。
一个是完全自举,从始至终都是amenva坚实地基的n语言。
一个彻头彻尾的高级语言,大量易用的、现代化的语法,将它武装成了一个专为游戏而生的超级语言。
另一个则是nvascript,为网络世界而生的jit即时编译语言。
而问题就出在n语言这家伙身上。
从《雷神之锤2》到现在这段时间,除了源码外,到底还发生了哪些事呢?
n语言的编译器更新了。
为了适应越来越现代化的硬体,和更多更新鲜的语法糖以及高级语法。n语言几乎每隔一段时间都会推送一次更新。
一台计算机(不管是游戏机还是pc还是掌机),想要运行代码,是不可能直接跑n语言这种高级语言的。
它必须要被编译成机器码,编译成电脑能理解的版本才行。
编译器在处理编译的过程中,本身就会对代码进行一次初步的优化。
把一些不必要的循环解除,不必要的变量改成常量,降低性能的写法改成更高效的写法……
也就是说,最终交给电脑运行的,其实跟程式设计师编写的根本不是同一个东西。
《雷神之锤2》的源码的确从来没有动过。
但编译器更新了。
而这,连锁引发了一个极度不
(本章未完,请点击下一页继续阅读)
『加入书签,方便阅读』