メインコンテンツへスキップ
< すべてのトピックに戻る

ネットワーク同期を設計する時の基本は?

「誰がそのオブジェクトの座標や状態を決定する権利(権威:Authority)を持っているか」を最初に厳格に決め、それ以外の人はただ結果を受け取って表示するだけの設計にすることです。

複数人が同時に同じ敵を攻撃した際、それぞれの画面で勝手にHPを減らしてしまうと、Aさんの画面では敵が死んでいるのに、Bさんの画面ではまだ生きているという「同期ズレ(Desync)」が発生するからです。

Netcode for GameObjects 等を使用し、敵のHP管理やアイテムの取得判定は必ず「サーバー(またはホスト)」のスクリプト内でのみ計算し、クライアントはサーバーから送られてきた結果の数値を画面に反映するだけにします。

目次

9周年キャンペーン実施中 早い申込みほど受講料がお得に