ぱんふむの不具合について |
不具合の詳細ですが
タイムアタックモードで作成したリプレイデータを
別のPCで再生すると正しく再生されないというものでした。
ぱんふむは
floatやD3DVECTORなどで
キャラクタ座標などを管理しています。
これはもともとリプレイ機能をつける予定のなかったためで
一番管理しやすい形で実装を始めてしまいました。
タイムアタックを実装したときに
「リプレイ機能をつけたい」と欲が出てしまい、
「入力データのログを取っておいて
キー入力の代わりにそれを読み込ませれば
リプレイできんじゃね?」
と安易に考えてしまったのが運の尽き・・・
しばらく経ってから
リプレイがうまく再生されない現象を発見しました。
たとえばAというPCでリプレイデータを作成します。
このデータにはふむふむを
4連続で踏むプレイが記録されています。
BというPCにリプレイデータをコピーし
実行するとふむふむを連続で踏めず、
それ以降、プレイヤーの位置がずれ、
結果ゴールまでたどり着けなくなってしまいます。
いろいろ調べたところ
CPUやOSによって微妙に計算結果が異なってしまうらしい
というところまでたどり着きました。
(実施に検証したPCはCPUやOSが異なります。
・Duron 1GHz WindowsXPHome
・Pen3 2.4GHz Windows2000)
仕方がないので移動するキャラクタについて
一定間隔で位置情報を書き出し、
リプレイ時にはそのデータでキャラクタ座標を修正する仕様を
追加して様子をみています。
大丈夫そうだったら、リリースしたいと思います。
マニュアルにもかけなかったリプレイデータのコピーの仕方も
これでかけますね・・・
あ、データレイアウトが変更になりますので
以前のリプレイデータは使えません・・・