











This describes a typical gaming session with Ultimate Stunts 1.0. Only the communication between the server and one graphical client program is described. Multithreading on the server-side is not described. On the client-side, a separate thread for the GUI is described.
| Step | GUI thread | ultimatestunts | stuntsserver |
| 1 | Start | ||
| 2 | Initialising game session & loading track | ||
| 3 | Start | ||
| 4 | Start | Start GUI thread | |
| 5 | User chooses to log in | Waiting for data from GUI | |
| 6 | Viewing add player menu | Connecting to server | |
| 7 | Viewing add player menu | Receiving gamesession info | Giving the gamesession info (carset & track names) |
| 8 | Viewing add player menu | (down)loading carset file | Uploading requested files |
| 9 | Using carset info for car selecting menus | (down)loading track + related files | Uploading requested files |
| 10 | User is ready with adding cars | (down)loading track + related files | Uploading requested files |
| 11 | View "loading..." | Sending player info from GUI to server | Collecting player info from all clients |
| 12 | View "loading..." | Requesting final carset file | Waiting for all player info; creating final carset file |
| 13 | View "loading..." | Downloading carset file + related files | Uploading requested files |
| 14 | Stop | Stop GUI thread; send initial input data | |
| 15 | Main loop | Send initial position data; counting down for start | |
| 16 | Main loop | Main loop | |
| 17 | Exiting mainloop | Exiting mainloop; send highscore | |
| 18 | Merge highscore with highscore on disk | ||
| 19 | Start | Start GUI thread | |
| 20 | View highscore | Downloading replay+related files | Uploading requested files |
| 21 | User chooses to race again | Downloading interrupted; race again request is sent | Uploading interrupted |
| 22 | View "please wait..." | Waiting for server | Server decides to race again; new game session started |
| 23 | Return to 7 | Return to 7 | Return to 7 |