Este fue mi primer proyecto profesional directamente relacionado con la industria del videojuego. Mi tarea consistía en supervisar y corregir los problemas gráficos que pudieran surgir en el proceso de porting, así como mantener el rendimiento en cada plataforma (PS5, PS4, Xbox Series X|S, Xbox One y Switch) en unos niveles aceptables para el objetivo de rendimiento de cada una de ellas. Además, me encargué de implementar el doblaje en inglés del juego y de apoyar otras tareas de porting relacionadas con la programación.

Imagen promocional del juego.
El doblaje
El juego tenía un doblaje original en chino. El cliente que nos encomendó el porting quería que también implementásemos el doblaje en inglés. Esto suponía una elevada carga de trabajo si se realizaba el trabajo de manera manual, así que decidí realizarlo de manera programática. Modifiqué el código del evaluador de secuencias de Unreal Engine para que sustituyese los audios y adaptase en tiempo real el tamaño de las secciones de audio para que se ajuste a la diferente duración del audio doblado, que por problemas de comunicación no se mantuvo similar a las del doblaje original.

Secuencia situada casi al inicio del juego [Xbox Series]
Optimización
El juego, pese a que carece por lo general de grandes zonas abiertas, tenía varios problemas de rendimiento especialmente en consolas de octava generación como PS4, Xbox One y, especialmente, Nintendo Switch. El problema principalmente venía de la gran cantidad de objetos debido a los detallados entornos que hay en el juego. Este problema se ve agravado por las múltiples luces dinámicas que el juego tiene, muchas de ellas con sombras.
El juego también tenía problemas con el shader de pelo en sistemas basados en PSGL (el sistema de renderizado de Sony): el scattering de luces cuando los rayos de luz se encontraban paralelos al vector vista eran demasiado exagerados. Lo solucioné aplicando un factor de atenuación en el shader de pelo de Unreal Engine, de manera que cuando estos vectores tendían a ser paralelos, disminuía la dispersión de luz en el cabello.

Imagen de una habitación interior del juego.
También había problemas de precisión en unos carteles cuando estaban lejos de la cámara en Nintendo Switch, lo que causaba z-fighting con la pared de la que estaban colgados, ya que en esta plataforma se usa un mapa de profundidad de 24 bits. Como este problema estaba ampliamente extendido en todos los niveles, lo solucioné aumentando la precisión del buffer de profundidad a 32 bits modificando el código del motor.
Gameplay del juego en PS5.