RFC

R-THAAAAAAÏ network protocol documentation

Introduction

How work the update of the game

Every x ticks, all the game is resend to the client so that no roll back may cause a desync, else all the entities that have been updated are send. Packet types shouldn't represent where they come from, they should be universal.

Words and meanings:

EntityNetworkId -> 2 byte binary of the entity's ID
PosX -> 2 byte binary of the horizontal position
PosY -> 2 byte binary of the vertical position
Width -> 1 byte binary of the entity's width
Height -> 1 byte binary of the entity's height
TypeId -> 1 byte binary of the entity's type ID
VelocityX -> 1 byte binary of the horizontal velocity of entity
VelocityY -> 1 byte binary of the vertical velocity of entity
ClientName -> 4 bytes of chars that identify the player
OccupiedSlots -> 1 byte binary of the amount of clients already connected
Health -> 1 byte binary of the amount of health the player has

Order of bytes:

In order to stay consistant with the information that is received and sent, we have decided to follow this template for all packets.

Universal

Keep Alive Request

Keep alive response request, asks the other side of the connection for a packet to ensure that it is still alive

Keep Alive Response

Response to the KA request

Client to Hub Server

In order for the client to connect to a room, they must first connect to the main server in order to get the current list of rooms.

Connection

Client connects to the hub

Request room information

Client refreshes server list

Hub Server to Client

Connection

Client connects to the lobby

Room info

Hub to Room

Hub connects to room for the first time

Room check

Room to Hub

Room info

Client to Room

Connection

Client connects to server for first time

Client sends an input to the Room Server

Moved player to position:

Client shot:

Client Charged Shot:

Room to Client

Connection

Server responds to client connecting for first time

Server updates on movement

Movement of Entity:

Server on player health

Health of player:

Server on wave counter

Wave:

Last updated