DREAM : Où les rêves entrent en scène

A propos



Lien du jeu

DREAM : Où les rêves entrent en scène

Vous incarnez deux nouveaux membres de l'organisation DREAM, une organisation permettant à tous les enfants du monde de rêver. Votre but est d'organiser le rêve d'un enfant tout en faisant attention à ce qu'il ne vous voit pas !

Concours universitaire Ubisoft 2024

L’objectif était de développer, en 10 semaines, un prototype de jeu vidéo jouable qui répond au thème et aux contraintes fournis par un jury composé de professionnels d’Ubisoft. Nous l'avons fait tester au studio Ubisoft Montréal où d'autres jeux étaient présentés par d'autres universités participantes.

Les contraintes

Lors du concours, le thème imposé était le rêve tandis que les contraintes étaient :

Ma contribution

Saisir les objets à deux joueurs

Dans un premier temps, nous nous sommes occupés de la tâche la plus complexe associée à notre projet, le système de grab à deux joueurs. Les joueurs peuvent donc déplacer des cartons sur la carte, cependant, notre jeu étant multijoueur en ligne, il nous faut trouver des astuces pour cacher la latence aux joueurs afin que le déplacement soit fluide.

Chaque joueur simule sa propre version de l'objet

Afin que l'interaction soit fluide entre les joueurs nous avons décidé de prendre le parti suivant : Chaque joueur aura sa propre version de l'objet s'orientant par rapport aux deux joueurs de son coté du jeu. Ainsi, la latence est imperceptible lorsqu'un joueur attrape un objet mais il faut faire attention à ce qu'il n'y ait pas de désynchronisation de l'objet attrapé. 

Simulation simple de la physique des objets

Après de très rapides tests, nous avons observé que la réplication de la physique n'était pas faite correctement et fonctionnait très mal. La physique du moteur n'étant pas déterministe, nous avons décidé de simuler la physique nous-même de façon très simple. Cela permet d'éviter les désynchronisations tout en donnant des effets moins réalistes à nos objets. Ainsi, nous avons réimplémentés :

Le système d'interaction

Les joueurs peuvent interagir avec toutes sortes d'objets afin d'avancer dans la partie. La principale utilisée de celui-ci est de permettre aux joueurs d'interagir avec les cartons pour les attraper. 

Cependant, nous voulions aussi qu'ils puissent :

Malheureusement, dans notre prototype final, ces dernières n'ont pas été intégrées.

Une zone d'interaction

Chaque joueur possède une zone d'interaction correspondant à une capsule, les objets qui entreront dans cette zone seront considérés comme "interagissables".

De la prédiction chez le client

Chaque objet pouvant être "interagissable" possède des fonctions permettant d'afficher ou de cacher des choses lorsqu'un joueur entre dans son champ d'interaction

La prédiction jusqu'à l'interaction

Pour cacher la latence, on autorise certains objets à être interagi directement depuis le client (sans attendre l'accord du serveur), si le serveur décide qu'il n'avait pas le droit, l'interaction doit alors être annulée

Le système de tâche et de cartons

Le joueur doit accomplir des tâches toutes au long de la partie, dans notre version finale, ce sont juste des cartons qui doivent être amenés à certains endroits. Mais nous devions aussi avoir d'autres types de tâches comme :

 

Affichage des tâches en haut à gauche de l'écran

Ces tâches représentent les cartons à amener sur la scène

Tous les types de tâches et de cartons n'ont pas été implémentés dans notre prototype final mais ceux-ci sont stockés dans des «data tables» permettant de les modifier ou d'en ajouter très facilement.

Le temps des tâches

Chaque tâche a un temps de vie et lorsque celle-ci est achevée, on calcule un bonus de score grâce au temps restant

Les emplacements de cartons

Les tâches qui demandent des cartons ajoutent des marqueurs à la scène représentant l'endroit où placer ces cartons

Et quelques autres choses...

Chat vocal

L'implémentation du chat vocal a été rendue possible grâce aux services en ligne d'Epic, qui fournissent une fonctionnalité de chat vocal

Déroulement de la fin de partie

À la fin de la partie, les joueurs doivent avoir atteint un quota pour ne pas être licencié. Cela comprends aussi un discours de la patronne qui nous félicite au non

Synchronisation des joueurs

Les joueurs sont synchronisés au début de chaque partie afin qu'ils commencent en même temps et ait le même temps au compteur