S C R O L L

Jeu 2D | Projet Étudiant

Minescape

Résumé

Dans Minescape, vous incarnez un être d’origine inconnue aux fin fonds d’une mine dangereuse. Votre but? Fuir des mines en détruisant tous les cristaux rouges! Les défis de plateforme et des ennemis sont au rendez-vous.

C’est un projet scolaire développé en hiver 2020 avec le logiciel Unity et programmé en C# dans VS Code. Il est aussi compatible avec WebGL. Plusieurs fonctionnalités de Unity sont utilisées, comme les particules et la cinemachine.

Organisation

En intégrant les sprites et les assets dans le dossier du jeu, j’ai les ai classés et organisés avec des dossiers et des sous-dossiers ayant une nomenclature rigoureuse et claire.

Organisation de dossiers

Level Design

À l’aide des tilemaps, j’ai designé trois scènes de jeu; chacune introduisant de nouvelles fonctionnalités pour augmenter la difficulté. J’ai aussi créé divers layers pour catégoriser les différents types de sol et de murs du jeu, par exemple, ceux pour les sauts muraux et ceux qui ne le sont pas. Tous les éléments interactifs possèdent des colliders. Pour les tilemaps, ce sont des tilemaps colliders.

Plan du niveau 1

Niveau 1 - Introduction du gameplay de base

Plan du niveau 2

Niveau 2 - Introduction des ennemis et des obstacles dangereux

Plan du niveau 3

Niveau 3 - Introduction des sauts muraux et de l'exploration

Animation

Pour l’animation du personnage et des ennemis, j’ai créé des animators pour chacun pour pouvoir facilement contrôler et activer leurs animations respectives en créant des conditions booléennes et triggers avec l'Animator, qui sont ensuite appelées dans les scripts de mouvement.

Animator de l'avatar du joueur

Programmation

En utilisant la librairie de Unity, j’ai programmé en C# la physique (collider, saut, lancer de pierre, etc.), les animations, les effets sonores, les mouvements, etc. J'ai aussi programmé une intelligence artificielle simple d'ennemi se déplaçant d'un collider à l'autre, tout comme j'ai créé un GameManager pour gérer le jeu, les niveaux et l'enregistrement du pointage et du temps dans des variables statiques et publiques.

Script pour gérer les scènes

Script pour gérer les scènes

Scripts pour bouger le joueur

Script pour les mouvements

Scripts pour bouger le joueur (suite)

Script pour les mouvements (suite)