This was my first professional project directly related to the video game industry. My role involved supervising and correcting graphical issues arising during the porting process, as well as maintaining performance across all platforms (PS5, PS4, Xbox Series X|S, Xbox One, and Switch) at acceptable levels for each target. Additionally, I was responsible for implementing the game’s English dubbing and supporting other programming-related porting tasks.

Promotional image of the game.
The Dubbing
The game originally featured Chinese voice acting. The client who commissioned the porting requested that we also implement an English dub. This would have been a high workload if handled manually, so I decided to approach it programmatically. I modified the Unreal Engine sequence evaluator code to swap the audio files and adapt the length of audio sections in real-time. This allowed the system to adjust to the different durations of the dubbed audio, which, due to communication issues, did not match the lengths of the original recordings.

Sequence near the beginning of the game [Xbox Series].
Optimization
Despite generally lacking large open areas, the game faced several performance issues, especially on eighth-generation consoles like PS4 and Xbox One, and most notably on Nintendo Switch. The main problem stemmed from the high object count due to the game’s detailed environments. This issue was compounded by the multiple dynamic lights used throughout the game, many of which cast shadows.
The game also had issues with the hair shader on PSGL-based systems (Sony’s rendering system): light scattering was too exaggerated when light rays were parallel to the view vector. I resolved this by applying an attenuation factor in the Unreal Engine hair shader, ensuring that as these vectors became parallel, the light dispersion in the hair decreased.

Image of an interior room in the game.
There were also precision issues with certain signs when viewed from a distance on Nintendo Switch, causing z-fighting with the walls they were hanging on, as this platform uses a 24-bit depth map. Since this problem was widespread across all levels, I solved it by modifying the engine code to increase the depth buffer precision to 32 bits.
Gameplay on PS5.