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

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

サーバー

Roblox の経験はデフォルトでマルチプレイヤーであり、クライアントサーバーモデルで実行します。Roblox サーバー は、エクスペリエンスの状態を維持する最終権限であり、すべての接続クライアントをサーバーと同期する責任があります。

A server grouping with connections to three client devices.
3つのクライアントデバイスに接続したサーバー

クライバー

エクスペリエンスが実行されると、Roblox は Studio で構築して公開した「編集」データモデルのバージョンをコピーし、Roblox サーバー上で「実行時」データモデルとして実行します。

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

A diagram that maps objects between 'edit' and 'runtime' data models.

レプリケーション

サーバーは、接続されたクライアントを常に更新し、サーバーとクライアント全体をデータモデル、物理シミュレーション、チャットメッセージの同期を行うプロセスである レプリケーション で同期します。レプリケーションロジックは、クライアントとサーバーの両方に存在し、同期を保証します。

データ

データモデルの変更は、3D 世界に何かが作成されたり、3D 世界のプロパティが変更されたりするようなさまざまな場合に発生する可能性があります。通常、サーバーまたはクライアントのスクリプトが、クライアント-サーバー境界の反対側に反映する必要がある変更を行うときに発生します。次の図は、データレプリケーションの一般的なシナリオを示しています。

クライアントサーバー >
>

>

A diagram of one client communicating with the server.

クライアントからサーバーへの通信。たとえば、クライアントは P キーを押して、透明ポーションを飲み、サーバーにそのプレイヤーのキャラクターをすべての他のプレイヤーに非表示にするように指示します。

サーバークライアント
>

>

A diagram of the server communicating with one client.

サーバーから特定のクライアントへの通信。たとえば、プレイヤーがエクスペリエンスに参加し、サーバーはそのプレイヤーのインベントリに一連のアイテムを満たします。

サーバーすべてのクライアント >
>

>

A diagram of the server communicating with all connected clients.

サーバーと接続されたすべてのクライアント間の通信。たとえば、レースのすべての参加者にカウントダウンタイマーを表示する。

物理学

Roblox は、3D 世界のパーツの動作と相互作用を計算する剛体物理エンジンを使用しています。デフォルトでは、Roblox のすべてのパーツは剛体であり、他に指定されない限り、シミュレーションされた物理に参加します。複数のパーツを物理エンジンが単一の剛ボディとして処理するアセンブリにグループ化することもできます。


A single block part in the shape of a cube that represents a single assembly.
1 アセンブリ; 1 部品
A player character that represents a single assembly of 18 individual parts.
1 アセンブリ; 18 部品
A pirate ship mesh that represents a single assembly of 179 individual parts.
1 アセンブリ; 179 部品

Roblox は、必要に応じて、サーバーとクライアント間の物理シミュレーションデータを複製します。シミュレーションのパフォーマンスを助けるために、Roblox はアセンブリの所有権を特定のクライアントまたはサーバーに割り当てることができます。こ履行は、クライアントまたはサーバーが、そのアセンブリの物理をシミュレートする責任を負えることを意味します。他のクライアントは、所有クライアントまたはサーバーからアセンブリの位置と動作に関するアップデートを受け取ります。所有権は通常自動的に発生しますが、微調整された応答性のために直接割り当てることができます。

カラーの縁取りで示されるパーツ所有権

チャチャット

Roblox は、サーバーとクライアントの間のチャットメッセージを複製します。サーバーはチャットメッセージのフィルタリングと、他のクライアントに複製するメッセージを決定する責任があります。たとえば、サーバーは、不快な言葉や長すぎるメッセージをフィルターできます。