S C R O L L

Jeu multijoueur 3D | Projet d'équipe

Rex Montis

Résumé

Rex Montis est un jeu multijoueur 3D, inspiré par Gang Beast et Overcook, dans lequel les joueurs ont pour but de pousser leurs adversaires hors du niveau pour sortir vainqueur en ayant le meilleur pointage. C'est chacun pour soi dans ce jeu avec plein de rebondissements!

C’est un projet scolaire réalisé en équipe pour l’événement ChaosMédias 2021 durant la session d’automne 2021. Il a gagné le prix coup de coeur du public.

Idéation

Avant de débuter la conception, nous avons formé des petites équipes aléatoirement pour trouver des idées et des concepts, puis nous nous sommes répartis les postes à combler. C'est ainsi que j'ai obtenu le rôle de lead programmeuse et que j'ai travaillé principalement sur les mécaniques de jeu de Rex Montis, l'incarnation du roi de la montagne.

Exemple du nouveau Input System de Unity

J'ai contribué à la programmation des mouvements des joueurs. Puisque nous n’utilisions pas de composante Character Controller, j’ai utilisé la méthode AddForce() pour déplacer le joueur. Sa rotation, fait avec des quaternions, fut le plus grand défi, puisqu’elle devait aussi influencer l’orientation des pouvoirs du joueur.

Extrait de script pour les mouvements

Pouvoirs

Dans Rex Montis, les joueurs peuvent pousser des ennemis/objets, tout comme les attirer, puis les lancer. Ainsi, j’ai travaillé avec la physique des Rigidbody et la méthode Lerp() pour pouvoir influencer les mouvements d’un joueur en fonction des commandes d’un autre. Cela demandait donc de la communication d’un script à un autre en référençant les game objects des joueurs grâce à des colliders.

Hiérarchie du GameObject pour le joueur

Deux composantes Mesh collider déterminent la zone d’action d’un joueur.

Exemple de référencement

Le joueur qui entre dans une zone d’action a un script qui enregistre le game object ennemi dans une variable pour le référencement.

Exemple de référencement (suite)

L’orientation de l’ennemi et ses actions sont référencées pour modifier la position d’un joueur dans sa zone d’action.

Multijoueur

Pour réaliser l’aspect multijoueur, le défi a été que chaque joueur ne peut contrôler qu’un seul game object. Pour ce faire, j’ai exploré le nouveau input system de Unity. J’ai donc dû créer des méthodes publiques pouvant détecter les commandes du joueur qui s’associe automatiquement à un seul game object lorsque celui-ci appuie le bouton de connexion.

Exemple du nouveau Input System de Unity

Interfaces

J’ai contribué à la gestion des scènes du jeu Rex Montis, en partie, pour faire disparaître l’interface d’accueil quand suffisamment de joueurs sont connectés pour jouer. J’ai aussi programmé un compte à rebours pour montrer visuellement le début et la fin de la partie aux joueurs.

Interface de connexion

Interface de connexion

Compte à rebours pour le début d’une partie

Compte à rebours pour le début d’une partie

Compte à rebours pour la fin d’une partie

Compte à rebours pour la fin d’une partie

Gestion

Comme lead programmeuse, je faisais des scrums au début de chaque semaine avec l’équipe de programmation pour faire l’état de ce qui avait été accompli. Je m’assurais que chaque programmeur avait des tâches. Aussi, je communiquais beaucoup avec les autres départements pour faire savoir de ce que nous avions besoin pour le développement, comme les animations, le modèle des joueurs, etc. J’ai aussi aider à la gestion du GitHub et des problèmes de versionnage qui furent nombreux.

Exemple de logiciel de gestion de projet

Making of

Video Making Of

Crédits

Un gros merci à tous les membres de l'équipe Rex Montis pour la merveilleuse session que nous avons passée ensemble. Une mention spéciale aussi à notre enseignant Benoit Lavigne pour avoir donné un coup de pouce pour la gestion du projet.