Genomutant

Our 7th project at The Game Assembly was a first-person shooting game. I worked with the implementation of PhysX, shadows, the enemies,  and had to take over the UI when we lost one of our programmers halfway through the project.

Project Details

  • 10 weeks half-time
  • Created in a custom engine using DirectX 11
  • 5 Programmers | 3 Level Designers | 4 Graphical Artists | 3 Technical Artists

PhysX

I linked PhysX to our solution and created a wrapper around PhysX that suited our needs for the project. The wrapper was then used to create a new physics system in our engine, which replaced my old one. This new system had the following features:

  • Box, sphere and capsule geometry
  • RIgid bodies
  • Character controllers
  • Scene queries (raycast, sweep, overlap)
  • Collision filtering and custom collision callbacks

Shadows

I first added spotlights to our engine and then implemented shadows in them. Point lights were a bit trickier, since they cast shadows in all directions, but I eventually got that to work as well. They were both implemented using shadow mapping.

Enemies

I was responsible for coding the enemies for this project, which included the animation logic and the behaviors. We had two types of enemies, a humanoid mutant with big claws, and a crab-like crawling enemy. The mutant would detect the player using a raycast and then find a path through the navmesh.

UI

I implemented a system for creating menus using the component system by loading a json file containing details about the layout. This was then used to create each separate menu screen. I also implemented the loading screen and made use of our engine's support for threaded loading.