À propos​

Rôle : Gameplay - Newtworking (Unet) - Intégration

Temps de production : 4 Mois

  • Moteur :  

ORBOTA

Dans ORBOTA, deux joueurs évoluent dans un même espace. L’exploration difficile de cet espace de jeu nécessite l’aide de petits robots afin de construire des ponts au dessus des crevasses, leur permettant ainsi d’avancer. De plus, les joueurs devront ramener ces robots à leur vaisseau, car ils servent de point pour augmenter leur score respectif .

Le challenge de ce projet est que nous avons décidé de faire un jeu multijoueur Online, ce qui impliquait donc de la programmation réseaux alors que nous n’en avions jamais fait pendant nos cours.

Dans Orbota le navmesh que j’avais pu déjà expérimenté dans d’autre projets à été l’unique élément pour le déplacement du personnage et de toutes les entités.

La mécanique de construction de pont, nous a forcé à créer un script pour gérer le baking (recalcule) du navmesh en temps réel afin de pouvoir créer de nouveaux chemins à la création d’un pont.

Pour cela nous avons créer un script permettant de détecter les éléments avec un certain tag qui se trouve dans une zone prédéfini (zone dans laquelle le navmesh va être recalculé), afin de leur créer chacun un navmesh qui leur est propre.

Pour finir il ne suffisait que tu fusionner les différents navmesh lorsqu’ils se superposaient.

Afin de réaliser le jeu en multijoueur Online nous avons opté pour le service inclut dans le moteur de jeu Unity3d (UNET)

J’ai pendant le projet appris et mis en place le système de lobby (fourni mais à paramétré dans unity3d) afin de pouvoir générer plusieurs serveurs simultanément et donc lancer plusieurs parties en même temps.


La mise en place de toute la synchronisation des variables, interfaces et modèle 3d pendant une partie ainsi que de la gestion de réseaux pour éviter tout risque de Crash/Timeout pendant une partie à été la partie la plus complexe du projet.

Le principale enjeu était de réussir à synchroniser de nombreuses entités en même temps sans avoir de problème de latence ou de différences entre le serveur et le client.

Équipe

Julien LIAUZUN

Julien LIAUZUN

Gameplay Developer / Integration / Networking

Lucas <br> DE GAETANO

Lucas
DE GAETANO

Gameplay Developer / Level Design

Fabien CALENDRIER

Fabien CALENDRIER

Game Design / LevelDesign / Sound Design