3. PiaLocal 編

はじめに

この章は Pia のモジュールの一つである PiaLocal の機能と、プログラミング手順について 説明するものです。詳細については関数リファレンスを併せて参照してください。

機能概要

PiaLocal はローカル P2P 通信の拡張機能を提供するモジュールです。UDS ライブラリを拡張し、高度な機能を使用することが可能になります。PiaSession と一緒に使用します。

実装方法の比較

ローカルマッチメイクを実装するには複数の方法がありますが、ここでそれぞれの特徴を説明します。

SDK の UDS ライブラリを直接使用する場合

UDS ライブラリを直接使用する場合でも、基本的な通信は可能です。UDS の送信関数、受信関数などのブロック時間は長いため、通常、アプリケーション側で通信用スレッドを用意する必要があります。また、リライアブル通信やパケットバンドリングを実現するためには、アプリケーション側で実装する必要があります。

PiaLocal と PiaSession を使用する場合

PiaSession を使用することで、ローカルマッチメイクとインターネットマッチメイクのコード共通化が可能となり、リライアブル通信やパケットバンドリングなど PiaTransport の豊富な機能を使用することができるようになります。PiaSession はマルチプラットフォーム対応のため、将来、任天堂の他のプラットフォームへの移行も容易になります。使用する機能によって CPU 負荷が増加することになりますが、PiaTransport は CPU 負荷を最小限に抑える設計となっています。(詳しくは別途用意される 「Pia 測定情報」を参照してください。)

比較のために主要機能の対応状況について表にまとめます。

  nn::uds PiaLocal + PiaSession
ローカルマッチメイクとインターネットマッチメイクのコード共通化 X O
ライブラリ内での送受信スレッド X O
Pia プロトコル(ReliableProtocol、ReliableBroadcastProtocol など) X O
パケットバンドリング X O
セッションユーザーパスワード X O
ホストマイグレーション X O
アラウンドネットワークサーチ X O
その他拡張機能(同期クロック、RTT 取得など) X O
デバッグ支援機能(レイテンシエミュレーション、トレースなど) X O
マルチプラットフォーム対応 X O

O:対応    X:非対応