Trailer
Introduction
Catstronaut: Mission Impawssible is a 3D platformer made as the 6th game project at The Game Assembly. The platforming and movement is based on Mario 64 while some things like the camera are based on Mario Odyssey for a more modern feel. The goal is to visit different planets to pick up your lost fish oil cargo in hopes of getting employee of the month!
Key Contributions
- PhysX Implementation
- Landscape Tessellation
Highlights
PhysX implementation
One of the big new things this game project was having physics be a requirement and we therefore had to implement Nvidia’s PhysX API. My main goal was to make a wrapper for the API that was as simple to use as possible which I accomplished by integrating it into our current component system. I decided to wrap both the PxShape and PxActor into one component since each object would only have one collider anyway due to us using UBXs. For the character controller I made a seperate component wrapping the PxCapsuleController with both components deriving from a common PhysicsComponent class for shared variables. Most of my time was spent wrapping the collision callback system as I wanted an interface similar to Unity’s as I felt it was a good reference point to go off of.

Landscape Tessellation
With many of our levels making use of landscape, optimization became a clear issue since due to the landscape being a huge plane it couldn’t be frustum culled like other meshes. To avoid rendering millions of vertices all the time another programmer and I started looking into tessellation. With a tessellation pipeline we could generate the entire landscape at runtime with a combination of a hull, domain and geometry shader making it possible to skip generating certain parts of the mesh that weren’t visible in the scene skipping many unnecessary vertices being rendered.