Nouvelle technologie de réplication

A propos

Lien Github

Contexte du projet

Comment créer un jeu à un grand nombre de joueurs (Supérieur à 100) dans l'Unreal Engine 5 ?

Le protocole

La première partie du projet s'est orienté sur la question suivante : Comment les joueurs peuvent-il communiquer entre eux?

Afin de communiquer, il faut mettre en place un protocole pour que les clients et le serveur se comprennent. Voici la RFC du protocole que nous avons mis au point : ICI

Le serveur

Notre serveur fonctionne de la façon suivante: Lorsque qu'un client envoi une données (Par exemple, Je me suis déplacé aux coordonnées (1,1,0)), le serveur reçoit la données, vérifie si elle est conforme aux règles établies auparavant et renvoi la position à tout les clients qui l'a veulent. Ce principe est le Publish/Subscribe et a été réaliser avec le langage Rust, appris pour l'occasion.

Les ECS

Pendant ce temps là, une autre partie du groupe s'est occupé d'un autre aspect du projet : Comment afficher un grand nombre de joueurs dans l'Unreal Engine 5 ?

L'autre équipe était chargé d'intégrer l'ECS Flecs dans Unreal afin de pouvoir afficher le grand nombre de joueurs que l'équipe Network voulait répliquer. 

La communication depuis UE5

Afin de pouvoir communiquer depuis UE5 au serveur Rust, j'ai créé un plugin afin de s'authentifier, de rester connecté, d'envoyer des paquets, d'en recevoir et de se déconnecter. Ce plugin est composé en 2 parties :