Most of the assignments for this project focused on developing a 3D grid-based world. I learned the basics of the 3D rendering and implemented a fast 3D raycast system. I utilized XML to data drive the implementation of unique actor types with a single actor class. With the data driven actors, I created a player character and an AI character, which move with different mass and velocity and can both be possessed by the user, automatically changing the camera view. I also created split screen functionality for up to 4 players using a mix of input devices.
This project taught me the basics of the D3D11 pipeline, how to use HLSL to create shaders, and the Monolith design pattern.