ゲームでエラー発生時にリプレイデータを保存
ゲームのリプレイデータはテストやデバッグ時の状況再現にも役に立つ。
なので予期しないエラーが発生したときは自動的にリプレイデータをファイルに保存しておくといいんじゃないかと思った。
Ruby ならこんな感じ
begin rescue f = open("replay.dat", "w") f.print(Marshal.dump(@replayData)) f.close() exit end
C なら SIGSEGV や SIGFPE をキャッチするとか。
で、コマンドラインオプションでリプレイデータファイルを指定してリプレイモードで起動できるようにしておく。
普通リプレイデータに含めるのは乱数の種とキー入力だろうけど、前回起動時のセーブデータも保存しておけば完全に状況再現できるのでは。
ああ、ネットワークが絡むとさらに厄介だな。