A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Implemented | Best Practice Item | Sub Item | Details | Step to Check | Reference | ||||||||||||||||||||
2 | Implement logins before calling any AGS APIs | An error will occur when an API is called without a login auth token. | 1. Enable AGS Game SDK logs. 2. Open the game logs. 3. Verify login is called before any other API call. | Introduction to Authentication Byte Wars - Access - (Unreal Engine modules) | ||||||||||||||||||||||
3 | Implement login queue (AGS Private Cloud only) | Enable login queue | Login queues only allow players to enter the game when space is available, preventing an influx of players from overloading the server during peak play hours. | 1. In the AGS Admin Portal under your game namespace, go to Live Service Utilities > Login Queue. 2. Ensure the Feature Status under the page title says Active. 3. If its Inactive, press the Activate button to the right. 4. Verify your product versions match what's shown on the Activate Login Queue popup. 5. Click Confirm. 6. Verify your Feature Status has been updated to Active. | Login Queue Byte Wars - Login Queue (Unreal Engine module) | |||||||||||||||||||||
4 | Set appropriate login queue limits | Login queue limits that are set above your server's capability increases the risk of your server being overloaded. | 1. In the AGS Admin Portal under your game namespace, go to Live Service Utilities > Login Queue. 2. Verify Max Concurrency, Max Login Rate per Second, and the Advanced Configuration options are set appropriately. 3. Click Edit to make any desired changes and click Save. | Login Queue Byte Wars - Login Queue (Unreal Engine module) | ||||||||||||||||||||||
5 | Connect to AGS Lobby after login | An AGS Lobby connection is needed to deliver notifications and access social and matchmaking features. | 1. Enable AGS Game SDK logs. 2. Open the game logs. 3. Verify the AGS Lobby connection after a successful login. | Configure Lobby with the SDK Implement Lobby using the Unity SDK Implement Lobby with Unreal Engine SDK | ||||||||||||||||||||||
6 | Ensure party retention | Create or restore a party when the game is launched | Placing the player in a party—either alone or as part of a previous party—from the start ensures seamless interactions with party features. | 1. Verify that a player's party information is checked on game launch. 2. If the check returns party information, either restore that party or disband it and have the player join a new party. 3. If the check doesn't return party information, have the player join a new party. | Byte Wars - Implement party utilities - Implement a party session (Unreal Engine module) Byte Wars - Implement party creation - Implement a party session (Unreal Engine module) Create a party - Integrate Party into your game | |||||||||||||||||||||
7 | Create a new party when the player leaves or is kicked from a party | A player should always be in a party—even a party of just themselves—to ensure seamless interactions with party features. | 1. Verify players are placed in a party when they play the game. 2. Verify players are placed in a new party after they leave or are kicked from a party. | Byte Wars - Implement party creation - Implement a party session (Unreal Engine module) Byte Wars - Implement leave party - Implement a party session (Unreal Engine module) Create a party - Integrate Party into your game Leave a party - Integrate Party into your game Kick a player from a party | ||||||||||||||||||||||
8 | Handle WebSocket (Lobby and Chat) connection errors and reconnect conditions | Handle internet connection loss error | Alleviate player frustration during connection issues. | 1. Run the game until a Lobby connection is established. 2. Disconnect the device from the internet. 3. When Lobby gives an error signal, take note of the callback. 4. Reconnect the device to the internet. 5. Ensure appropriate flow when the connection is reestablished. | Handle connect and disconnect events - Configure Lobby with the SDK Websocket Reconnection Strategy | |||||||||||||||||||||
9 | Handle connection errors caused by the game running in the background | Provide a continuous game experience for players as they swap between games, applications, and processes. | 1. Run the game until a Lobby connection is established. 2. Switch to a new game or process (i.e., launch another game on console or press Alt + Tab on PC). 3. Return to the original game. 4. When Lobby gives an error signal, take note of the callback. 5. Reconnect the device to the internet. 6. Ensure appropriate flow when the connection is reestablished. | Handle connect and disconnect events - Configure Lobby with the SDK Websocket Reconnection Strategy | ||||||||||||||||||||||
10 | Handle matchmaking connection errors | Prevent players from being stuck in the matchmaking process after a connection loss. | 1. Run the game until a Lobby connection is established. 2. Start matchmaking. 3. Disconnect the device from the internet during the matchmaking process. 4. When Lobby gives an error signal, take note of the callback. 5. Reconnect the device to the internet. 6. Ensure appropriate flow when the connection is reestablished. | Handle connect and disconnect events - Configure Lobby with the SDK Websocket Reconnection Strategy | ||||||||||||||||||||||
11 | Handle multiplayer match connection errors | Allow players to return to the match they were playing after a connection loss. | 1. Run the game until a Lobby connection is established. 2. Start matchmaking and join a multiplayer match. 3. Disconnect the device from the internet. 4. When the Lobby gives an error signal, take note of the callback. 5. Reconnect the device to the internet. 6. Ensure appropriate flow when the connection is reestablished. | Handle connect and disconnect events - Configure Lobby with the SDK Websocket Reconnection Strategy | ||||||||||||||||||||||
12 | Handle errors for simultaneous same account Lobby connection attempts (single point of presence) | Prevent players from logging into the same account on multiple devices or clients. | 1. Run the game until a Lobby connection is established. 2. Repeat on another device or client using the same account. 3. Take note of the error triggered on the device or client. 4. Handle the error and notify the clients that the account is already logged in. | Handle connect and disconnect events - Configure Lobby with the SDK Websocket Reconnection Strategy | ||||||||||||||||||||||
13 | Implement logouts when closing the game | Implement logout when Close is pressed on the client window | Ensure the player is logged out when the player closes the window. | 1. Enable AGS Game SDK logs. 2. Run the game. 3. Log in and reach the main menu. 4. Close the game using the Close button on the window. 5. Open the game logs. 6. Verify logout is called before the game ends. | Logout - Authentication using the Unreal Engine SDK | |||||||||||||||||||||
14 | Implement logout when there is an Exit option in the game menu | Ensure players can log out using the user interface. | 1. Enable AGS Game SDK logs. 2. Run the game. 3. Log in and reach the main menu. 4. Close the game using an Exit or Close option in the game menu. 5. Open the game logs. 6. Verify logout is called before the game ends. | Logout - Authentication using the Unreal Engine SDK | ||||||||||||||||||||||
15 | Implement friend sync | Sync friends on game launch | Ensure the player's friend list is up to date when they start the game. | 1. Run the game in two separate clients. 2. Log into each client with separate accounts, ensuring each has a profile in the same environment and namespace and they have each other as friends. 3. Check each client's friend list in the game and verify they're on each other's list. 4. Search for each player in the AGS Admin Portal under Lookup Users and verify they're on each other's friend list. | Synchronize platform friends | |||||||||||||||||||||
16 | Sync friends after player attempts to add friend in the platform interface | Ensure a player's friend list gets updated after players attempt to add a friend via the platform interface (e.g., Steam, PSN, Xbox) while the game is running. | 1. Enable AGS Game SDK logs. 2. Run the game in two separate clients. 3. Log into each client with separate accounts, ensuring each has a profile in the same environment and namespace. 4. Use one account to add the other as a friend through the platform interface. 5. Return to the game. 6. Open the game logs. 7. Verify friend sync was called. | Synchronize platform friends | ||||||||||||||||||||||
17 | Sync friends after player accepts friend request in the platform interface | Ensure a player's friend list gets updated after players accept a friend request via the platform interface (e.g., Steam, PSN, Xbox) while the game is running. | 1. Run the game in two separate clients. 2. Log into each client with separate accounts, ensuring each has a profile in the same environment and namespace. 3. Use one account to add the other as a friend through the platform interface. 4. Accept the friend request in the other client through the platform interface. 5. Check each client's friend list in the game and platform interface to verify they're on each other's list. 6. Search for each player in the AGS Admin Portal under Lookup Users and verify they're on each other's friend list. | Synchronize platform friends | ||||||||||||||||||||||
18 | Sync friends after friend removal | Ensure a player's friend list gets updated after the player removes a friend from their list. | 1. Run the game in two separate clients. 2. Log into each client with separate accounts, ensuring each has a profile in the same environment and namespace and they have each other as friends. 3. Use one account to remove the other from their friend list using the unfriend AGS API. 4. Verify the updated friend list in the game and the platform interface (e.g., Steam, PSN, Xbox). | Synchronize platform friends | ||||||||||||||||||||||
19 | Implement blocklist sync | Sync blocked players after player block | Ensure a player's blocked players list is up to date when using the blocked players feature in the platform interface (e.g., Steam, PSN, Xbox). | 1. Run the game in two separate clients. 2. Log into each client with separate accounts, ensuring each has a profile in the same environment and namespace. 3. Use one account to block the other using the platform interface. 4. Verify the updated blocklist in the game and the platform interface. | Synchronize blocklist data with native platforms - Implement player blocking | |||||||||||||||||||||
20 | Sync blocked players on game launch | Ensure the blocked player's list is up to date when they start the game. | 1. Run the game in two separate clients. 2. Log into each client with separate accounts, ensuring each has a profile in the same environment and namespace. 3. Close one of the clients. 4. Use the open client to block the other account. 5. Close the remaining client. 6. Relaunch the game using the same two accounts. 7. Verify the updated blocklist in the game and the platform interface. 8. Search for each player in the AGS Admin Portal under Lookup Users and verify they're not in each other's friend list. | Synchronize blocklist data with native platforms - Implement player blocking | ||||||||||||||||||||||
21 | Set up third-party store | Configure third-party store | Ensure third-party platform stores are properly synced with AGS Ecommerce. | 1. In the AGS Admin Portal, go to Game Setup > 3rd Party Configuration > Store. 2. Click the desired third-party store's tab (e.g., PlayStation Store). 3. Click Add Configuration. 4. Complete the form and click Add. | Manage third-party store integrations | |||||||||||||||||||||
22 | Verify consumable items | Ensure consumable items are working properly and refunds are synced with the third-party platform store. Avoid including both consumable and durable items in the same bundle. | 1. In the AGS Admin Portal, go to Commerce > In App Purchase > Item Mapping. 2. Ensure the items listed here are set to Consumable. | Set up and sell consumables | ||||||||||||||||||||||
23 | Verify durable items | Ensure consumable items are working properly and refunds are synced with the third-party platform store. Avoid including both consumable and durable items in the same bundle. | 1. In the AGS Admin Portal, go to Commerce > In App Purchase > DLC Setting. 2. Ensure the items listed here are set to Durable. | Set up and sell DLCs | ||||||||||||||||||||||
24 | Connection Disruption handling | Handle websocket connection disruption | Ensure the game client and game server handle properly the impact when there is websocket connection disruption | AGS Private Cloud customer can request to AccelByte Support through Customer Support Portal to simulate the connection disruption. | Lobby WebSocket Recovery: Handling Disruptions and Reconnection | |||||||||||||||||||||
25 | Handle HTTP connection disruption | Ensure the game client and game server handle properly the impact when there is HTTP connection disruption; The HTTP error codes are: 429, 449, 500, 502, 503, 504 | AGS Private Cloud customer can request to AccelByte Support through Customer Support Portal to simulate the connection disruption. | API Call Recovery: Handling Failed Requests Gracefully | ||||||||||||||||||||||
26 | ||||||||||||||||||||||||||
27 | ||||||||||||||||||||||||||
28 | ||||||||||||||||||||||||||
29 | ||||||||||||||||||||||||||
30 | ||||||||||||||||||||||||||
31 | ||||||||||||||||||||||||||
32 | ||||||||||||||||||||||||||
33 | ||||||||||||||||||||||||||
34 | ||||||||||||||||||||||||||
35 | ||||||||||||||||||||||||||
36 | ||||||||||||||||||||||||||
37 | ||||||||||||||||||||||||||
38 | ||||||||||||||||||||||||||
39 | ||||||||||||||||||||||||||
40 | ||||||||||||||||||||||||||
41 | ||||||||||||||||||||||||||
42 | ||||||||||||||||||||||||||
43 | ||||||||||||||||||||||||||
44 | ||||||||||||||||||||||||||
45 | ||||||||||||||||||||||||||
46 | ||||||||||||||||||||||||||
47 | ||||||||||||||||||||||||||
48 | ||||||||||||||||||||||||||
49 | ||||||||||||||||||||||||||
50 | ||||||||||||||||||||||||||
51 | ||||||||||||||||||||||||||
52 | ||||||||||||||||||||||||||
53 | ||||||||||||||||||||||||||
54 | ||||||||||||||||||||||||||
55 | ||||||||||||||||||||||||||
56 | ||||||||||||||||||||||||||
57 | ||||||||||||||||||||||||||
58 | ||||||||||||||||||||||||||
59 | ||||||||||||||||||||||||||
60 | ||||||||||||||||||||||||||
61 | ||||||||||||||||||||||||||
62 | ||||||||||||||||||||||||||
63 | ||||||||||||||||||||||||||
64 | ||||||||||||||||||||||||||
65 | ||||||||||||||||||||||||||
66 | ||||||||||||||||||||||||||
67 | ||||||||||||||||||||||||||
68 | ||||||||||||||||||||||||||
69 | ||||||||||||||||||||||||||
70 | ||||||||||||||||||||||||||
71 | ||||||||||||||||||||||||||
72 | ||||||||||||||||||||||||||
73 | ||||||||||||||||||||||||||
74 | ||||||||||||||||||||||||||
75 | ||||||||||||||||||||||||||
76 | ||||||||||||||||||||||||||
77 | ||||||||||||||||||||||||||
78 | ||||||||||||||||||||||||||
79 | ||||||||||||||||||||||||||
80 | ||||||||||||||||||||||||||
81 | ||||||||||||||||||||||||||
82 | ||||||||||||||||||||||||||
83 | ||||||||||||||||||||||||||
84 | ||||||||||||||||||||||||||
85 | ||||||||||||||||||||||||||
86 | ||||||||||||||||||||||||||
87 | ||||||||||||||||||||||||||
88 | ||||||||||||||||||||||||||
89 | ||||||||||||||||||||||||||
90 | ||||||||||||||||||||||||||
91 | ||||||||||||||||||||||||||
92 | ||||||||||||||||||||||||||
93 | ||||||||||||||||||||||||||
94 | ||||||||||||||||||||||||||
95 | ||||||||||||||||||||||||||
96 | ||||||||||||||||||||||||||
97 | ||||||||||||||||||||||||||
98 | ||||||||||||||||||||||||||
99 | ||||||||||||||||||||||||||
100 |