So. Doom.
Doom's a great game. Not only was it a breathtaking graphical achievement at its time, the gameplay and design of Doom still hold up to this very day. Simple, yet surprisingly deep, like a modern day Shakespeare.
Truly, Doom is the Citizen Kane of gaming.
So yeah, I'm a fan. Played it to death. Used to make my own WADs for it. Revisited it on Xbox recently.
Then one day I woke up and thought: I can
make this game. And that's exactly what I plan to do.
So why Doom, specifically?
Because Doom is awesome. But also because Doom is a perfect fit for a single programmer hobby game. The game was designed to run on hardware from 20 years ago. To make it work, Carmack and co put a lot of smart simplifications into the game. Those same simplifications make the game a lot easier to code than modern first person shooters, while the current hardware allows me not to worry too much about optimizations.
For instance:
- Doom levels can be designed with a 2D top down view, no need to have a 3D editor or create exporters for Max/Maya.
- Walls are always perfectly upright. Floors are always perfectly level. This makes collision detection and physics super easy!
- Objects are sprites instead of 3D models. Sprites are way easier to find/make than animated models.
- Doom geometry is sparse when compared to modern 3D games. Modern GPU's can probably render an entire level without breaking a sweat, saving me the hassle of programming visibility culling.
This blog will catalogue my successes and failures. Although writing a blog about something is the best way to lose interest, let us hope that there will be plenty of both.