top of page

Erin Hao
Description
Embers of Beyond is a puzzle platformer set in a mystical ghost realm inspired by Asian folklore. Player controls a lantern-bearing girl who transforms into various characters along her journey to solve intricate environmental puzzles. As she navigates this eerie and enchanting world, she unravels its mysteries and uncovers hidden truths.
Design Process
Design Challenges
Initial idea:
I had the initial idea for this game around 2 years ago, when I just started my attempts in game design. It took me a lot of trial and error to adapt myself into a game design mindset.
Game Mechanic:
The major mechanics went through a long progression for it to be refined and reduced to a precise mechanic with a simple enough logic for a game. In my initial design, there were two types of separate resources, one is the ember light to light the path for the player, while the other one is a one-time use talisman as the prerequisite for controlling spirit. Play tests proved two unrelated resources to be redundant and confusing. Therefore, I made the revision to connect these two portions of game play by combining the two (let the two share the same resource, this also puts more emphasis on the “ember” as an essential narrative element).
Art Challenges
Design:
The character should give the primary clue about the setting. Asian culture has very specific traditional clothing that varies in each era of history. I did research to pick out the symbolic styles to reference in my design.


















Modeling & Assets:
I had a lot of ambition in visualizing the scenes, however they were irrelevant to graphics in Unity. I had to alter my designs according to my ability to contrive visual effects in unity. Models are made in Blender.











Tech Challenges



AI Finite State Machine:
The core game mechanic is closely related to NPC spirits found in the game. These "living" characters required writing a few AI state machines. I was relatively new to C#, so the repetition of writing a few variations was a great learning process for me.
Breaking actions into distinct states like Idle, Cut, Walk (and etc.) ensures modular and scalable AI behavior across different characters. Each character’s state transitions are handled based on timers, conditions, or random choices.
-
State Enum: Defines each character’s possible states (e.g., Idle, Walk, Sit).
-
State Functions: Each function (e.g., State Idle, State Cut) manages a specific behavior.
-
Transitions: Controlled in FSM(), enabling smooth shifts between states based on predefined triggers.
Lumberjack



Player interactable detector

bottom of page