クライアント-サーバーランタイム

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

サーバー

Robloxのゲームはデフォルトでマルチプレイヤーであり、クライアント-サーバーモデルで動作します。
Robloxのサーバーはゲームの状態を維持するための最終的な権限を持ち、接続されたすべてのクライアントをサーバーと同期させる責任があります。

サーバーが三つのクライアントデバイスに接続されている概略図。
三つのクライアントデバイスに接続されたサーバー

クライアント

ゲームが実行されると、RobloxはStudioから構築して公開した「編集」データモデルのバージョンをコピーし、それをRobloxのサーバー上で「ランタイム」データモデルとして実行します。

接続されたクライアントはランタイムデータモデルのコピーを受け取り、プレイヤーのバックパック(インベントリ)の初期化やローカルユーザーインターフェースの初期化などが行われます。ゲームがWorkspace.StreamingEnabledをtrueに設定している場合、サーバーは最初にクライアントに最も近いWorkspaceのコンテンツのサブセットのみを送信します。その後、クライアントが3Dワールドをレンダリングし、適用可能なスクリプトの実行を開始します。

編集データモデルとランタイムデータモデルのオブジェクトマッピングを示す図。

レプリケーション

サーバーは、レプリケーションと呼ばれるプロセスを通じて常に接続されたクライアントを更新し、サーバーとクライアント間のすべてを同期させます。このプロセスは、データモデル、物理シミュレーション、およびチャットメッセージを同期させます。同期のためのロジックはクライアントとサーバーの両方に存在します。

データモデルの変更は、3Dワールド内の何かが作成されたり、3Dワールドのプロパティが変更されたりするさまざまなケースで発生します。これは通常、サーバーまたはクライアントのスクリプトが変更を加え、それがクライアント-サーバーの境界の反対側に反映される必要がある場合に発生します。以下の図はデータレプリケーションの一般的なシナリオを示しています。

クライアント → サーバー


サーバーと通信する一つのクライアントの図。
任意のクライアントからサーバーへの通信。例えば、クライアントがPキーを押して透明ポーションを飲むと、サーバーにそのプレイヤーのキャラクターを他の全プレイヤーに見えないようにするよう指示します。
サーバー → クライアント


一つのクライアントと通信するサーバーの図。
サーバーから一特定のクライアントへの通信。例えば、プレイヤーがゲームに参加すると、サーバーがそのプレイヤーのインベントリをアイテムのセットで埋めます。
サーバー → 全クライアント


すべての接続されたクライアントに通信するサーバーの図。
サーバーとすべて接続されたクライアント間の通信。例えば、レースの参加者全員にカウントダウンタイマーを表示します。
©2026 Roblox Corporation。Roblox(ロブロックス)、RobloxロゴおよびPowering Imaginationは、米国並びにその他の国における登録商標および非登録商標です。