Goat Imitator
Built my own physics engine to host several kinds of AI and multiple different players in an immitation of the popular Goat Simulator Franchise
Project Details
Completed over the course of four weeks, this game gave me the opportunity to further my understanding of C++, explore different areas of game development and work with large repositories of code. I achieved a grade of 96%
The main areas of this project were Physics, AI and Networking which when combined together allowed for a multiplayer game where the player, a goat, must annoy the humans, destroy the crates and avoid the goose in order to win.
Here are just a few of the features I included for this game:
Physics
  • Various collision types, including capsules
  • Constraints, both position and orientation
  • Multiple methods for reducing performance intensity like spatial accelerated structures and sleeping stationary objects
AI
  • Humans controlled via Hierarchal State Machines with several states and scenarios for transitioning
  • Goose controlled via a complex behavioural tree with decision, sequence, parallel and behavioural nodes
  • Pause system controlled via a Push State Automata
Networking
  • AI controlled server side for consistent movement between players
  • Multiple players can join the game at once and interact and effect eachothers gameplay
  • Game state controlled via the server with the game ending when timer runs out or all boxes are destroyed. All active players recieve packet to inform who has won and to prevent further gameplay
Code Repository