ゲームフレーム同期学習ノート


文書ディレクトリ
  • 一、前言
  • 二、状態同期
  • 1、状態同期とは何か
  • 2、状態同期の流れ
  • 3、状態同期の特徴
  • 三、フレーム同期
  • 1、フレーム同期
  • とは
  • 2、フレーム同期の流れ
  • 3、フレーム同期の特徴
  • 四、状態同期とフレーム同期の対比
  • 一、前言
    現代のマルチプレイでは、複数のクライアント間の通信の多くが同期多重状態を主な目標としており、この目標を実現するために、主に2つの技術方向がある:状態同期、フレーム同期.
    二、状態同期
    1、状態同期とは
    状態同期は簡単には同期ゲーム中の様々な状態であり,クライアントがゲーム動作をサーバに送信すると,サーバが受信した後,ゲーム動作の結果を計算し,クライアントゲーム中の様々な状態データをブロードキャストする.クライアントは、ステータスデータを受信してコンテンツを表示します.この方法は、各クライアントがリモートでサーバ上で動作するソフトウェアに似ています.
    2、状態同期の流れ
    1)クライアントアップロード操作サーバ2)サーバ受信後にゲーム動作を計算した結果(例えばスキルロジック,戦闘計算など)3)サーバがゲーム中の各種状態をブロードキャストで配信する4)クライアントが状態を受信してローカル状態(例えば動作状態,Buff状態,位置など)を更新する
    ゲームプレイヤーにより良い体験を与えるために、同期のデータ量を減らすために、クライアントも多くのローカル演算を行い、サーバの同期の頻度とデータ量を減らすことができます.
    3、状態同期の特徴
    状態同期は実は厳密ではない同期であり、その思想の中で異なるプレイヤーの画面上の一致性の表現は重要な指標ではなく、操作の結果が同じであればよい.したがって、ステータス同期はネットワーク遅延に対する要求は高くない.例えば,RPGゲームでは200~300 msの遅延はユーザにとって許容できるが,RTS(インスタント戦略)ゲームでは50 msの遅延は負傷する.
    RPGゲーム:ロールプレイングゲーム(Role-playing game)、略称RPG、RTSゲーム:インスタント戦略ゲーム(Real-time Strategy Game)、略称RTS.
    三、フレーム同期
    1.フレーム同期とは
    フレーム同期とは?サーバはクライアントの携帯電話から送信された操作を収集し,特定の時間(収集が完了した後)に各クライアントにブロードキャスト送信する.クライアントは,受信した入力に基づいて同じ論理処理を行い,最終的に同じ結果を得るプロセスである.実装では、通常、サーバが一定のフレームレートで各クライアントの入力を収集し、これらの入力をすべてのクライアントにブロードキャストする.各操作命令がすべてのクライアントに到達する時間(フレーム)は同じであるため、各クライアント演算の結果も同じであり、つまり同じ入力で同じ結果が得られる.
    フレーム同期はRTSゲームでよく採用される同期技術であり、状態同期ではデータ量が同期を必要とする単位数とともに増加するが、RTSでは数百単位で動作可能であり、これらが同期を必要とする場合、データ量は受け入れられないため、フレーム同期非同期状態では同期のみで動作する.例えば、ゲーム内の同期プレイヤーの操作命令であり、操作命令には現在のフレームインデックスが含まれる.
    2、フレーム同期の流れ
    1)ランダムシードを同期する:ゲーム中に乱数を設計して使用し、乱数シードを同期することで乱数の一貫性を保つことができる.2)クライアントは操作命令をサーバーにアップロードし、操作命令はゲーム操作と現在のフレームインデックスを含む.3)ゲームはすべてのクライアントの操作をブロードキャストし,操作がなければ空の命令をブロードキャストしてゲームフレームを前進させる.
    3、フレーム同期の特徴
    フレーム同期は主にクライアントの能力に依存し、サーバは1つの転送を行うだけで、クライアントはサーバを必要とせずにP 2 P方式でデータを転送することができる.ゲームを転送する行為だけなので,放送のデータ量は状態同期よりもはるかに小さい.飛行射撃、FPS、RTS(インスタント戦略)など、ゲームの動作が非常に頻繁なアクションゲームに適している.
    フレーム同期の特性のため、サーバがすべての操作を記録し、クライアントが操作ファイルに再実行を要求する戦闘再生が容易である.フレーム同期の特性は、クライアントの論理実装と表現実装を完全に分離しなければならない.
    フレーム同期の目的は、ネットワークの変動性がプレイヤーに与えるカートンや、速くなったり遅くなったりする不良体験を解消することである.
    フレーム同期モードでは、データ同期の周波数が高く、ネットワーク遅延が小さいほど良い.TCPのスライドウィンドウ機構と再送機構により、遅延機構が発生し、遅延が制御できなくなる.したがって、フレーム同期は一般的にUDPを用いてネットワーク伝送されるが、UDPは信頼性の問題を生み出し、クライアントに対しては、一部のUDPパケットが受信されていない場合、フレームが失われる場合がある.
    四、状態同期とフレーム同期の対比
    一般的に大型MMO ARPGは状態同期を採用しているが、状態同期はC/S を採用しているため、すべての状態はサーバによって制御され、安全性は比較的高いが、流量は比較的大きい.フレーム同期は囚人モードを採用し、すべてのC は論理フレームレートを強制的に採用し、出力が一致することを保証し、その特徴は流量が小さく、安全性が悪いことである.
    囚人モードはロックモードとも呼ばれ、対戦に参加するすべてのクライアントを一列に並んだ囚人と見なし、これらの囚人たちの左足はロックチェーンでつながっており、前に進むには同時に歩くしかなく、そのうちの誰かが速くなったり遅くなったりしたら、チーム全体を止めさせます.各クライアントネットワークの遅延は一般的に50ミリ秒以内であり、1つのクライアントネットワークが詰まっている場合は、すべてのクライアントが停止して待つ必要があります.
    C/Sアーキテクチャ:Client-Server、すなわちクライアント-サーバ構造
    MMO ARPG:全称Multiplayer Online Action Role Playing Game、すなわち大型マルチプレイオンラインアクションロールプレイングゲーム
    じょうたいどうき
    フレーム同期
    りゅうりょう
    相対的に高い
    相対的に低い
    再生
    記録ファイルが大きい
    記録ファイルサイズ
    セキュリティ
    サーバはロジックを実現し、セキュリティが高い
    ロジックはクライアントで、反外挂圧力が大きい
    サーバ圧力
    大きい
    小さい
    戦闘検証
    プロトコルの暗号化、メモリの混同、誤差の検査、徹底的に解決することができません
    サーバーはもう一度戦いをやり直すことができます
    ネットワークカートン表現
    瞬移、回位、なぜか血が抜ける
    戦闘カートン
    インプリメンテーション
    状態同期方式を最適化し、クライアントは差分処理を行う必要がある
    クライアントは単機方式で開発し、論理層と表現層の分離を保証し、論理層は不確定な順序の論理構造を使用しないでください.