
Time: Aug 2024 - Dec 2024
Role: Programmer in a team of 20+ developers
-
Generalist
-
Player Control
-
AI
-
Optimization
Skills: Unreal Engine 5.4, Unreal C++, Unreal blueprint, Jira, Miro, Agile Development, Unreal Insights.
Game Pitch:
Imvi: Echoes of Harmony is a third-person experience where you use the attractive and repulsive forces of black and white singularities to explore an ancient alien civilization to recover your lost memories.
Unreal C++
Open World
Exploration
Responsibility
Player Control Schemes
My first work is about player controls. Since it is my first time using Unreal C++, I have to research player controller class and add custom functions to inherited player controller class in game.

Part of the Player Controller Class
I was told to implement 9 kinds of control scheme to let the designer to test since fluent control is on of the most important part in our game. I did all of the schemes.
Different Control Schemes
Since I am taking charge of the player controller class, I helped our animation programmer to make the connection between animation and player control work well.
Black Singularity Control and Animation
Black\White Singularity Mechanics
The first part is about throwing mechanic. It is strongly related to player control scheme. I made a state machine to represent the state of the singularity and the state will change depending on the player input.
Throwing black singularity and attracting force
The second part is about black singularity attraction and player movement.
Calculation Code of the Force Added to the Player
The third part is making the singularity machanic designer friendly, aka. making a data table for modifying parameters.

Data Table for Black Singularity
Jellyfish AI
Jellyfish has different behaviors and I used Unreal behavior tree to implement the Jellyfish AI.
Guiding NPC: green guiding NPC will guide the player to the nearest collectible, and if it is near that collectible, it will wondering around the collectible.

Behavior Tree of Guiding Jellyfish
Wondering NPC: red wondering NPC will wondering around the world and if the player goes near the NPC, it will be scared away.

Behavior Tree of Wondering Jellyfish
Optimization
I also worked on optimization in this game. When I start my optimization, the FPS is lower than 20, and I try my best to make it stable in 60 - 80.
I used Unreal Insights to trace the potential performance issues in the game and used the following ways to optimize them:
-
Distance Rejection: objects which is far from the camera may stop doing complicated calculation
-
Particle Systems: Disable shadows, change them to GPU particles
-
Lighting: Reduce the amount of the lights, reduce the shadow casting lights
-
AI: Use behavior trees, reduce the calculations
-
Minimize physics collision detection

Finding Issues in Unreal Insights
Steam and Epic API
I add an achievement system in the player controller C++ class to check the status of the achievements. I wrapped the Unreal Steam API and Epic API by self defined functions in the player controller class.
Declaration of Warpped API Functions
Generalist
I worked with almost all the people from our team during the development. I helped the animation team, I did optimization, I worked on level designer related breakable walls and I did the player control which is a designer resiponsible part.