見出し画像

Niantic Lightship ARDKのネットワークのリミットとベストプラティクスについて

推奨する接続数

1セッションに対して最大5人までを推奨。

推奨する接続時間

最大5分

送信するメッセージの信頼性

Niantic Lightship ARDKのメッセージの信頼性は100%ではない。 TCPトランスポート層を使用しているがメッセージは欠落する可能性はある。

Niantic社の内部テストにおいて、数千のセッションを使って検証した結果
Reliableメッセージ: 99.5%
Unreliableメッセージ: 99%

Persistent Key-Value Store の場合、クラウドサーバー(ARBE: AR BackEnd)に保存されているため、セッションにいてる間は必ず受信することができます。

メッセージのオーバーヘッド

Reliableのメッセージは、信頼性を向上する利点はあるが、メッセージの送信にはオーバーヘッドが発生します。

特段の理由がない限り、メッセージはUnreliableの使用を推奨してます。

メッセージの容量制限

送信するメッセージに対して容量の制限があります。制限を越えたメッセージをを送信すると、警告が表示され、メッセージの送信に失敗します。


SendDataToPeer または BroadcastData を使って送信した場合
1メッセージあたり10MBまで


StorePersistentKeyValue

Key :     4KBまで(UTF-8エンコード後の容量)
Value : 100MBまで


ピア同士のメッセージ送信処理による注意点

同じセッション内のピア間のメッセージ送信にはピアツーピアメッセージを使用します。ピアツーピアメッセージのメッセージ送信の遅延は数十ミリ秒ほどです。(デバイス間の距離によって左右される。)

この遅延の間にメッセージを送信した場合、まだ、相手のピアが存在しないためメッセージが欠落します。

上記の理由により、PeerAdded イベントを受信して、すぐにピアツーピアメッセージを送信(IMultipeerNetworking.SendDataToPeerすることを推奨していません。

このようなメッセージが欠落を防ぐ対策として、ピアが追加された直後でなく、数フレーム後に初期化メッセージの送信を行い、相手側が初期化メッセージを受信した後にメッセージを送信するなどを行うことを推奨しています。

セッションの再接続について

セッションから1度でも離脱すると、離脱前のピアとしてセッションに参加することはできません。(新しいピアとして、同じセッションにジョインすることは可能。)

ホストがセッションから離脱した場合、現在、参加しているピアから新しいホストを選ぶようなことはありません。しかし、マップはセッションがタイムアウトするまでは残り、新しいピアが古いマップに対してローカライズすることは可能です。

すべてのピアがセッションから退出した後、30秒後にセッションがタイムアウトします

参考

最後に

OnePlanet XR

OnePlanet XR はAR/MR技術に専門特化したコンサルティングサービスです。豊富な実績を元に、AR/MR技術を活用した新たな事業の立ち上げ支援や、社内業務のデジタル化/DX推進など、貴社の必要とするイノベーションを実現いたします。
ご相談から受け付けております。ご興味ございましたら弊社までお問い合わせください。(以下にアクセスするとお問い合わせページに遷移されます。)

https://1planet.co.jp/xrconsulting.html

Niantic Lightship ARDK のブログ記事

この記事以外にNiantic Lightship ARDKのブログ記事を投稿しています。

OnePlanet Tech Magazine

Niantic Lightship ARDK以外のAR技術記事も定期的に投稿してます。