For this project, a custom Entity Component System (ECS) and physics system were developed from the ground up, focusing on how data is stored and transformed while adhering to data-oriented-design principles. The renderer prioritised performance through an automated render pipeline management and sorting system. It is also fully integrated with the ECS and physics system, which resulted in the rendering of 3D meshes and billboarded sprites within an environment and enabled debug visualisations of box colliders and triggers in the world.
In addition to these core systems, a sample level was crafted to test these lower-level components and to demonstrate gameplay systems and mechanics that were implemented. These encompass projectile and hitscan weapons, alongside health, armor, and ammo pickups. The project also features interactive doors that require keycards, and a comprehensive game loop complete with a main menu and win/lose states. Additionally, the project made use of "XAudio2", Windows' low-level audio API. Which was used for basic one-shot audio effects, such as the gun shots, and the looping nostalgic Doom music tracks in the background. You can see a full playthrough of the game in the embedded video below.
Throughout development of this project, a report was produced. This report details all of the research, processes, future work and analysis of the final product. You can read the report here!