6.5 Friend Presence

Applications that use the Friend Presence features must comply with all the Guidelines listed in this chapter.

6.5.1 Friend List

The friend list is a HOME Menu feature that can be launched by touching the Friend List icon on the HOME Menu. The list shows information such as your friends' online/offline status, what software title they are currently playing and a brief description of it (hereafter referred to as the game mode description), and whether it is possible to join any matchmaking session they are running.

Support for Using Friend Cards

Data related to the Personal Mii displayed on a user's own Friend Card can be obtained after the user creates a Personal Mii using the system application Mii Maker. Note that there is no guarantee that the user has created a Personal Mii. See the relevant guideline items in volume 8 Mii Characters for what to do when a Personal Mii does not yet exist.

Getting Notifications from the Friend-Presence Daemon

Applications can receive notifications from the friend-presence daemon by specifying what events they need notifications about, such as changes in the state of the connection with the friend server or friend information updates. The system can store up to 128 notification entries. If the log overflows, entries are deleted beginning with the oldest. When a notification arrives, any friend information received before this might be outdated; therefore, implement a feature in your application to get updated friend information at appropriate intervals.
Nintendo recommends implementing countermeasures such as the following to make sure that friend information is always up to date.

  • If there is a notification, the system should obtain it quickly.
  • Update all friend information at an appropriate interval (10 seconds or more).
  • Update all friend information if you detect that the notification log has overflowed.
Precautions When Updating the Friend List

While an application is running, you can change friend list notification settings and add and delete entries from the HOME Menu. As a result, be sure to implement your application so that friend list updates are handled smoothly, even when the application is running.

If a friend is added from the HOME Menu while an application is running, the friend's status is offline because no notification can be received until the next time the friend logs in. We recommend updating all friend information after the HOME Menu is opened. Also, if another party deletes you as a friend during communication, the library sends a notification that the other party has logged out. In this case, it's possible for communication to continue as is because only the friendship has been terminated. However, the same logout notification is also received when another party merely cuts off communication, so we recommend that you terminate all communication with parties who have logged out.

Joining In via the Friend List

In applications built using CTR-SDK version 3.1 and later, you can display what game a friend is currently playing and a button showing something like "Join current game" (when that matchmaking session is configured to allow players to join in), allowing the local user to join the friend's matchmaking session.
See the CTR Programming Manual: Wireless Communication for details.

Note:

Even when the "Join current game" button is displayed, this might not indicate the current join-in state, and as such attempting to join in could fail.

No required guideline items.

6.5.2 Game Mode Description

When displaying the friend list from the HOME Menu, the list includes the names of software titles being played by friends, along with short descriptions that can be set for each application (called game mode descriptions). You can set this text for your own application. Each description can include up to 64 characters on two lines, with a display width of 16 “%” characters in the built-in font. This text can be set using the nn::friends::UpdateGameModeDescription function or the nn::friends::UpdateGameMode function. Game mode descriptions can, for example, be used to indicate a user's progress through a game. Depending on the design of your application, you might use this function to set or update the game mode description automatically from within the application, or to allow users to set this text to their own content.

■ Restrictions on Message Content

The game mode description configured by the application appears in the friend lists of the local user's friends. Because it is possible that friends of the user playing the game may not be old enough to play the game, Nintendo recommends that the content (text) of the game mode description be suitable for all ages.

■ Handling UGC in Game Mode Descriptions

If you include text that users have entered within the application in game mode descriptions, you must comply with the guidelines in volume 7 UGC.

■ Information Update Frequency

Nintendo assumes that the game mode description will use text that does not need to be updated very frequently. Frequent updates of the game mode description would place an undue burden on the server. To avoid placing an undue burden on the server, it is prohibited to make frequent calls to the following functions to update the game mode description.

  • nn::friends::UpdateGameModeDescription function
  • nn::friends::UpdateGameMode function

Specifically, when your application is performing matchmaking or is in a joinable mode (a mode where other users can use the join-in feature to join the play session), the game mode description must be updated no more than once per two minutes. In all other modes, it must be updated no more than once per ten minutes. In some cases, Nintendo may grant permission to update the game mode description up to once per two minutes while your application is in a non-matchmaking, non-joinable mode. Specifically, this applies to cases where your application uses the game mode description to invite other users to online play. (For example, applications that have online competitive or cooperative play, rankings, chat, or so on might use the description to show other users' online status in order to make it easier to participate in these kinds of online play.) If you need to update more frequently than the prescribed limits, contact Nintendo at support@noa.com.

It is acceptable to exceed the prescribed limits if the user performs unusual actions other than those they are expected to perform based on application specifications. The following are some examples of unusual actions. Be aware that if the application specifications encourage the user to replay stages, this is treated as a normal and expected action based on game specifications and is not considered an exception to this requirement.

  • The user repeatedly selects and then cancels different game stages in a game that sets the current game stage in the game-mode description.
  • The user repeatedly closes and restarts the application. (This includes restarts performed by the nn::applet::RestartApplication function.)

This restriction also does not apply to frequent calls to the nn::friends::UpdateGameMode function during a joinable matchmaking session. This is because the game must display the latest status during a joinable matchmaking session.

6.5.2.1 Information Update Frequency

Guideline Item

The following functions for updating the game mode description must not be called frequently.

  • nn::friends::UpdateGameModeDescription function
  • nn::friends::UpdateGameMode function
Software to Be Tested

Applications that use game mode descriptions.

Exceptions
  • The user performs unusual actions not expected based on application specifications.
  • Calling the nn::friends::UpdateGameMode function during a joinable matchmaking session.
Test Method

For applications that use NEX:

  1. On NMAS, go to Check the Number of API Calls and enter the PID of the account used for the test in the PID field under API Call Statistics.
  2. In Enable/Disable Logging, select Start Logging to enable logging of function calls.
  3. Play through all modes of the application from beginning to end.
  4. After completing step 3, go to API Call Statistics and select Search.
  5. Check the Times Called value displayed for the nn::friends::UpdateGameModeDescription and nn::friends::UpdateGameMode functions.


For applications that do not use NEX:

  1. Prepare two Nintendo 3DS systems whose network configuration is completed and which have registered each other as friends (system A and system B below).
  2. Make sure both system A and system B are online.
  3. On system A, launch the friend list and check the status of the friend card to which system B is registered.
  4. On system B, play through all modes of the application from beginning to end.
Pass/Fail Determination

For applications that use NEX:

Passes if the total number of the Times Called for the nn::friends::UpdateGameModeDescription and the n::friends::UpdateGameMode functions combined is within the following prescribed limits.

  • Up to once per two minutes during matchmaking or during joinable modes.
  • Up to once per ten minutes during non-matchmaking, non-joinable modes.

For applications that do not use NEX:

Passes if the frequency of updates to the game mode description for system B is within the following prescribed limits.

  • Up to once per two minutes during matchmaking or during joinable modes.
  • Up to once per ten minutes during non-matchmaking, non-joinable modes.

6.5.3 Friend Registration

Nintendo provides the friend feature as a way for two users who trust each other to establish a relationship where the two can do things together that two strangers cannot do. This includes communication via the friend list or matchmaking between friends. Two friends can relatively easily exchange rich UGC. However, users will not want to become friends with just anyone. Consequently, when adding a friend from within an application, you must first inform the user of the identity of the other user who the user is registering to the Friend List. After doing so, make sure to obtain consent from both users.

It is prohibited to register friends via StreetPass or via local communication where the communication partner cannot be identified beforehand. It is not possible to communicate at the level required to establish a friend relationship via these forms of communication. Also, there are concerns that becoming friends this way requires the users to be in close proximity and this could result in problematic real-life interactions between users.

Note:

See volume 7 UGC for details on rich UGC and local communication where the communication partner cannot be identified beforehand.

6.5.3.1 Prerequisites for Adding Friends From Within the Application

Guideline Item

When registering a friend from within the application, the application must first inform the user of the identity of the other user. Both users must also give their approval.

Software to Be Tested

Applications that implement a feature to register friends.

Test Method

Attempt to register a friend from within the application. Make an attempt once in each application mode that allows the user to register a friend.

Pass/Fail Determination

Passes if the application informs the user beforehand of the identity of the other user with whom to become friends, and gets approval from both users before registering that other user as a friend.

6.5.3.2 Prohibition Against Registering Friends Via Certain types of Communication

Guideline Item

The application must not register friends via StreetPass or via local communication where the communication partner cannot be identified beforehand.

Software to Be Tested

Applications that implement a feature to register friends.

Test Method

Play the application in all modes that communicate via StreetPass or via local communication where the communication partner cannot be identified beforehand.

Pass/Fail Determination

Passes if the user cannot register the communication partner as a friend.

 


CONFIDENTIAL