
2023年11月18日に25周年を迎えた名作FPSアドベンチャー『Half-Life』ですが、Windows 2000が登場したあたりから発生していたアニメーション関係のバグがようやく修正されたようです。
20年以上の月日を経て修正
このバグはゲーム序盤で発生する科学者が触手モンスターに襲われるシーンで発生し、科学者と触手モンスターのアニメーションがズレてしまうというもの。先日の25周年記念アップデートでは修正されなかったものの、後日修正パッチが配信され遂にアニメーションのズレが無くなりました。ValveのプログラマーであるBen Burbank氏は今回の件についてMastodonにて詳細を明かしています。
発売当初の1998~1999年にはこのバグは存在していなかった。
Windows 2000以降のPCでプレイすると発生。
25周年記念アップデートでの修正を望んでいたが、他のことが優先された。
修正には3つの選択肢があった
コードの修正(妥当ではあるが他の全てのスクリプトシーケンスを徹底的に再テストする必要があり、さらにバグが修正されない可能性もある)
再生するアニメーションを変更する(実現可能)
タイミングが合うようにマップを変更
いくつかの理由からマップを変更することを選択。
オリジナルではプレイヤーが科学者を撃ってシーケンスを中断出来てしまうため、そうできないようトリガー方法を変更することに。
マップを再コンパイルすると結果的にマップファイルに多くの変更が加えられるため、厄介なパス指定と衝突のバグを引き起こす可能性があった。ちなみにこのマップファイルが最後にコンパイルされたのはWindows 95/98のコンピュータ。
最終的にマップファイルをバイナリエディタで修正することになり、ドアを開いた時点でアニメーションを再生し、物事が同期し始める前にプレイヤーが科学者を攻撃できないようにした。
Ben Burbank氏はこのバグについてWin32 APIの実装により、タイマーの精度あるいは丸めの方法が変更されたためと推測しています。ゲームの進行に支障をきたすバグではありませんでしたが、僅かな違和感が解消されて開発者もプレイヤーもスッキリしたのではないでしょうか。
※UPDATE(2023/11/27 20:55):修正後のシーンのリンクを修正しました。コメント欄でのご指摘ありがとうございます。