CTR Pia  4.11.3
Game Communication Engine
PiaSession Verification Testing (Topology Test)

Introduction

This verification program is used to test combinations of Pia network topologies and host migration settings.

Before starting network communications, select the desired combination of settings and use matchmaking to connect devices having those same settings.

This demo only uses Internet communications.

Process Overview and Controls

Settings Selection Screen

This screen is used to select the settings to use for communication. By design, random matchmaking does not match the local device with other devices that use a different preset combination of settings. All stations in a session must use the same relay emulation and session feature presets.

Input Operation
X Button Decide on the settings to use, log in to the Internet game server, and proceed to the Login screen.
Y Button Enable or disable latency emulation.
You can change send and receive latency emulation delay settings while connected.
Up/down on the +Control Pad Change the preset combination of settings being used.
Left/right on the +Control Pad Change the relay emulation preset.
This setting is enabled only when the network topology is RelayMesh.
L Button + up/down on the +Control Pad Change the session feature preset.
START Exits the program.

Preset Combinations of Settings

Lists preset combinations of settings that can be selected on the Settings Selection screen.
Note: The preset combination can be changed dynamically while connected to other devices.

Preset Number 0 1 2 3 4 5 6 7 8 9 10 11
Session Class Used Session Session Session Session Session Session Mesh Mesh Mesh Mesh Mesh Mesh
Network Topology FullMesh RelayMesh RelayMesh FullMesh RelayMesh FullMesh FullMesh RelayMesh RelayMesh FullMesh RelayMesh FullMesh
Host Migration None None Enable Enable Enable Enable None None Enable Enable Enable Enable
Unreliable Send/Receive Interval* 1 1 1 1 1 1 1 1 1 1 1 1
Enable Sending via SendToAll true false false true false false true false false true false false
Enable Sending via RoundRobin* false false false false false false false false false false false false
Maximum Number of Simultaneous Send Messages Allowed When Sending via RoundRobin [Note] 2 2 2 2 2 2 2 2 2 2 2 2

Relay Emulation Presets

The following relay emulation presets are available on the Settings Selection screen.

Preset Number 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Station ID Pairs That Cannot Connect Directly None 2-3 2-4 2-4, 3-5 3-5 2-5, 3-5 2-6, 3-6 3-4 2-3, 2-4 2-4, 3-5, 4-5 2-4, 2-5 2-12 2-4, 3-4 2-3, 3-4 2-4, 4-5 2-5 2-4, 4-6 2-3, 3-5

Session Feature Presets

The following session feature presets are available on the Settings Selection screen.

Preset Number 0 1
Setting Maximum allowed silence time: 10,000 msec
Keep-alive send interval: 1,000 msec
Maximum allowed silence time: 60,000 msec
Keep-alive send interval: 1,000 msec

Login Screen

Use this screen to log in to the game server. It creates or joins the session configured on the Settings Selection screen.

Input Operation
X Button Starts random matchmaking.
Joins available sessions as a client; otherwise, creates a new session as the host. The Main screen then appears.
START Logs out from the game server, and navigates to the Settings Selection screen.

Main Screen

This screen handles communications between each station in the session. Stations can join or leave the session at any time. If host migration is enabled on the host, stations can also leave the session by declaring that they are starting manual host migration. The program automatically goes to the Settings Selection screen if communication cannot continue because of an error or another reason.

A simple manual and Rectangular Movement Area are displayed in the upper right of the screen. Status of Joined Stations is displayed on the left. Current Settings and Dynamically Modify Settings are located at the bottom of the screen.

Input Operation
START Ends communication and returns to the Login screen. If the local device is acting as the session host, the session ends. All stations in the session return to the Login screen.
R Button + START Ends communication and returns to the Login screen. If the station was the session host, it announces a manual host migration, leaves the session, and returns to the Login screen.
(Only when host migration is enabled.)
X Button Enable or disable sending data via RoundRobin.
Y Button Reset the counters used to calculate the packet loss ratio shown in Status of Joined Stations. (Counters represent the number of packets sent and the number of packets lost.)
A Button Use ReliableProtocol to send data one time to all stations joined in the session other than the local station.
Data is sent to all addressees using STATION_ID_ALL when sending data via SendToAll has been specified.
B Button Switch between simple and detailed display of information in Status of Joined Stations.
L Button + up/down on the +Control Pad Scroll information shown in Status of Joined Stations.
+Control Pad Move the rectangle corresponding to the local device in the Rectangular Movement Area.
R Button + X Button or Y Button Enable or disable Dynamically Modify Settings.
L Button + up/down on the +Control Pad Move the cursor used to change settings in Dynamically Modify Settings.
R Button + up/down on the +Control Pad Increase or decrease the value of the setting indicated by the cursor in Dynamically Modify Settings.
R Button + A Button Apply changes to settings made in Dynamically Modify Settings and execute associated operations.
(Changes to some settings are not applied without using R+A.)

Description of Items on the Main Screen

Rectangular Movement Area

A rectangle corresponding to each station is displayed to indicate communication between stations. Each station sends the position coordinates for its corresponding rectangle to the other stations, and displays the rectangles representing the other stations based on the position coordinates it receives. (UnreliableProtocol is used to send and receive this data.) Because communication status is most readily checked when stations are constantly moving, stations are automatically made to move to the right if no other specific movement is made.

Status of Joined Stations

This section displays the status of each station joined in the current session.

■XX <=YY<= ZZ, RTT:???
  UP:nnnnn, pp.pp%
  R2:nnnnn, pp.pp%
  RP:    s,     r
  • : Key to the rectangles shown in the Rectangular Movement Area.
  • XX : The StationIndex indicating the target.
  • <=YY<= ZZ : Communication path to the target.
    ZZ : The StationIndex value of the sender. YY: The StationIndex of the relay station.
    Note: <===== is shown when stations are connected directly (no relay station).
  • RTT:??? : The Round Trip Time (RTT) in milliseconds between the sending and receiving stations. -1 indicates an invalid value.
  • UP:nnnnn, pp.pp% : The data being sent and received using UnreliableProtocol
    . nnnnn : The latest count of packets received from the target, pp.pp%: The virtual packet loss ratio based on the received packet count.
    Note: Values shown for R2 have the same meaning as those for UP, except they are measured when using RoundRobinUnreliableProtocol.
  • RP: s, r : The data sent and received using ReliableProtocol
    s : The number of packets sent to the target using ReliableProtocol, r: The number of packets received from the target.

Current Settings

This section displays the status of important settings used in this demo.

  • MaxStationNum : Maximum number of joinable stations.
  • SendDataSize : The send data size (in bytes) when using Unreliable communication and Reliable communication.
  • NetworkTopology : The session's network topology setting.
    The following settings are only shown when a network topology allowing relay communication has been configured.
    • MaxNumOfRelayRoutes : The maximum number of relay routes assigned to one station.
    • MaxRtt : The maximum total RTT time (in msec) for one relay route.
  • HostMigrationMode : The session's host migration setting.
  • LatencyEmulation : Setting to enable or disable latency emulation.
    The following settings are only shown when latency emulation is enabled.
    • SendMin : The minimum latency (in msec) used for latency emulation while sending.
    • SendMax : The maximum latency (in msec) used for latency emulation while sending.
    • RecvMin : The minimum latency (in msec) used for latency emulation while receiving.
    • RecvMax : The maximum latency (in msec) used for latency emulation while receiving.
  • UnreliableSendingPeriod : The rectangular position information of the local station shown in the Rectangular Movement Area is used as the sending period when using UnreliableProtocol.
    Data is sent to the other stations each time the number of game frames given by Sending Period passes. (For example, data is sent every frame if this value is 1.)
  • RoundRobin : The setting to enable or disable the use of the RoundRobin protocol when sending the position of the local station.
    • SendStationNum : The number of stations that can send simultaneously when using the RoundRobin protocol. The value of RoundRobinUnreliableProtocol included in SendToRoundRobin is passed as the third argument.

Dynamically Modify Settings

This section displays controls used to dynamically change settings. Select the setting to change using R Button + X Button or R Button + Y Button. Move the cursor used to change settings using R Button + left/right on the +Control Pad. Increase or decrease the value of the position setting indicated by the cursor using R Button + up/down on the +Control Pad.

Settings Screen Modifiable Settings
Unreliable sending period The rectangular position information of the local station shown in the Rectangular Movement Area is used as the sending period when using UnreliableProtocol.
RoundRobin send Station num The number of stations that can send simultaneously when using the RoundRobin protocol.
LatencyEmulation settings The send and receive latency settings used when latency emulation is enabled.
Note: Press R Button + A Button to apply changes.
Kickout of Station Kick a station out of the session.
Note: Start the kickout process by pressing R Button + A Button.