top of page
Ty4logo_edited.png

Publisher: Krome Studios

Developer: Krome Studios

hiclipart.com-id_dlyta.png

Engine: Unity 2020.3.45f1

Language Used: C#, C++, HLSL

Primary Roles: Porting, Tools, Optimization

Additional Roles: Bug fixing

A remaster of the fourth entry in the popular platforming series Ty the Tasmanian Tiger is a 2D platformer that allows players to utilize an arsenal of boomerangs to save the locals and Aussie Outback. This is the first Nintendo Switch title I’ve worked on and the first remaster/port I’ve ever been a part of. My initial role on this project was porting gameplay behavior scripts from the original game engine which was a custom version of MonoGame to Unity which we utilized to make it easier to port to other platforms. However, my role expanded to co-developing tools with other team members to convert props, levels and animations data that’s setup in a proprietary tool into Unity prefabs. This system basically works by scanning a directory that we placed the source data in and displays all the props and levels that can be converted into individual buttons that’s contained in an editor window. Then once a prop or level has been selected to be converted, it will scan the file which is in a JSON like format and build the meshes, attach components and create animations based on the data being fed to the converter.

 

Furthermore, towards the tail end of the project, my role shifted to primarily being in charge of optimization for the Nintendo Switch version which involved me really learning how to do multi threaded programming and how to utilize Nintendo’s CPU tools and Unity’s profiler. Now fortunately since we decided to port over Ty 4’s original physics engine (Farseer Physics) to Unity, we weren’t completely bound to the restrictions that Unity imposes on running everything on the game thread. So I basically moved the physics world step to run once per frame on another thread in parallel with the game draw which did initially create issues with causing the player and other props to jitter. This was caused by the props positions being changed by the physics thread while being accessed on the Game Thread, so I resolved this by double buffering the positions and syncing them at the end of the frame. In addition to converting the physics thread to run on another thread I also moved the serialization system to run on another thread to prevent hitches when running pass checkpoints.

 

In conclusion, I was really happy to have been given this opportunity to learn how to develop for game consoles through reading how the Switch file system and threading scheduler works and how to use Nintendo’s tools to profile performance. It was also a very intriguing and eye opening experience on how to port an old game designed in an old engine and bring it into a modern one and to modern platforms. The experience I gathered from this really prepared me for the work I did on Hogwarts Legacy and for this I am really grateful.

bottom of page