

Maracas Studio
Maracas Studio
Maracas Studio was a very young company when I joined. When I arrived, two projects were in development, Magical Train and Homecoming, and I mainly worked on Magical Train.
The internship took place remotely, as the studio didn't yet have any office. Despite this, it was a very rewarding experience.
I had the opportunity to learn a lot, both technically and in project management, as part of a motivated and passionate team.
What I Do
I had the role of a generalist programmer during these 6 months, so I did a lot of gameplay with the integration of several systems, UI, 3C but also a lot of tools for Unity.
My main tasks were to :
- Create a tool for generating train tracks in an editor.
- Propose a camera system for the train.
- Gameplay element system and creation of tool interactions such as the net to catch objects or the drill to harvest minerals.
- Create a tool for creating and editing notes in the editor to signal a problem or draw the attention of the rest of the team to something.
- Manage all functionalities when the player wishes to access the interior of the train, such as passenger management, moving the player from car to car, integrating kitchen and menu management, etc...
Translated with DeepL.com (free version)
Tools
As explained above, I spent a lot of time making tools to meet Maracas Studio's needs. They were aware of my lack of experience in this field, but decided to put their trust in me and offer me some time to improve my skills, so that I could offer new ones in the future.
Editor Generator
The first tool was the generation of rails in the editor. As the player controls a train, the idea was that, even though the train doesn't need a track to move forward, it could be grafted onto existing tracks in the world to provide acceleration.


Notes in Editor
To meet the team's needs, I developed a tool for adding comments directly in the scene editor. The aim was to be able to mark elements to be modified, facilitating communication between project members.
Comments are stored in a Google Spreadsheets, automatically retrieved by Unity at launch. When a user creates a new note, this is also sent to the sheet. A manual update option via a dedicated button is also available.
Each comment is represented in the scene as a guizmo: they are visible but not physically manipulable. However, each note has a unique identifier. The first five characters of this identifier are displayed in the scene, making it easy to find and modify the corresponding note.



When developing the tool, the team wanted to have several types of visuals to enrich the annotations in the scene, beyond a simple position point.
I therefore integrated two visual representations:
- A circular area, simulated using a projector.
- A directional arrow, indicating a precise orientation.
These two elements share the same float value to simplify their management in the spreadsheet, avoiding unused fields. This value can be used to :
- Modify the zone radius for the projector
- Define the angle of rotation (from 0° to 360°) for the arrow.
This flexible system makes it possible to adapt annotations according to context, while maintaining a lightweight, unified data structure.
Editing an existing note would ideally have required making comments selectable directly in the scene. However, due to lack of time, I opted for a quicker and simpler solution: a search window by identifier.
Here, the user can enter the ID of a note. If the note is found, its information is displayed, enabling the user to modify it and then send the changes. These changes are immediately visible in the scene, ensuring smooth updating without restarting.


One possible improvement would have been to make the gizmos interactive, allowing them to be selected directly in the scene. This would have made it easier to modify notes without having to manually enter their identifier.
Technically, this could have been implemented by using OnSceneGUI() in an Editor script, combined with selection functions such as HandleUtility.PickGameObject() or by placing an invisible collider on each gizmo. Once selected, a context-sensitive panel (via EditorWindow or IMGUI) would have enabled the note content to be edited in a more visual, rapid and intuitive way, directly in the Unity editor.