概要
- DOOMエンジン の変数オーバーフロー検証実験の報告
- 約 2年半 連続稼働後のクラッシュ観測
- 実験環境や方法の詳細説明
- 変数オーバーフローが 現実に発生 した証明
- 結果から得られる教訓と考察
DOOMエンジン変数オーバーフロー長期実験
-
2年半前、DOOMエンジンの挙動に興味を持ち、長期実験を開始
-
デモ再生中にカウントされる 変数 が、次のデモ開始後もインクリメントされ続ける設計
-
この変数は 前回値 と比較されており、通常運用ではオーバーフローの心配は少ない設計
-
しかし、理論上は オーバーフロー が発生し、ゲームがクラッシュする可能性を計算
-
当時の計算では 約2年半 でオーバーフロー到達と予測
-
実験環境として、小型PDAにDOOMをインストール
-
電源はDIYの 18650バッテリーUPS を使用し、ルーターのUSBポートから 5V給電
-
システムを常時稼働させ、長期間放置運用
-
本日、PDAに ポップアップ が表示され、ゲームがクラッシュしたことを確認
-
クラッシュ発生時刻は、 2年半経過直後 であり、理論値とほぼ一致
-
これにより、DOOMエンジンの該当変数が 実際にオーバーフロー し、ハードクラッシュを引き起こすことを実証
-
クラッシュ時の写真(IMG_20250916_224553.jpg)が証拠として残存
実験から得られる教訓と考察
- 理論的なバグ も、長期運用や特殊状況下では現実化する可能性
- 変数管理や オーバーフロー対策 の重要性を再認識
- ハードウェアや電源供給の信頼性も、長期実験には不可欠
- ドキュメント化の重要性 :計算や設定を記録しておくことで、後の検証や再現が容易
- ソフトウェア設計時、 極端なケース も想定して堅牢性を高める必要性