Once Upon A Charm

Game Director | System Designer | Technical Designer | UI Programmer
Theme:
Rhythm, 1 vs 1, 2D
Duration:
2025 (1 month)
A 1v1 fighting-rhythm game where you battle for fictional crushes. Punch with Perfects, block with timing, and beware of surprise heartbreaks mid-song. Every character’s got a unique twist, and every stage adds chaos.
My Contribution
Directed the game, supported, and advocated for other designers via the technical part.
Contributed, designed, and balanced the player attack system, ensuring the fast-paced and exciting player experience.
Setting up the particle system and making sure shaders apply inside the game correctly.
Implemented all the UI inside the game, including the main menu, tutorial scene, and in-game UI, ensuring the artists’ assets are compatible within the engine.
How did it start?
What if you can actually play a rhythm game and compete with your friends? That's what I thought of at first. Don't get me wrong, those Dance Dance Revolution arcade machine and many more rhythm games that allow you to play against others online are great. But what if you make a game that visually shows you're fighting with your friend, continuously feeding the players those intense feedbacks? Wouldn't that be more exciting? That's how Once Upon A Charm concept was formed.
Gameplay
Since it's a local multiplayer rhythm game, I figured it would be fun to have 2 players slapping in an exaggerated, funny way similar to the Rose & Camellia series. To complement that playful gameplay tone, I figured a fairytale theme would make an interesting and fitting art direction for the artists.

I pitched my ideas to the team, and everyone was on board. After we discussed and finalized the core mechanics to make sure they were feasible within our time frame, the design team put together this Game Design Document in Figma.

The game pillars revolves around...
Heavy and responsive rhythm feedback.
Fast paced gameplay.
Charismatic fairytale characters each with different gameplay experience.
Introducing Our Characters
Chessur
Middle-aged, cunning, playful character. His special mechanic is Transpose Notes, where he swap the arrow lanes occasionally, giving the players mischievous vibes and tests their reaction time and adaptability.
Cinderella
A young, shy, and somewhat clueless maiden. Her mechanic, Fading Notes, challenges players to stay precise with their timing as the notes gradually disappear.
Pinoccio
A timid young man with a habit of telling white lies. His mechanic, Sham Notes, keeps players on their toes by mixing real and fake notes, testing their reflexes and attention.
Me as a Technical Designer
My main role most of the time is to communicate with every discipline, bouncing around ideas, solidifying them with the other designers, making sure that the artists understand the process of making game art and quality controlling their art to ensure that they can be put into Unity without any problem, basically bridging any communication gaps that could happen in the team.
One of the problems we run into during the production is the particles aren't behaving like they should in the game. They were TOO BIG.

The particles were made in a separate world position environment, but the actual game is made purely using Unity's UI components. That's causing the size to grow larger than it should be.
After adjusting the particle system transform size and rendering sprite size, the sprite size is correct now. However, upon closer inspection, the sprites are overlapped by the game's rhythm backdrop, indicating that the layer order is incorrect.

The game object's hierarchy inside the game is disorganized, and the whole team was very focused on developing the core mechanics that we didn't agree on how to organize the group of UI elements to accommodate VFX in the later stages of development.

With such little time left, I decided to add Canvas component to the parent objects of each UI elements, enabled override sorting mode, and created 4 layers to help quickly sort the order in layer.

Final Product
After all the adjustments, the problems were solved, and the game was able to published in time with relatively the amount of polish we planned for.

Conclusion
Once Upon A Charm was what I needed to broaden my development perspective after my previous project, Seaside Showdown, which took 9 months. I learn a lot about organizing UI object hierarchy and practice using them inside the project. I also learn how important it is to do a quick check-up on each team member's progress. I'm more mindful of the scope and was able to cut anything that could potentially lead to crunching faster than I could back then. Once Upon A Charm may look simple at first glance, but it feels polished and solid. Overall, it was a really nice project that gave me the opportunity to work with new people and refreshed my passion for my craft!



