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 |