A Generic MMO Game Backend Made With Django / Python.
Platform and engine agnostic
AuthServer = Web Server responsible for the authentication
DataServer = Web Server responsible for the persistent storage of the game
MatchmakingServer = Web Server that acts as intermediary between the client and the GameServerManager
(The following are not implemented here as they are not platform/engine agnostic)
GameServerManager = A cluster manager responsible for starting/stoping GameServerInstances
GameServerInstance = An instance of the game server
PlayerClient = The game client of the player
- PlayerClient logins at
/api/auth/login/
to obtain an AuthToken
- PlayerClient requests all the needed data from the DataServer at
/api/data/user/{...}
- PlayerClient requests an available game server from the MatchmakingServer with some parameters
- The MatchmakingServer checks if there is an available GameServerInstance on the database with these parameters
- If there is an available GameServerInstance, the MatchmakingServer responds to the PlayerClient with the IP and the Port of the GameServerInstance, else it is gonna send a request to the GameServerManager to spawn one
- api/
- auth/
- login/
- data/
- characters/
- matchmaking/
- gameserverinstances/
- get_game_server_instance/
- auth/
Panagiotis "PanTrakX" Trakadas