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

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

サーバー

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

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

クライアント

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

接続されたクライアントは、ランタイムデータモデルのコピーと、プレイヤーのバックパック (インベント持ち物リスト) などの初期化を受信すると、サーバーは最初に Workspace.StreamingEnabled を true に設定します。サーバーは次に、最も近いコンテンツの下の Class

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

レプリケーション

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

データ

データモデルの変更は、3D 世界の何かが作成されたり、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 のすべてのパーツは堅体物理であり、シミュレートされた物理に参加します。また、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 は、サーバーとクライアントの間でチャットメッセージをレプリケートします。サーバーは、チャットメッセージをフィルタリングし、どのメッセージを他のクライアントにレプリケートするかを決定します。たとえば、サーバーは不快な言葉を含むメッセージをフィルタリングし、長すぎるメッセージをレプリケートします。