Overview - zeroKilo/GROBackendWV GitHub Wiki

Overview

Order of Actions

Login

  1. the game starts by processing the yeti.ini to extract the HTTP address and they key used for the checksums
  2. now it connects to the TCP/HTTP server and exchanges information about the authentication server via a webrequest
  3. it uses the result to establish a PRUDP connection
  4. over this it exchanges DATA packets to get the address of the secure server
  5. it also request a kerberos ticket for connecting to the secure server

Entering Lobby

  1. it now connects to the secure server with PRUDP again, this time the CONNECT QPacket has a payload and its the requested ticket
  2. as soon as the connection is established the game will send many RMC request packets that need to be answered

Starting Match

  1. the game will send a request message for the match start
  2. the backend has to respond to this with 2 rmc calls itself, throwing global events

Dedicated Server

  1. the game will send NAT packets to determine speed and NAT configuration
  2. then the game will start a connection again, this time with DO traffic
  3. the backend has to bootstrap the game by creating a fixed list of DO objects via CreateDuplica DO packets
  4. with DO RMC calls the session clock will be synronized (continuously, notice here not a RMC reponse, but a RMC call back)
  5. with more DO RMC calls the session setting, player parameter aswell as state are set
  6. 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