Content Examples プロジェクトの中にある Network_Features マップは、ブループリントを介してネットワーク機能のすべてを実装する方法を示しています。Network_Features マップに入っている レプリケーション の主なサンプルは、アクタで設定可能な boolean の レプリケート 、ネットワーク権限 の検出、権限ごとのロジックの実行、 変数のレプリケーション の使用方法およびゲームプレイ中での使用方法、レプリケートされた変数の更新に応じてロジックを実行する RepNotify を使用した変数のレプリケーション、Function Replication を使用したクリティカルではないゲームプレイ要素あるいは「一回限りの」イベントの処理です。
マップには他にも、Relevancy (関連性) に関する考察、およびクライアント サーバー間の情報通信の適切な処理を説明したセクションがあります。サーバーからすべてのクライアントにすべての情報を送らなくても大事には至らない場合がほとんでです (例、片方のマップのプレイヤーが、もう片方のマップのプレイヤーが箱をあけていることを知る必要はありません)。しかし、こうしたことがプレイヤーに関連してくる場合があります (例、プレイヤーがマップの他の側から、開いている箱の側に移動した場合)。マップの機能別サンプルには、こうした状況や進行中のセッションに合流したプレイヤーの処理方法などが示されます。
以下の表のサンプル名をクリックすると、サンプルがどのようにビルドされたか確認することができます。
レプリケーション
Replication セクションにあるサンプルは、クライアント サーバー間で情報を適切に通信する方法や様々なテクニックをいつ使用するかについて紹介しています。
| サンプル | 実演内容 |
|---|---|
| 1.1 アクタのレプリケーション | 2 つのアクタのサンプルです。1 つは Replicated (レプリケート済み) でもう 1 つはレプリケートされていません (クライアント サーバーの両方に現れるアクタとサーバー側のみに現れるアクタ)。 |
| 1.2 ブループリントでネットワーク権限とリモート クライアントを検知する | Network Authority に基づき異なるロジックを実行するブループリントのサンプルです (サーバー側またはクライアント側で表示するかによってアクタの表示が変わります)。 |
| 1.3 変数のレプリケーション | サーバーからクライアントに Health 変数を レプリケート するサンプル (サーバーが変数を更新するに従い、アクタのヘルスが表示され、クライアント上で更新されます)。. |
| 1.4 変数のレプリケーション (RepNotify) | RepNotify とマーク付けされる変数のサンプルです。サーバー側とクライアント側の両方のマシンで自動的に更新されます (街灯は、クライアント側とサーバー側で同じものが確実に表示されるように RepNotify 変数を持ちます)。 |
| 1.5 関数のレプリケーション | ボタンがサーバーまたはクライアントによって押下される場合に通信のためにレプリケートされた関数を使用するサンプル。 |
Relevancy (関連性)
Relevancy セクションにある例は、箱を開けることと、サーバーとクライアントの間でその状態を通信するための Network Relevancy を処理する方法を示します。これは関連性のなかったアクタが関連性を持つようになるケースの処理方法という非常に一般的な問題を解決します。既存の進行中のゲームに合流したプレイヤーを処理する問題に非常に似ています。
以下のワンプルは、上記の問題に対して考えられる対処方法であり、なぜそれが機能するのか、しないのかを説明します。最後のサンプルでは、複数のテクニックを使用して複合的な解決策を使用することで問題を解決しています。
| サンプル | 内容 |
|---|---|
| 2.1 ネットワークの関連性 - 全くレプリケートされていない場合 | No Replication を使用する場合の関連性のサンプル (サーバー側で箱を開き、クライアント側は箱が開いた状態を見ません)。 |
| 2.2 ネットワークの関連性 - (パート 2 - 関数をレプリケートする方法) | Function Replication を使用する関連性のサンプル (サーバー側が箱を開き、クライアント側は箱が開いたのは見ず、箱の近くに移動しても、開いた状態は見ません)。 |
| 2.3 ネットワークの関連性 (パート 3 - 変数をレプリケートする方法) | Variable Replication を使用する関連性のサンプル (サーバー側が箱を開き、クライアント側は箱が開いたのは見ず、箱の近くに移動したときに、開いているのを見ます)。他のプレーヤーが過去に箱をあけているため、この例では望ましくないパーティクルエフェクトも機能します。 |
| 2.4 ネットワークの関連性 (パート 4 - 組み合わせてみる方法) | 以下の 2 つを組み合わせた関連性のサンプル。すなわち、Function Replication を使用して、箱を開けることに関連するエフェクトを再生する、および ネットワーク Replicated Variable を使用して箱の状態と、既に箱が開けられたかどうかを保ちます。 |