Diarkis Field モジュールのご紹介

 
Fieldモジュールは、接続するサーバーを選択することなく、接続されているすべてのクライアントがお互いに「見える」仮想世界を作ります。
視界に入ったクライアント同士は、自動的にリアルタイムメッセージ交換ができるようになります。
Fieldのデフォルトサイズは37,7970,000平方メートル(日本とほぼ同じ面積)で、すべてのクライアントの視界は100メートルに設定されています。

Fieldモジュールのセットアップ

Fieldモジュールには TCPまたはUDP のインスタンスが設定されている必要があります。

TCPクライアントを使用する

UDPクライアントを使用する

Fieldを使い始めるには

Fieldモジュールを使い始めるには、まず初期化処理を行います。
以下はFieldの初期化コードの例です。

Field上でリモートクライアントと同期する方法

一定間隔で Sync メソッドを呼び出すことで、クライアントの座標を同期させたり、リモートクライアントにメッセージを送信することができます。

Fieldモジュールにおける「座標0」の扱い

座標0のクライアントは、0以外の座標のクライアントの視界に入ることはありません。

Fieldモジュールにおける「負の座標」の扱い

負の座標値を持つクライアントは、正の座標値を持つクライアントの視界と重なることはありません。
注: Sync を使用する前に SyncInit を呼び出さなければなりません。

Fieldからの退出を通知する

Fieldから退出する際、Fieldからクライアントがいなくなったことを他のリモートクライアントに通知したい場合、Diarkisでは以下のようなコードでリモートクライアントからの通知を処理するイベントリスナーを設定することができます。

おわりに

Fieldの概念は、リアルタイムプリケーションにおいて主要な機能であるオープンワールド・MMOのような世界を実装するために必要な概念の1つです。
Diarkisは分散アーキテクチャを取りながらもFieldがサーバごとに分断されないという点が大きな特徴であり、この特性により高い「拡張性」「耐障害性」を実現しています。