Alby's Journey
Taille de l'équipe
Seule
Mes rôles
Tout
Genre
Monument Valley Like
Univers
Cartoon Chill
Caméra
Isométrique
Plateforme
PC (Clavier-Souris)
Année de fin du projet
2023
Temps de développement
3 Semaines
Moteur
Unity
Outils
GitHub Dekstop, Milanote, Draw.io, Photoshop
USP
Aidez Alby a retourner dans son nid alors qu'il ne sait pas encore voler, le tout dans un monument valley like.
DESCRIPTION
Monument Valley like qui avait pour but de me challenger sur la programmation sur Unity via un système de pathfinding et de l'illusion d'optique.
Challenge aussi avec la réalisation de Level Design avec des illusions d'optiques (étude des formes impossibles)
INTENTIONS
-
Présence d'Illusions d'optiques dans le cœur du jeu.
-
Nécessite de tester et de réfléchir mais reste tout de même facile à réaliser.
-
Alby's Journey a un aspect et une bande son chill et reposante.
MON TRAVAIL
Etant seule, j'ai réalisé tout le projet toute seule.
Ce projet m'a permis de tester les Levels Design en illusion d'optique ce qui oblige à toujours regarder ce que ça donne dans la vue en jeu. Je me suis également beaucoup amélioré en programmation dans Unity puisque j'étais seule sur le projet.
Travaux sur le projet
Base du jeu
A la base ce projet était pour le rendu d'un de nos cours de programmation. Le sujet que l'on a eu pour ce projet était : Caméra Isométrique.
J'ai travaillé à fond sur ce projet pour pas que ce soit juste un projet pour un cours mais pour en faire une pièce de book.
Screenshot de Alby's Journey.
Illusion d'optique
J'ai donc décidé de partir sur un Monument Valley like avec un système d'illusion d'optique en vue isométrique.
Une fois la caméra placée en isométrique, j'ai recherché comment mettre en place l'illusion d'optique dans Unity.
J'ai opté pour l'option d'avoir deux caméras ; la première caméra fonctionne de manière classique et la seconde affiche les objets en avant, devant tout le reste du moment qu'ils sont dans le layer de cette seconde caméra.
Pour bien faire les liaisons, j'ai tweak certaines faces avec des planes présent dans le layer pour que le rendu fonctionne.
J'ai fait des recherches sur les formes impossibles afin de voir lesquelles peuvent être faites en isométrique. J'ai fais de nombreux tests en regardant directement en isométrique pour voir quelles sont les formes qui fonctionnent le mieux en jeu et sont les plus intéressantes d'un point de vue gameplay.
Le plus complexe a été de réussir a visualiser comment faire fonctionner ces formes efficacement d'un point de vue Level Design.
Ensuite j'ai sélectionné les formes impossibles que je préférais et je trouvais les plus intéressantes d'un point de vue gameplay.
Une fois choisi, il a fallu construire le niveau autour de ces formes tout en implémentant les différents éléments de gameplay
J'ai réalisé de nombreux tests de placement d'éléments et d'itérations pour réaliser un niveau intéressant.
Lors de la réalisation des niveaux, j'ai veillé à apprendre au joueur les nouveaux éléments de gameplay au fil du temps et rendre les niveaux de plus en plus difficile à résoudre pour avoir un pathing efficace.
A gauche : vu en jeu et à droite : dans le moteur. L'ordre des images représente l'ordre des niveaux en jeu.
Système de cubes et Pathfinding
Suite à mes recherches sur les illusions d'optiques, le pathfinding et sur comment faire fonctionner les éléments de gameplay, j'ai décidé de partir sur un système de cubes pour la réalisation des niveaux.
Ne pas mettre un système de cube et utiliser le NavMesh de Unity pour le pathfinding posait plusieurs problèmes avec le système d'illusion d'optique. A chaque fois que le personnage serait passé d'un endroit à un autre qui ne sont pas collé et subit une illusion d'optique, le personnage aurait marché trop longtemps au même endroit.
J'ai donc opté pour un système de cubes où chaque cube possède un ou des voisins.
Lorsque le personnage va vouloir se déplacer; le jeu va regarder le cube du clique, puis regarder les voisins de ce cube puis les voisins de ses voisins ainsi de suite jusqu'à ce que le jeu retrouve le cube où se trouve le joueur. Il va ensuite aller jusqu'à la case sélectionnée.
De plus, comme le personnage se déplace d'un bloc à l'autre dans le même laps de temps. Il va donc se déplacer plus vite entre deux cubes éloignés par rapport à deux cubes côte à côte.
Vu que le personnage regarde dans la direction où il se déplace, il a fallu tweak la direction dans laquelle il regarde lorsqu'il se déplace sur un chemin présentant une illusion d'optique. Par exemple, sur l'image juste en dessous, le personnage regardait en diagonale lorsqu'il se déplaçait du point en bas vers le point en hauteur.
Déplacement de Alby d'un cube à l'autre dans une illusion d'optique.
L'image de gauche en jeu et l'image de droite est la vue dans le moteur.
Les Gameplay Elements (GPE)
Au niveau des GPE, j'ai fait des mécaniques assez simples mais qui fonctionnent avec l'illusion d'optique.
-
Il est possible de tourner des objets de 90° à chaque clique droit.
-
Lorsque le joueur marche sur une plaque de pression, un mécanisme gris va s'activer ce qui va ouvrir un nouveau passage
Pour ces deux mécanismes, le plus complexe a été de les faire fonctionner avec le système de cubes puisqu'il fallait bien indiquer quel chemin devenait possible et quel chemin devenait impossible en fonction de certaines conditions.
Les gifs montrent le fonctionnement des deux GPE.