These tests are designed to cover the basic functionality related to running a level from a Multiplayer project.
- O3DE Networking
- O3DE Networking & Multiplayer Settings
- O3DE Multiplayer
- O3DE Multiplayer Gem
- O3DE Multiplayer Sample Windows Download & Install
- O3DE Multiplayer Sample Linux Download & Install
- O3DE Server & Client Setup
- Most issues will be caught through log errors, which can be seen in the Editor and Launcher consoles or in logs after running tests.
- In addition, network prefabs can be a visual clue that something isn't working as expected (objects disappearing or not appearing in the first place).
- Issues connecting to the server are caused either by:
- Processes that remain after closing applications - this can result in errors when trying to launch subsequent times.
- The ServerLauncher has not been built or has not been built against the same commit as Editor/ClientLauncher.
- MultiplayerSample project is cloned and built O3DE MultiplayerSample
- If using this approach, the SampleBase level can be used for most tests.
- Alternatively: A project has been created and built that includes the Multiplayer Gem and subsequent changes have been made to enable functionality (O3DE Multiplayer Gem).
- A new level should be created in the project that utilizes the following to act as identifiers for whether multiplayer connections are working as intended:
- Player Spawners.
- Network Prefabs.
- A new level should be created in the project that utilizes the following to act as identifiers for whether multiplayer connections are working as intended:
- Windows
- Linux
- Windows
- Linux
Player Connection
- Players are able to connect to the server without issue.
- Game is able to start.
Player Movement & Combat
- Moving, Jumping, and basic controls work as expected.
- Aiming and Primary Weapon Fire work as expected.
- Pistol firing VFX should be visible.
UI/UX
- Connected player count should display the correct number of players.
- Round counter should start at the end of the round.
- Round counter should end at round end.
- Scoreboard (opened with
Tab
) should accurately display scores.- Increase on gem pick up.
- Decrease on player death by
20%
.
Esc
Menu - Continue and Quit should work as expected.
Basic Gameplay
- Collected gems should disappear from the field.
- Jumping out of bounds should have the player respawn.
- Start of Round should respawn players.
Victory/Defeat
- Player with the most gems wins the round.
- Winning player can tell they have won.
- Losing players can tell they did not win.
Stability
- No stability issues are present when playing
- Ensure no errors are present in the server or game logs.
user/logs/server.log
.user/logs/game.log
.
Docs
- O3DE Multiplayer Sample Windows Download & Install
- O3DE Multiplayer Sample Linux Download & Install
- O3DE Tutorial: First Multiplayer Component
Prerequisites
- A Multiplayer level exists in the project (must contain a netbind component).
Product:
- A functional server launcher.
- A functional client launcher.
Suggested Timebox: 1 hour per platform.
Workflow | Requests | Things to Watch For |
---|---|---|
Build Existing Project Launchers |
|
|
Build New Project Launchers |
|
|
Build Project with Project Manager |
|
|
Test Hosting with Unified Launcher |
|
|
Compile Autogen File |
|
|
Docs
Prerequisites
- Ensure the ServerLauncher is built, as well as the Editor and ClientLauncher (if testing via the client launcher).
Example Assets
- Auto Component:
MultiplayerSample\Gem\Code\Source\AutoGen\NetworkHealthComponent.AutoComponent.xml
Product: A client that has successfully communicated with the server.
Suggested Timebox: 30 minutes per platform.
Workflow | Requests | Things to Watch For |
---|---|---|
Editor Game Mode |
|
|
Server/Game Launchers |
|
|
Auto Component Creation/Editing |
|
|
Docs
Prerequisites
- These scenarios all require a server and at least one client to be set up and connected utilizing the SampleBase level.
- See Multi-Machine MultiplayerSample Workflows for reference.
- This can also be done with a server and client on the same machine for easier set up.
- With reduced situations causing desync, it may be required to use a tool similar to Clumsy (or your preferred tool) to create artificial network issues.
Audit Feature CVARS
cl_EnableDesyncDebugging
cl_DesyncDebugging_AuditInputs
net_DebutAuditTrail_HistorySize
Product: A Network Audit Trail that provides the expected information.
Suggested Timebox: 30 minutes per platform.
Workflow | Requests | Things to Watch For |
---|---|---|
CVARS can be adjusted at runtime |
|
|
Desync Audit Search functionality |
|
|
Refresh Button |
|
|
Docs
Prerequisites
- These scenarios all require a server and at least one client to be set up and connected utilizing the SampleBase level.
- See Multi-Machine MultiplayerSample Workflows for reference.
- This can also be done with a server and client on the same machine for easier set up.
Product: A Multiplayer Game Session that spawns players in across player spawners.
Suggested Timebox: 30 minutes per platform.
Workflow | Requests | Things to Watch For |
---|---|---|
Existing player spawners in MultiplayerSample sample_base level function as expected |
|
|
Add additional player spawners |
|
|
Snap to Ground |
|
|
Docs
Prerequisites
- MultiplayerSample project has both the Server Launcher & Game Client built.
Product: A built project that is playable through the O3DE Editor.
Suggested Timebox: 30 minutes per platform.
Workflow | Requests | Things to Watch For |
---|---|---|
Load and Launch into O3DE Editor Client |
|
|
Basic Player Movement & Player Combat |
|
|
Basic Gameplay |
|
|
Basic UI/UX |
|
|
Docs
Prerequisites
- MultiplayerSample project has both the Server Launcher & Game Client built.
- Server Launcher is configured and launched in Headless Mode with NewStarBase level.
Product: A built Server Launcher & Game Client that is able to connect to the server and interact with other game clients.
Suggested Timebox: 60 minutes per platform.
Workflow | Requests | Things to Watch For |
---|---|---|
2 Game Clients connect and play through until end of the round | Players attempt to connect and then play through the session until the end of the round. | NewStarBase Gameplay Validations |
3+ Game Clients connect and play through until end of the round | Players attempt to connect and then play through the session until the end of the round. | NewStarBase Gameplay Validations |
Max Game Clients connect and play through until end of the round | Players attempt to connect and then play through the session until the end of the round. | NewStarBase Gameplay Validations |
Max + 1 Game Clients connect and play through until end of the round | Players attempt to connect and then play through the session until the end of the round. | NewStarBase Gameplay Validations Max +1
|
Docs
Prerequisites
- MultiplayerSample project has both the Server Launcher & Game Client built.
- Alternatively: A new project is created using the Multiplayer Template and the project is built, including the server and game launchers.
Server Version Mismatch CVARs
- Server:
sv_versionMismatch_autoDisconnect
(Default =True
)- Determines if a mismatched connection will automatically terminate. It’s recommended to keep this true; even minor differences between the version of a multiplayer component can cause unexpected behavior.
- Server:
sv_versionMismatch_sendAllComponentHashesToClient
(Default =True
)- Determines if the server will send all its individual multiplayer component version information to the client when there’s a mismatch. Upon receiving the information, the client will print which components are different to the console. It’s recommended to set to false for release builds. This is to prevent clients having knowledge to any multiplayer component information that should be kept private (component names and version hashes).
- Client:
bg_viewportConnectionStatus
(Default =True
)- If true, the viewport connection status system will display on-screen warnings whenever important multiplayer events occur; this includes version mismatches.
Product: A Server/Client that are either version matched or version mismatched that behave as expected.
Suggested Timebox: 90 minutes per platform.
Workflow | Requests | Things to Watch For |
---|---|---|
Server/Client - No Mismatch |
|
|
Server/Client - Older Server Mismatch |
|
|
Server/Client - Older Client Mismatch |
|
|
Allow Players To Connect On Mismatch |
|
|
Verbose Mismatch Messaging |
|
|
NOTE: This area is a work in progress and needs formal instructions for generating PAK builds.
Docs
- Create MultiPlayerSample PAK Builds (TBD) (o3de/sig-network#102)
- O3DE MultiplayerSample Player Control Guide
Prerequisites
- MultiplayerSample project has both the Server Launcher & Game Client built.
- Create a PAK asset bundle to distribute the game and server following the instructions in .
- Server Launcher is configured and launched in Headless Mode with NewStarBase level.
Suggested Timebox: 90 minutes per platform.
Workflow | Requests | Things to Watch For |
---|---|---|
3+ Game Clients connect and play through until end of the round |
|
NewStarBase Gameplay Validations |