Skip to content

Commit c2ecb4d

Browse files
authored
Merge pull request #18 from lmbr-pip/development
Provide overview and information for running NetSoakTest.
2 parents 256c1de + 21f0dc6 commit c2ecb4d

File tree

1 file changed

+57
-3
lines changed

1 file changed

+57
-3
lines changed

README.md

Lines changed: 57 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# NetSoakTest Project
22

3+
## Overview
4+
NetSoakTest is an O3DE sample project used to stress test the AzNetworking transport layer. It is a headless server application that presently runs two connections locally via a loopback mechanism in which each endpoint sends a variety of packets to the other.
5+
36
## Download and Install
47

58
This repository uses Git LFS for storing large binary files. You will need to create a Github personal access token to authenticate with the LFS service.
@@ -27,13 +30,14 @@ There are two options when installing a project
2730

2831
This option lets you keep engine and project files in separate locations.
2932

33+
##### Windows
3034
```shell
3135
# clone the project into a folder outside your engine repository folder
3236
> git clone https://github.com/o3de/o3de-netsoaktest.git
3337
Cloning into 'o3de-netsoaktest'...
3438

3539
# register the engine
36-
> C:/Path/To/o3de/scripts/o3de.bat register --this-engine
40+
> C:/Path/To/o3de/scripts/o3de.bat register --this-engine
3741

3842
# register the project
3943
> C:/Path/To/o3de/scripts/o3de.bat register -p C:/Path/To/o3de-netsoaktest
@@ -42,9 +46,29 @@ Cloning into 'o3de-netsoaktest'...
4246
> cmake -S C:/Path/To/o3de-netsoaktest -b C:/Path/To/o3de-netsoaktest/build -G "Visual Studio 16 2019" -DLY_3RDPARTY_PATH="C:/3rdparty"
4347

4448
# example build command
45-
> cmake --build C:/Path/To/o3de-netsoaktest/build --target Editor NetSoakTest.GameLauncher --configure profile -- /m /nologo
49+
> cmake --build C:/Path/To/o3de-netsoaktest/build --target Editor NetSoakTest.ServerLauncher --configure profile -- /m /nologo
50+
```
51+
52+
##### Linux
53+
```shell
54+
# clone the project into a folder outside your engine repository folder
55+
> git clone https://github.com/o3de/o3de-netsoaktest.git
56+
Cloning into 'o3de-netsoaktest'...
57+
58+
# register the engine
59+
>/path/to/o3de/scripts/o3de.bat register --this-engine
60+
61+
# register the project
62+
> /path/to/o3de/scripts/o3de.sh register -p /path/to/o3de-netsoaktest
63+
64+
# example configure command
65+
> cmake -S /pathto/o3de-netsoaktest -b /path/to/o3de-netsoaktest/build -G "Ninja Multi-Config" -DLY_3RDPARTY_PATH="C:/3rdparty" -DCMAKE_C_COMPILER=clang-12 -DCMAKE_CXX_COMPILER=clang++-12
66+
67+
# example build command
68+
> cmake --build /path/to/o3de-netsoaktest/build --config profile --target Editor NetSoakTest.ServerLauncher
4669
```
4770

71+
4872
#### Option #2 - Engine-centric approach to building a project
4973

5074
This option models the legacy folder layout where all projects were in the same folder as the engine.
@@ -64,12 +88,42 @@ Cloning into 'NetSoakTest'...
6488
> cmake -S C:/Path/To/o3de -b C:/Path/To/o3de/build -G "Visual Studio 16 2019" -DLY_3RDPARTY_PATH="C:/3rdparty" -DLY_PROJECTS=NetSoakTest
6589

6690
# example build command
67-
> cmake --build C:/Path/To/o3de/build --target Editor NetSoakTest.GameLauncher --configure profile -- /m /nologo
91+
> cmake --build C:/Path/To/o3de/build --target Editor NetSoakTest.ServerLauncher --configure profile -- /m /nologo
6892

6993
```
7094

7195
If you have a Git credential helper configured, you should not be prompted for your credentials anymore.
7296

97+
## Running the Project
98+
99+
Run the netsoak ServerLauncher with the relevant options (see below). It is strongly recommended to use --rhi=null when launching NetSoakTest.ServerLauncher
100+
101+
To pass command line values when launching the executable the format is ```--<command>=<value>```
102+
103+
```
104+
NetSoakTest.ServerLauncher --soak_mode=loopback --rhi=null
105+
```
106+
107+
Note: All O3DE projects generate a GameLauncher and a ServerLauncher. NetSoakTest does not utilize its GameLauncher by design.
108+
109+
### Options
110+
111+
112+
| Cvar | Description | Default |
113+
|-------|------------|---------|
114+
| soak_latencyms | Simulated connection quality latency in milliseconds | 0 |
115+
| soak_variancems | Simulated connection quality variance in milliseconds | 0 |
116+
| soak_losspercentage | Simulated connection quality packet drop rate | 0 |
117+
| soak_serveraddr | The address for a client soak test to connect to, localhost by default (only used in Client Soak Mode) | 127.0.0.1 |
118+
| soak_port | The port that this soak test will bind to for game traffic | 33450 |
119+
| soak_protocol | Soak test protocol (TCP or UDP) | udp |
120+
| soak_mode | The operating mode for the soak test, options are loopback, client or host. `Loopback` has two connection within the application feed traffic to each other in a loop. `Client` expects to connect to a server hosted at soak_serveraddr. `Host` hosts a server for clients to connect to | Loopback |
121+
122+
Other networking features such as Compression or DTLS/TLS can be enabled/disabled in the same way they would be in a production environment. For example:
123+
124+
```
125+
NetSoakTest.ServerLauncher --net_UdpUseEncryption=true
126+
```
73127

74128
## License
75129

0 commit comments

Comments
 (0)