本ドキュメントは Pia の概要や機能、プログラミング手順などについて説明したものです。
Pia はゲーム通信(ゲームプレイのためのリアルタイム P2P 通信)の開発用途に特化したゲーム通信エンジン(P2P 通信ライブラリ群)です。Pia は「ピア」と呼び、P2P library の略です。全ての任天堂製プラットフォーム(3DS 以降)に対応するマルチプラットフォームライブラリとなっています。Pia は複数のライブラリで構成されており、各ライブラリを「モジュール」と呼んでいます。
Pia には NEX や SDK で備えていない様々な通信機能が含まれており、NEX や SDK と組み合わせて使用することを想定しています。インターネット通信での P2P 通信は NEX のサーバーサービス(主にマッチメイク)と連動して機能しますので、NEX プログラミングマニュアルもあわせて参照してください。
Pia には次の特長があります。
ゲーム通信に特化した設計となっており、ゲーム通信開発に便利な機能を揃えています。そのため、ゲーム通信部分のゲームプログラムを短期間で開発できます。
ゲームプログラムをローカル通信とインターネット通信で共通化することができます。そのため、携帯ゲーム機ではローカル通信ゲームを開発した後、インターネット通信対応が短期間で開発できます。
携帯機と据置機のインターフェース共通化
ゲームプログラムを携帯機と据置機で共通化することができ、新しい任天堂プラットフォーム用のゲーム通信を短期間で開発できます。
疎結合設計
各モジュールは疎結合設計となっており、ゲームが必要とするモジュールだけを使用することができ、また、機能拡張も行いやすくなっています。ネットワーク層は置き換え可能となっているため、将来の新しいネットワークに移行しやすくなっています。
低 CPU 負荷設計
多数台接続(多人数プレイ)でも CPU 負荷が高くなりにくい設計となっています。(詳しくは別途用意されている Pia 測定情報を参照してください)
固定動的メモリサイズ設計
ゲームの仕様に合わせて各バッファなどを調節することができ、Pia が使用する動的メモリ確保サイズは初期化時に確定します。ゲームプレイ中の動的メモリ確保は行われないため、通信経路混雑時などに送信バッファ用メモリ確保が繰り返されてメモリ不足に陥ることはありません。