クライアントで決定論的シミュレーションを実行するロールバックネットコードを使用して、ブラウザーマルチプレイヤーゲームを構築しようとしています。浮動小数点の障害に遭遇する前に、Flashでネットコードのプロトタイプを作成しました。
基本的に、私が理解していることから、Flashの整数演算は、int
sをNumber
sにキャストし、演算を実行してから、にキャストバックすることによって行われint
ます。明らかに高速ですが、異なるコンピュータアーキテクチャ間で決定論的な数学の可能性がないことを意味します。
すべての卵をJavaScriptバスケットにダンプする前に、いくつか質問したいと思います。
JavaScriptのすべての主要なブラウザに真の整数演算はありますか?または、一部のブラウザはFlashを実行し、float / doubleにキャストして、intにキャストバックする前に計算を実行しますか?
さまざまなコンピュータアーキテクチャ間で決定論的な数学のようなものがありますか、
BigDecimal
それとも機能しますか?BigNum
合理的な範囲内である限り、パフォーマンスの低下は問題ありません。そうでない場合は、私の問題を解決するJavaScriptの固定小数点ライブラリがありますか?これはロングショットですが、x / y位置や衝突などの決定論的な数学を備えたHTML52Dゲームエンジンはありますか?ゲームエンジンのリストは控えめに言っても圧倒的です。決定論的なクロスブラウザ互換エンジンを最初から構築することに不安がありますが、それは私がしなければならないことかもしれません。
注:応答に従ってHTML5からJSに編集されました。知識不足でお詫びします。