“ I was at home alone feeling a sudden depressed. Within a moment of the blink, I can clearly see my actions from a bird eye view. I witnessed myself finding a weapon trying to kill myself, and I cannot control my body. I was floating and my soul was a few inches away from my physical body. I was worried if I cannot go back…”

Return by Zhiying Guan is an art installation and game with the use of Unity Engine, Arduino, and an Arcade Joystick. This work is related to people who are suffering from depression, especially detachment of the soul from the physical body. It also wants to brought people’s attention and change people’s stereotype about how the actual world looks like for a person that suffers from depression.

Initial idea and sketch creating the game

The goal for the player is to control the soul of the character using the Arcade Joystick to return the physical body. During this process, the main character will face the obstacle of the bullets hitting the soul away and prevents it from getting closer to the physical body.

The Bedroom

This bedroom was created using Cinema4D, the color of the room presents a  comfortable and chilling vibe. I was inspired by Y2K and pop culture in the 20 centry. I also include detailed decorations from my childhood memories.

The Character

This character with split faces with glitch in half of the face symbolizing uncertainty and depression. The color of this character also stay consistance with the color of the room. The psychologycal character was detached from the physical character which layed in the bed. The main goal of the game is to combine the two of them.

The Joystick
The Joystick is the key feature of this installation. This was created with IKEA table and an Arcade Joystick from Amazon. I made a hole in the table and used wood working and soldering to inlay the joystick into the table. I also painted the table and the wood plate to made it clean and neat. 

Exibition results

The Mansion

This is a semester-long project course with five-person cross-discipline teams with 2 programers, 2 artist, and 1 sound that developed virtual and augmented reality experiences in two-week design sprints.

  • I am the programmer and producer on the team that prototyped "worlds" quickly using peer feedback to iterate for various platforms (Unity, Oculus Quest 2, HTC Vive, Ardui
  • This game is a two player competitive game using controller ans mouse key. One of the guests play it as an action game with the protagonist who is a little girl, while another guest plays as the antagonist who is a ghost leader and controls the ghosts, and he may use strategies during the play.

You are a girl who tries to retrieve your dead grandma's memory pieces (three objects) by venturing into the haunted mansion; and you are a monster residing in the mansion trying to kill the girl who intrudes on your territory...

"The Mansion" requires two players to compete with each other in different ways: the "girl" player defeats monsters in a 3D perspective; the "monster" player manipulates other monsters and traps them in a 2D top-down perspective. Our creative direction revolves around Chinese traditional folklore and architecture which we incorporated into our environment and monster designs.

Game Mechanism

This game consists of 2 perspectives (2 players): a third-person perspective, and a god view (viewing the entire map). Enemy system is included using the platform of a controller, keyboard, and mouse.

  • Player A: third person perspective 
  • Player A needs to be quick-minded and prone to action 
  • player B: god view    
  • Player B needs more brain, but also need to make decision in a timely manner.


In an ancient Chinese haunted mansion, the protagonist (player A) has been asked to find her grandma’s lost treasures. Player B, the spirit from the mansion owner, must prevent Player A to escape the mansion and find the treasures. The mission of both players is to escape from the vintage ghost and find the hidden treasure in the castle.

Level Desgin
Player A enters the entrence from the left hand side with a beginning tutorial. By collecting three treasures A, B, and C and exit through the top left, player A can reach a success escape. Player b will be in charge of controlling the monsters within the maze.



Bride Monster

Big Head Monster

Hand Monster

Code construction:
Action state:
  •   Enemy state
  •   Player state
  •   state modifiers
As a programmer on the team, I am specifically in charge of the game play in C# and Unity using Controller.

Action state
  • Enemy state (Enemy attack, death, hurt, idel, rotate around player, and set position)
  • Player state (Player attack1,2,3, death, dodge, hurt, and idle
  • state modifiers (Player state: hold input, stamina control. State: add force, animation control, hitbox control, hurtbox control, invicibillity, locomotion control, modifier, specific cancel)

  • CharacterLocomotion (character speed, force, rotation, ground gravity, weight, nav agent, and update position)
  • EnemyLocomotion (Enemy movement and rotation)
  • PlayerLocomotion (Player movement and rotation)
  • RootMotionToLocomotion

  • Enemystatus (If enemy health is below 0, enemy defeated)
  • Hitbox (Hit direction, invoke hit result and hurt box)
  • Hurtbox (Hit result after getting hit including knock back action, direction respond to hit)
  • Playerstatus (Calculate the status of player, including player’s heath, death, and stamina recovery)

  • MouseTrackPosition (Track player B’s mouse position)
  • MouseTrackUI (Track player B’s mouse position and reflect with UI)
  • SetNewPoint (While player B click on a position, the enemy will spawn)

  • GUIManager (this is in charge of the healthUI and the staminaUI)
  • MenuOption (in charge of the option selection in the beginning scene where player can start the scene, select difficulties, get instructions on how to play the game, see credit page)
  • MenuUIManager (this is an alighment script that is applied to aligh size of the UI)

Festival plan:

The Invisible One is a game with the design and implementation of a large, complex software system 
Game Logic
This is a maze-solving game with a twist. The players will play different roles: Alice, Bob, Carol, and Dave. The goal of the game is to help Alice reach her destination within a time limit. While Bob, Carol, and Dave can move around easily in the maze, Alice is visually impaired severely so that she has a very limited range of view in the maze, and her “level of insecurity” increases when she hits obstacles or when she is far away from the other players. Once the “level of insecurity” reaches a limit, everyone loses immediately. In addition, Alice is invisible to other players unless the others have reached a certain “level of awareness” by clearing obstacles in the maze. Alice will use her skill to detect and avoid obstacles, while others need to clear these obstacles and create a safe path for Alice to reach her goal.

  • What are the goals of the game, how do players win, how do they lose?
    • Goal: Alice needs to reach the destination while staying close to the other players and away from obstacles. Other players need to clear obstacles and help Alice reach her destination.
    • Win if Alice reach the destination within the time limit.
    • Lose if either of these is true
      • Destination not reached within the time limit.
      • Alice’s level of insecurity reaches a limit and Alice falls into despair.
        • Level of insecurity increases if
          • Alice hits obstacles or is too far away from other players.







Final Result:

Full Video Link: