プロジェクトの中にゲームプレイレコーディング機能を実装すると、レベルの始めにプレーヤーの入力とRNGの種が記録されます。私はそのような記録を取って、それを正当性をテストするために私のコンピュータで再生することができました。異なるシステムでの浮動小数点数の精度
私は、異なるFlash Playerのバージョン、オペレーティングシステム、またはCPU(または影響を受ける可能性のあるもの)の間に表示される数値の相違にのみ関心があります。このプロジェクトは、Flash Player 10.0.0以上用に書かれています。私が関心を持っていること:
- 数値の操作:乗算、除算;ビット操作(ビットシフトも可能です)。加減;モジュロ
- 数学クラス:sin、cosおよびatan2;回転に
- それぞれlocalToGlobal/globalToLocalを丸めて、私はhitTest、getObjectsUnderPoint、hitTestPoint、その上のgetBoundsと同じようなものを使用されることはありません
スケーリング、すべての衝突は、幾何学的になります。
上記の指摘されたものを使用すると、異なるシステムで異なる結果が生じる可能性はありますか?もしそうなら、私はそれらを避けるために何ができますか?
ゲームプレイではなく、ユーザーが不正行為をしているかどうかをチェックするために、フロートの関連する非互換性が原因で、プレーヤーが最初にピットに落ちたかどうかを確認するのは難しいでしょう。最後の半分ピクセルから飛び越えて全体のリプレイを効果的に破り、私が検証することが不可能になる)。 – Maurycy
私は、これらの出来事は効果がないとは思えないほど稀であると信じています。私はエンジンを作り、それについて心配することはなく、何度も試合をして、実際の試合とシミュレーションの両方で同じ位置(例えば0.01単位)で終了することをテストすることで試します。もしそうでなければ問題を切り分けることができますが、Number(倍精度、64ビット)の四捨五入の違いが出てきたら非常に驚くでしょう。 – StapleGun
私も疑問に思っていますが、テストされたことのないところであなたの腸を信頼することは、重大な問題につながることがあることを学びました。私は主に三角関数に関わっています。 – Maurycy