Another attempt at making something with actual gameplay…
I think the very first game I ever wanted to make was a Doom 3 clone. Not that I would have been able to play Doom 3 at that time, since I was about 13 years old and I think it hadn’t come out yet either, but I had read a preview in a popular German PC gaming magazine and somehow that preview launched me into the world of game development. Ever since then, first person shooters are what I considered to be one of the royal genres of video gaming that always stood at the frontier of technological development.
Cook-Torrance makes everything prettier!
Naturally, most of my many attempts at making my own game ended up being first person shooters. Now, after a few years of actually knowing how games work under the hood and especially how my former dream game, Doom 3, works internally - after all, the source code is available to everyone now - I thought I’d relaunch my attempts at making a first person shooter. I haven’t actually gotten to a point yet where anything is playable of course, since I needed to put this on halt again, but I very much want to pick this project up again at some point in the future.
Every FPS game needs a plcaeholder texture.
While I was actively working on it, I focused on not spending a lot of time on generic engine code but instead directly go for more exciting features such as the following:
As should be apparent from this list, my main focus when starting this project was to really fast get to a point where I could make levels and have a player run around in them as well as enabling them to interact with the environment in some way (in this case through splatting decals all over the place).
Proper debugging visualization support is essential to developing visual features such as decals.
If I get a chance to pick this project up again, I will probably overwork the object model to be more data driven rather than code driven, replace the mesh based decals (which were a lot of work but only delivered very subpar performance on spawning due to the complexity of the mesh generation algorithm) with two distinct solutions - namely some sort of “deferred” decals for static geometry and a more advanced, texture space painting solution for characters - and re-implement the renderer on top of DX12 instead of DX11 in order to get access to bindless texturing (and generally because I prefer the API by now). I would also probably try to recover and integrate my old brush-based level editor, since it’s a perfect fit for the kind of game I have in mind.
Bare-bones level editor UI
As its current state is relatively broken and half-baked, I have not made this project available on github.