1.同期モード
- 状態の同期
- フレーム同期
2.ステータス同期
クライアントサーバーは、操作後のサーバ・コンピューティング・ゲームの動作を受信し、各クライアントにブロードキャストします。様々な状態同期サーバ・コンピューティングは、ライン上で再計算されます、各クライアントのパフォーマンスに注意を払っていない完全に、その成果の追求だけがOKで一貫しているされている、ゲームネットワーク遅延要件のこのタイプは非常に高いではありません。
データの同期:
- プレイヤーの状態
- サーバーコンピューティング
質問: - 同期エレメントより多く、データ同期の量を増加させます
- リアルタイム要件に似MOBAゲームは比較的高いです
3.フレーム同期
3.1同期コンテンツ
- プレイヤーの入力
- 変化量のみを同期
クライアント・コンピューティング、抗不正行為が問題となっています
3.2理想的
- 各プレイヤーは、同じパラメータと初期画面を持っています
- クライアントは、すべてのプレーヤーのためのまったく同じコードを実行します
- すべてのプレーヤーがリアルタイムに入力され、正常に各モーメントがまったく同じ入力であることを、他のプレイヤーのそれぞれに同期されています
各クライアントの一貫したパフォーマンスの結果
3.3難点
問題は、二つの点を指す:確実性(または同一性)を、実際に適時はまた、別個のディスプレイこのような論理保持層30 / Sとして論理(が、保持層60 /を示すように、UIの一部を示すためにここでは省略する。 S)と手(≈流暢)
- 次の移動のシーン、無線LANや4Gスイッチは、基地局を切り替えることがあるための最大の課題は、特に、待ち時間やパケットロスがより深刻になってきたPC->モバイルインターネットから、ネットワークの一貫で、信号劣化は非常に人気となりました。
- 同じロジックが常に同じパラメータおよび出力すること残る?IOS / Androidプラットフォーム、異なるコンパイラや、浮動小数点数のようなCPUアーキテクチャを考える。小数点とバタフライ効果のような変化、結果が異なる場合があります
遅延、ユーザーがパックするキーを押すと、認識プログラムと、少なくとも16msのを送信し、理論的に最適な経験 - 単一のゲームの遅延、すなわち、ユーザーからの最後の画面の変更を押してもおよそ40msのに必要な、ネットワーク4Gの遅延ネットワーク遅延とハードウェアの性能を考慮していない40ミリ秒の平均、(5Gは最小1ミリ秒までの待ち時間を減らすことができると主張するが、私は懐疑的)
3.4ネットワーク
- UDPの信頼性
- UDP冗長な情報
- データの量を最小限に抑えます
- MTUの外観におけるデータの各フレーム
- 浮動小数点の圧縮
- 連載
- ロス:3冗長前のデータへ
- データパケットの過剰な蓄積
- 早送り
- スナップショット
- 発行の制限
- プレイヤーは、処理遅延を入力します。
3.5計算の一貫性
- シーケンスを呼び出すと、タイミング
- 浮動小数点計算
- 固定小数点計算
- Fix64
- FVector
- 同様のPhysics.Raycast取得フロート - >値は切り捨て
- ソート容器の不確実性
- 不確実性をもたらすコルーチン内のロジックを書きます
- ランダムな値
- 整合性アルゴリズム
- ランダムシード
3.6スムーズを確保する方法
1.データの同期モード
@ワット= 300
1.ロックステップ
- フレームドライビングゲームデータによる
- サーバーは、各プレイヤーの指示を収集します
- 彼らは放送することができる前に、各フレームサーバは、すべてのプレイヤーの操作の指示を収集する場合にのみ
質問:人の待ち時間ネットワークは、サーバは皆ケイトン原因、データが到着するのを待って、放送中に実施されます
2.バケツロックステップ
- 一定時間は、すべてのユーザーにブロードキャストするたびに
- フレームレート間隔制御サーバによって
各プレイヤーはどうか新しい操作に依存しません
2.ロールバックロジックを予測し、ロジック・スナップショット
https://mp.weixin.qq.com/s/cOGn8-rHWLIxdDz-R3pXDg
3.7データとプレゼンテーションの分離
@ W = 300
@ W = 300
@ W = 300