Tale of BaGua is a casual non-Euclidean puzzle game that manipulates with the physicality of time and space.
You play as a Chinese teenager on his quest to recover his family's lost heirloom, the BaGua mirrors, and using its spells, going back in time to unveil his forgotten lineage.
Designed core gameplay mechanisms for BaGua mirror interactions.
Implemented and iterated mirror stencil and movement functions to ensure the absence of conflicts in different scene layers.
Designed and set dressed 5 environments with scene-specific visuals to amplify the game feel, historical facts, and narrative.
Optimized scenes to be performant for the web and low-end devices.
The idea for this game came from the theme - "Root".
The enormous essence of what root can be led to an introspective moment of self-reflecting on my life:
Everyone and everything's present is an incremental result of their history/past.
This eventually became the foundation of the gameplay focusing heavily on the interconnection between the past and the present as puzzle manipulators. You will travel back in time to the same location with a different layout.
For the core gameplay, we want an intuitive and explorative approach to engage the players with the world and the dynamic puzzles. Therefore, the core game loop revolves around navigation and exploration:
Navigate within the scene to reach the BaGua well to retrieve the mirror.
The mirror opens up a new scene of the same location in the past with a different layout.
Use the new location to overcome obstacles and reach the next BaGua mirror.
The interactive mechanisms are integrated into 2 major controllable entities:
Movement of the player.
Dragging and moving the mirrors to allow more movement for the player.
One of the key elements of our gameplay experience is that we DO NOT want players to feel disconnected! We want to push for an explorative and fluid feel in engaging with the world and its puzzles.
To achieve this, all the levels are designed into one major scene.
Stencil shader is used to filter each scene in its own layers assigned to a specific stencil value. The BaGua mirror is the filter plane that adds the value when stacked together, hence the intersections of the mirrors will filter a new scene with a higher stencil value.
Conditions are set to ensure there are no conflicts when players are in different layers of the scene, or else the players will either get stuck in walls or travel through buildings!
To unpack this problem into its components, I only need to address the conditions of the selected mirror since only active mirrors can be moved, and only ONE mirror can be actively selected at all times. The two main protocols of the mirror logic follows:
When a mirror is selected, check if the player is in the mirror.
If not, check for colliders at the layer for the mirror.
If yes, check for colliders at the layer below the mirror.
Same conditions apply to player movement into and out of mirrors.
Intuitive tutorial fully imbedded into the visuals and gameplay.
Stacking multiple mirrors for better visibility and controls.
Each scene is designed with specific color palettes to distinguish its layout during gameplay when there are a large amount of mirrors present in the scene.
Articulated POIs to highlight where the BaGua well objective is while being coherent to the location and time presence.
Environmental storytelling elements to connect the narrative and historical facts together.