在发售 25 年之久后,V社经典 FPS《半条命》获得了周年庆祝更新。然而在纪念更新后,V社又发布了一个新补丁,解决了困扰该游戏数十年的一个 BUG。
该 BUG 出现在游戏第六章的著名场景中:一条触手冲破玻璃将一名科学家撞倒在地,并将它拖出房间。在 BUG 的影响下,玩家可以看到外星触手和科学家的动画不同步。
原本画面:
当 11 月 20 日《半条命1》25 周年纪念更新推出时,粉丝们对于这个 BUG 依然没有被修复感到失望。不过随后 V 社设计师 Dario Casali 在 11 月初发布的《半条命》纪录片中提到了这个 BUG,并表示“我们必须要解决这些问题”。
随后在本周 V 社对游戏进行了进一步更新,最终修复了这个几乎和游戏本身一样老的 BUG。补丁说明写道:“修复了爆炸坑(第六章标题)中出售抓住科学家的时间序列。”
修复后画面:
在社交媒体上,V社程序员 Ben Burbank 解释了新补丁的原因。他表示,V 社原本希望在 25 周年纪念更新中修复这个 BUG,但“其他东西的发布优先级更高”。
他继续解释道:“这不是一个系统性错误,并且似乎很大程度上仅限于这一个场景。主要是因为这是唯一一个依赖于同步多个动画的场景,并且在中间有一段演员需要在动画播放前在空间中寻找方向。”
V社有 3 个选项:试图用修复代码、更改播放的动画,或是更改地图让播放时间变正常。V社最终选择了第三种。Burbank 表示:“如果我们修复了序列,以便科学家的时间安排正确,玩家仍然可以站在门口射击科学家,打断序列,然后他会以奇怪的方式进行动画。所以我们想改变序列的触发方式,使其不会间断。”
“不过,重新编译映射会在生成的二进制空间分区中产生大量更改(请记住,这些映射最后一次还是在 Windows 95/98 计算机上编译的)。任何 bsp 差异都可能导致微小但烦人的路径和冲突 BUG。我们不想要那些。”
“因此,我们最终只是对地图进行了 16 进制编辑。在开门时出发动画(一些社区 Mod 使用反编译或重新编译的地图版本来触发动画,而不是在玩家走进门的一瞬间触发,确保玩家在动画开始同步前无法射击科学家。”
《半条命:25 周年纪念纪录片》的导演兼编辑 Danny O’Dwyer 提供了有关这个 BUG 的一些额外背景信息。 1998 年《半条命》发布时,动画似乎按预期排列,但发布后的更新导致了 BUG 出现。他告诉 IGN 游戏发售时“动画师同步的,但多年来发生的一些事情导致了它们不再同步”,但并不清楚具体是什么时候该 BUG 才出现。