

Studio Maracas
Studio Maracas
Maracas Studio était une toute jeune entreprise lorsque je l'ai rejoint.e. À mon arrivé.e, deux projets étaient en cours de développement Magical Train et Homecoming, et j’ai principalement travaillé sur Magical Train.
Le stage s’est déroulé à distance, le studio ne disposant pas encore de locaux. Malgré cela, l’expérience a été très enrichissante.
J’ai eu l’occasion d’apprendre énormément, aussi bien sur le plan technique que dans la gestion de projet, au sein d’une équipe motivée et passionnée.
Mon rôle
J'ai eu le rôle d'un programmeur.euse généraliste durant ces 6 mois, j'ai donc fait beaucoup de gameplay avec l'intégration de plusieurs systèmes, de l'UI, du 3C mais aussi beaucoup d'outils pour Unity.
Mes taches principales ont été de :
-
Créer un outil permettant de générer des rails de train en éditeur.
-
Proposer un système de Caméra pour le train.
-
Système d’élément Gameplay et création des interactions outils telles que le filet pour attraper des objets ou la foreuse pour récolter des minerais.
-
Créer un outil permettant de créer, modifier des notes en éditeur pour signaler un problème/attirer l’attention sur quelque chose au reste de l’équipe.
-
Gérer toutes les fonctionnalités lorsque le joueur souhaite accéder à l’intérieur du train tel que le management des passagers, le déplacement du joueur de wagon en wagon, l’intégration de la cuisine et de la gestion du menu, etc …
Les Outils
Comme expliqué plus haut, j’ai passé beaucoup de temps sur la réalisation d'outils afin de répondre aux besoins de Maracas Studio. Ils étaient conscients de mon manque d’expérience dans ce domaine mais ont tout de même décidé de me faire confiance et de me proposer du temps afin que je puisse m’améliorer et que je puisse dans le futur proposer de nouvelles compétences.
Level Design Editor
Le premier outil fut la génération de rails en éditeur. Le joueur contrôlant un train, il y avait comme idée et cela même si le train n’a pas besoin de rail pour avancer, de pouvoir se greffer à des rails existants dans le monde afin d’avoir une accélération.


Notes dans l'éditeur
Pour répondre aux besoins de l'équipe, j'ai développé un outil Unity permettant d'ajouter des commentaires directement dans la scène en éditeur. L’objectif était de pouvoir signaler des éléments à modifier ou à surveiller, facilitant ainsi la communication entre les membres du projet.
Les commentaires sont stockés dans une feuille Spreadsheets Google, récupérée automatiquement par Unity au lancement. Lorsqu’un utilisateur crée une nouvelle note, celle-ci est également envoyée vers la feuille. Une option de mise à jour manuelle via un bouton dédié est également disponible.
Chaque commentaire est représenté dans la scène sous forme de guizmo : ils sont visibles mais non manipulable physiquement. Toutefois, chaque note possède un identifiant unique. Les cinq premiers caractères de cet identifiant sont affichés dans la scène, ce qui permet de retrouver et modifier facilement la note correspondante.



Lors du développement de l’outil, l’équipe souhaitait disposer de plusieurs types de visuels pour enrichir les annotations dans la scène, au-delà d’un simple point de position.
J’ai donc intégré deux représentations visuelles :
-
Une zone circulaire, simulée à l’aide d’un projecteur.
-
Une flèche directionnelle, indiquant une orientation précise.
-
Ces deux éléments partagent une même valeur float pour simplifier leur gestion dans la feuille de calcul, en évitant des champs inutilisés. Cette valeur permet :
-
De modifier le rayon de la zone pour le projecteur.
-
De définir l’angle de rotation (de 0° à 360°) pour la flèche.
Ce système flexible permet d’adapter les annotations en fonction du contexte tout en gardant une structure de données légère et unifiée.
La modification d'une note existante aurait idéalement nécessité de rendre les commentaires sélectionnables directement dans la scène. Cependant, par manque de temps, j’ai opté pour une solution plus simple et rapide à mettre en place : une fenêtre de recherche par identifiant.
L’utilisateur peut y entrer l’ID d’une note. Si celle-ci est trouvée, ses informations s’affichent, permettant de la modifier puis d’envoyer les changements. Ces modifications sont immédiatement visibles dans la scène, assurant une mise à jour fluide et sans redémarrage.


Une amélioration envisagée aurait été de rendre les gizmos interactifs, en permettant leur sélection directe dans la scène. Cela aurait facilité la modification des notes sans passer par la saisie manuelle de leur identifiant.
Techniquement, cela aurait pu être mis en œuvre en utilisant OnSceneGUI() dans un script Editor, combinée aux fonctions de sélection telles que HandleUtility.PickGameObject() ou en plaçant un collider invisible sur chaque gizmo. Une fois sélectionné, un panneau contextuel (via EditorWindow ou IMGUI) aurait permis d’éditer le contenu de la note de manière plus visuelle, rapide et intuitive, directement dans l’éditeur Unity.