For my final project I was planning on building a simple doom clone where the player will control view the world from a first person perspective and be able to move around and fire “bullets” using keyboard input. There will not be enemies but objects in the world which the player will be able to shoot and destroy (using the Collision system I built). I was also planning on using Shantanu’s (Shantanu Pandey) Audio system for sounds for bullet firing and object being hit.
I managed to achieve all my goals for this project, namely using my collision system combined with another system to create a tech demo. I discovered aspects missing from my system that I had to fix and update. Also, there were some weird bugs I encountered while implementing the audio system (these surprisingly went away after making a few builds, which was troubling).
I also found the limits of our graphics system by simultaneously placing a lot of meshes in the level. This unfortunately caused me to limit the number (and quality/poly count) of objects I could place in the scene so that the frame rate didn’t tank to < 3fps.
Still, I could’ve done more. I can still add Nicks Navigation system to make the demons move around and Yuxians AI to give them some behavior where they attack the player if s/he gets close.
Game Controls And Download
For this doom clone I have simple controls. The player uses the arrow keys to move forward, back and strafe left-right. F1 & F2 to look around and space key to shoot.
Download here DoomClone.
What I learned this semester
Even though it was stated at the very beginning that this class would not be focused on graphics programming (and it wasn’t), I learned quite a bit about how the graphics pipeline works. From importing the mesh and effect all the way to having it render on the screen, the ownership considerations as data is moved around inside the engine and, reading/writing data in different formats depending on ease of readability or storage.
Another slightly unrelated thing I learned was how Visual studio handles all the projects in a solution, how to keep track of dependencies and references and debugging the same when problems arise (read LINKER ERROR)
I also had a good revision of lua and managed to brush up my basics while working on assignments involving lua.