Overview - zeroKilo/GROBackendWV GitHub Wiki
Overview
Order of Actions
Login
- the game starts by processing the yeti.ini to extract the HTTP address and they key used for the checksums
- now it connects to the TCP/HTTP server and exchanges information about the authentication server via a webrequest
- it uses the result to establish a PRUDP connection
- over this it exchanges DATA packets to get the address of the secure server
- it also request a kerberos ticket for connecting to the secure server
Entering Lobby
- it now connects to the secure server with PRUDP again, this time the CONNECT QPacket has a payload and its the requested ticket
- as soon as the connection is established the game will send many RMC request packets that need to be answered
Starting Match
- the game will send a request message for the match start
- the backend has to respond to this with 2 rmc calls itself, throwing global events
Dedicated Server
- the game will send NAT packets to determine speed and NAT configuration
- then the game will start a connection again, this time with DO traffic
- the backend has to bootstrap the game by creating a fixed list of DO objects via CreateDuplica DO packets
- with DO RMC calls the session clock will be synronized (continuously, notice here not a RMC reponse, but a RMC call back)
- with more DO RMC calls the session setting, player parameter aswell as state are set
- todo
Ports used
- Port 80 for HTTP
- Port 21030 for Authentication/Redirector Server
- Port 21031 for Secure Server (Backend)
- Port 21032 for Dedicared Server
Layers of Protocols
16 July 2020
16 August 2021