Skip to content

Commit

Permalink
More UI work + scenes
Browse files Browse the repository at this point in the history
  • Loading branch information
Makkkkus committed Oct 2, 2023
1 parent 6017301 commit 69b4da4
Show file tree
Hide file tree
Showing 11 changed files with 550 additions and 196 deletions.
6 changes: 5 additions & 1 deletion _data/navigation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ docs:
- title: Overview of different systems
children:
- title: "Documentation Home"
url: /documentation/home-overview
url: /documentation/home
- title: "Client-Server Communication"
url: /documentation/clientserver-overview
- title: "Client architecture"
Expand All @@ -12,6 +12,10 @@ docs:
url: /documentation/server-overview
- title: "GUI overview"
url: /documentation/ui-overview
- title: Client deep-dive
children:
- title: "Scene descriptions"
url: "/documentation/scene-description"

# Top navigation.
main:
Expand Down
3 changes: 2 additions & 1 deletion documentation/client-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@ title: Client architecture overview

[The client](https://github.com/OpenHellion/Server) is the part of the project that the players interact with. It contains all of the graphical assets, handles rendering, and serves as an interface to the player.

![A diagram of the OpenHellion client architecture.](res/ClientArchitecture.drawio.svg){: height="400" .align-right}
As the diagram below shows, intialisation is handled by the InitialisingScene, which when has completed, sends the player over to the Main Menu Scnene. This scene then sends the player to the Client scene.

![A diagram of the OpenHellion client architecture.](res/ClientArchitecture.drawio.svg)

NB: The diagram shows as the game should be, and therefore does not reflect the current state of the codebase, but it is still similar to the current version of the game.

The client scene starts by initialising all of the dependencies it needs to start a game. It then follows on by getting the match it wants from the NakamaManager, and then joins that match to get connectionin
Expand Down
1 change: 1 addition & 0 deletions documentation/clientserver-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ OpenHellion uses Nakama as a main server. The tasks the main server handles are:
The components that handles networkconnectivity are located in the Net namespaces on the client and the server. In addition, the client has another namespace called social, which handles connections to Nakama. The server communicates with Nakama throught the MsCommunication class, located in the Net namespace.

The most important task of the main server is the facilitate the connections between the client and the game server. The game server handles the simulation of the world, which is the game you actually play. The messages are sent directly between the client and the server, with Nakama serving as a controller of all of the underlying servers.

![A diagram showing how the clients and servers interact with Nakama.](res/ClientServer.drawio.svg)

Later, it might be interresting to see if we can add a relay layer on the server that can validate data and such.
Expand Down
3 changes: 2 additions & 1 deletion documentation/home.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ title: OpenHellion project documentation
The OpenHellion project documentation aims to explain how the project is put together. This site is for more techical users wanting to get a more general understanding of how the game works.

## In overview
![A diagram of the OpenHellion server-client architecture.](res/ClientArchitecture.drawio.svg){: height="400" .align-right}
The project contains three major parts: the client, the server, and the main server. These three communicate with each other through several layers, a relay, Nakama's internal communcation, and using REST RPCs, as explained in the [Client-server communication](clientserver) article.

![A diagram of the OpenHellion server-client architecture.](res/ClientArchitecture.drawio.svg)

While the main server and server parts are tasked with more "under the hood" problems, the client is what the players see and use, and is therefore the most important part. This is explained more thoruoughly in the [Client architecture](client) article.
98 changes: 30 additions & 68 deletions documentation/res/ClientArchitecture.drawio.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions documentation/res/ConnectToGame.drawio.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
129 changes: 129 additions & 0 deletions documentation/res/Scenes.drawio.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 69b4da4

Please sign in to comment.