

- Type de jeu : Jeu Contemplatif
- Nombre de personnes : 3
- Temps de réalisation : 1 mois
- Consigne : Un sisyphe jonglant avec des tigres-cubes. Giger Art.
- Rôle : Game Design | Game Programming
- Pitch :
Vivez une expérience musicale éphémère en vous plongeant dans vos souvenirs.
Pour le premier semestre de ma deuxième année en Game Design à l'ICAN nous avons dû réaliser un "jouet", c'est un jeu sans objectif défini, sous un thème donné.
Voici le thème qui nous a été donner :
Un sisyphe jonglant avec des tigres-cubes. Giger Art Style.

Game Design

Mécanique principal :
En mécanique principale nous avons voulu utiliser un système de "trou noir" car cela nous semblait pertinent pour avoir un jouet systémique.
Dans notre cas, nous faisons spawn un "trou noir" à notre curseur à une distance fixée de nous à l'aide d'un input spécifique.
Une fois le trou noir apparu il attire les éléments définis dans un certain rayon autour de lui.
Challenge : Précision
Challenge : Précision
De plus, à l'aide d'un autre input, nous modifions son comportement. Ce changement se produit instantanément et au lieu d'attirer, le trou noir va maintenant repousser et se détruire 3 secondes après le changement d'état.
Mécanique secondaire :
Nous avons ajouté une mécanique secondaire à celle-ci pour arrêter les cubes en mouvement, ils deviennent kinematic.
Challenge : Timing
Paramètre atomique : Temps d'anticipation


Mécanique du système :
Nous avons ajouté une mécanique au système nous permettant la réutilisation de nos éléments mis a disposition.
Si la vélocité de nos cubes est en dessous de 1 alors ils retourneront à leur position initiale avec une certaine vitesse.
Mécanique Sonore :
L'intérêt de toutes nos mécaniques est lié à la mécanique sonore.
Ici nous allons prendre des amas de cube et utiliser du son avec une mécanique qui va faire une moyenne de leur position, pour jouer un son plus ou moins complexe.
Si la moyenne se situe entre 0.1 et 0.3 un son simple se joue,
Ici nous allons prendre des amas de cube et utiliser du son avec une mécanique qui va faire une moyenne de leur position, pour jouer un son plus ou moins complexe.
Si la moyenne se situe entre 0.1 et 0.3 un son simple se joue,
Si la moyenne se situe entre 0.3 et 0.6 un son simple avec des instruments supplémentaires joue à la place du son simple unique.
Si la moyenne se situe entre 0.6 et 1 un son complexe se joue.
Si la moyenne se situe entre 0.6 et 1 un son complexe se joue.
Le joueur a donc un intérêt de découvrir tous les sons des différents instruments et faire des combinaisons d'instrument.




Programmation

Pour ce projet j'ai utilisé la physique d'Unity, ce qui nous a permis de faire un contrôle simple sur nos cubes qui comportait des rigidbody.
Le vrai défi qui nous a été posé était de réaliser la mécanique sonore, qui est l'élément principal de notre jeu.
Pour y parvenir, nous avons placé nos groupes de cubes dans des objets vides parents situés au centre de ces groupes. Ensuite, au début de la scène, nous avons enregistré la position initiale de tous nos cubes, ce qui a ensuite permis la mise en place de notre mécanique sonore.

Grâce à cela, nous avons pu récupérer la position de nos cubes pour chaque groupe et calculer une moyenne de leur position normalisée pour chaque groupe.
Ensuite, une fois les données récupérées, nous déclenchons les sons en utilisant la variable : "PlaySoundbasedOnNormalizedvalue". Cette variable contient nos paramètres pour jouer les différents sons.
Cependant à utiliser la physique d'Unity et avoir autant d'élément comportant des rigidbody nous arrivons très rapidement à un problème : les performances.
L'éditeur a du mal à faire tourner autant d'élément étant soumis à ça physique et j'ai dû trouver une solution pour économiser celle-ci.
L'éditeur a du mal à faire tourner autant d'élément étant soumis à ça physique et j'ai dû trouver une solution pour économiser celle-ci.
En solution j'ai décidé d'activé uniquement les cubes qui sont dans l'angle de la caméra, c'est une solution assez connue des jeux vidéo et elle fonctionne très bien, grâce à cette méthode j'ai pu gagner en ressources et le jouet n'avait plus de problème pour tourner.

Voici un lien vers itch.io et youtube :