top of page
  • LinkedIn
  • GitHub
  • Twitter
  • Instagram

Gallery

Updated Pingxi.PNG
During the COVID-19 pandemic, I was inspired to create a game that evokes positive emotions that reminds people they are still being thought and are connected despite being socially distant.
Inspired by my summer experiences in Taiwan, Wishes In The Sky is a game about writing wishful messages on lanterns, releasing them into the sky, and sharing them with your loved ones.
Personal Project made in Unity
Position: Creative Director, Game Designer, & Engineer

Wishes In The Sky

  • Independently conceptualized, designed, and implemented game content, systems, and narrative.
  • Initiated collaboration with artists, composers, and musicians to deliver aesthetics.
  • Built and debugged gameplay elements in C# with Unity, created shaders, and implemented cutscenes.

What I did

Development Process

Wishes In The Sky is the most personal project I've worked on and it helped me to gain new skills from advanced programming techniques, creating shaders, using post-processing, cinematography with Unity Cinemachine and Timeline, and etc.
I first attached 4 different world space TextmeshPro UGUI GameObjects to each side of the lantern so when the player wrote their message for the corresponding lantern sides, it will populate the TextmeshPro UGUI text component on that side. However, this method broke the immersion with the texts not giving the illusion that it was written on the lantern itself but rather floating in front or behind the lantern side(Fig. 1). Furthermore, you could see the text even when it was at an angle that hid the corresponding lantern's side (Fig. 2)
One of the most important feature in Wishes In The Sky is when the player writes their messages on their lanterns. Through research and iteration, I was able to come up with the best solution.

Writing messages on lanterns

Old UI message.PNG
Fig. 1
Old UI message 2.PNG
Fig. 2

Lantern and Flame Shader Video

After doing some research and receiving inputs from friends, I decided to create a shader that will make the player's messages appear on the material of the lantern.
Click to magnify
After consulting with my 3D Artist who gave me the dimensions of the lantern's UV map and the corresponding lantern sides on the map, I placed a reference of it on a world space canvas and created four TextmeshPro Text components in the correct spots where they should be on the UV Map. I then created a camera that will capture the UV map and set the output texture to a Render Texture.
In the shader graph, I plugged in the lantern properties of the base, metallic, and normal maps into their corresponding input in the PBR master node. I then pass my Render Texture through a multiply node and into the emissions channel in the PBR master node so the players' messages that will be captured on the Render Texture can appear on their lantern. I also added a Tiling and Offset node into the UV(2) channel so that the messages will line up in the correct areas on the lantern.
bottom of page