This document provides an overview of Pia and describes its features, programming procedures, and so forth.
Pia is a game communication engine that contains P2P communication libraries customized for development of real-time P2P communication for gameplay. "Pia" is the codename for the P2P library. It is a multiplatform library that supports all Nintendo platforms (3DS and later). Pia is made up of several libraries. Each library is called a module.
Pia includes communication features that are not available in NEX or the SDKs. It was developed for use in combination with NEX and the SDK. P2P communication over Internet communication functions in conjunction with NEX server services (mainly matchmaking). For more information, see the NEX Programming Manual.
Pia has the following characteristics.
Pia was designed for game communication and comes with useful features for game communication-related development. This feature enables you to develop the communication-related parts of game programs in a short time frame.
Local communication and Internet communication can share an interface in the game program. This feature enables you to develop local communication in a handheld game device and then quickly develop support for Internet communication afterward.
Common interface for handheld systems and consoles
Game programs for handheld systems and consoles share a common interface, so game communication for new Nintendo platforms can be developed quickly.
Loosely coupled design
Each module is loosely coupled so that a game can use only the modules it needs, and it is easier to extend functionality. The network layer can be replaced, making it easy to transition to a new network in the future.
Designed for low CPU load
Keeps the load on the CPU low even when it is connected to multiple devices for multiplayer gameplay. For more information, see the Pia Measurement Data document (available separately).
Fixed dynamic memory size design
Each buffer can be adjusted to match the game specifications. The size of the dynamic memory allocated for Pia to use is fixed at initialization. Because there is no dynamic memory allocation during gameplay, the system never runs out of memory due to repeated allocation of memory for the send buffer, such as when the communication route is congested.