Covert Crab
This game is a wave based shooter created with c++ and opengl. I got to implement a wide variety of game mechanics from AI to physics and collision detection. The gimmick of this game is as you're a crab you can can only strafe sprint, forwards and backwards movement is a lot slower of an option.
One of my favouite parts of the project was AI. We were suggested to use finite state machines but I thought I'd look into some more options and ended up going with behaviour trees, designing and programming the AI for the engineer crabs was a very rewarding experience. Pictured below is the tree for the engineer AI.
I learnt a lot while doing this project, I focused a lot on game feel, using momentum based movement and adjusting the hitboxes to make the game feel right in terms of difficulty as only moving left and right can be quite disorienting at first. One thing I look back on with almost amusement now is the abysmal performance. This is caused by one mistake I made in the enemy classes, rather than loading in the meshes once at the start and using that as a reference for all spawned enemies I clearly thought a better alternative would be to load this mesh in on the creation of every enemy object which as you can imagine the game didn't really enjoy doing. Since then I've managed to implement instanced rending in a project so I'd say I've very much jumped from one end of the model performance spectrum to the other.