POISSON NATHAN
Moteur : Unity 2D mobile
Langage : C#
Rôle : Programmeur
Taille du groupe : 6
Temps de production : Quelques mois
Mode : Solo
Voluntary Party
Moteur
Langage
Rôle
Taille du groupe
Temps de production
Mode
Unity 2D mobile
C#
Programmeur
6
Quelques mois
Solo
Gameplay
Description du projet
Voluntary party est un projet en collaboration avec les Trans Musicales (festival international de musiques qui se déroule tous les ans à Rennes). L’objectif était de réaliser un jeu pour toutes les générations et accessibles facilement et donc le meilleur moyen était de réaliser un jeu sur mobile en 2d. Chaque fonctionnalité du jeu devait être pensée pour la cible qu’il vise et donc dans notre cas, une tranche d’âge assez large.
Objectif du jeu
Le joueur doit réaliser de multiples mini-jeux afin de découvrir les métiers du bénévolat présents aux trans musicales.
Fonctionnement du jeu
![1.gif](https://static.wixstatic.com/media/c718ba_9516a1528de44402a49f02edce767de4~mv2.gif)
Pour chacun des 3 niveaux, le joueur débloque un certain nombre de mini succès en fonction du temps qu’il lui faut pour le finir. Ces succès sont manifestés par des disques sur le menu et le joueur peut, en allant dans la salle des trophées obtenir des informations supplémentaires sur le festival à chaque disque récupérés. En les collectionnant tous sur chacun des niveaux, il débloque un disque secret. Les minis jeux sont joués dans un ordre aléatoire au sein de chaque niveau..
Technique
En tant que premier projet sur le moteur Unity, c’était un défi supplémentaire puisque l’on découvrait le moteur quelques mois avant le lancement du projet.
Étant donné la compatibilité mobile nécessaire du jeu, il fallait, en créant les différents mini-jeux définir ce que le joueur peut bouger ou non avec un Drag & Drop, ainsi un script est attaché à la caméra dans chaque scène qui détecte si un component “TouchableObject” spécifique est accrochés au GameObejct avec lequel le joueur interagit pour activer le Drag. Chaque objet interactif possède un script attaché qui hérite du component “TouchableObject”.
![image.png](https://static.wixstatic.com/media/c718ba_e26af8786f4043d0a93410a83ed9432d~mv2.png/v1/fill/w_60,h_19,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/c718ba_e26af8786f4043d0a93410a83ed9432d~mv2.png)
Sript attaché à la caméra qui détecte ce qui est interactif
![image.png](https://static.wixstatic.com/media/c718ba_c68ba53eb8b94bd4bf2075318b7aca6a~mv2.png/v1/fill/w_82,h_49,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/c718ba_c68ba53eb8b94bd4bf2075318b7aca6a~mv2.png)
Script parent des objets itneractifs avec les fonctions de bases
![image.png](https://static.wixstatic.com/media/c718ba_2503cc58b9c94edaad7895ced6ab6ae8~mv2.png/v1/fill/w_114,h_48,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/c718ba_2503cc58b9c94edaad7895ced6ab6ae8~mv2.png)
Exemple d'enfant de "TouchableObject" qui override les fonctions nécessaires afin de faire une action
Dans ce projet, je me suis occupé du système global du jeu et de la création de la plupart des mini-jeux.
Il a fallu créer un système de gestion de niveau afin de pouvoir définir comment ils fonctionnent, que ce soit le temps que le joueur possède pour les finir, aux mini jeux qu’ils proposent. Tout ce système est rangé dans des scripts GameManager et LevelManager, dans un gameobject non-destructibles qui persistent malgré les changements de scène au sein du moteur.
![2.png](https://static.wixstatic.com/media/c718ba_8b9ecc8d82fc4dac94c66e1cbfedc312~mv2.png/v1/fill/w_60,h_51,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/c718ba_8b9ecc8d82fc4dac94c66e1cbfedc312~mv2.png)
![1.png](https://static.wixstatic.com/media/c718ba_7d7ddbea17184011a8ea31de93af5701~mv2.png/v1/fill/w_174,h_205,al_c,q_85,usm_0.66_1.00_0.01,blur_3,enc_auto/c718ba_7d7ddbea17184011a8ea31de93af5701~mv2.png)
​Afin de pouvoir créer du contenu facilement, une scène était créer lorsque l’on voulait rajouter un niveau et était rajouter dans le jeu via le Level Manager. Le jeu parcourt donc les scènes et lorsque le niveau sélectionné est terminé, il retourne au menu principal dans lequel il a le choix du niveau suivant s'il a terminé le précédent.
![4.gif](https://static.wixstatic.com/media/c718ba_9300cfd26e974e338d60daae9a87e0b0~mv2.gif)
![6.gif](https://static.wixstatic.com/media/c718ba_2c886c9e7d2f4625bd3dc42178fe679d~mv2.gif)