Doom software 3D rendering engine in Java
At university I got interested in creating 3D rendering software engines. After rebuilding the Wolfenstein 3D engine I wanted to build the engine of the second 3d shooter that made a big impression on me: Doom. This one was a bit tougher, as it uses more sophisticated algorithms.
Understanding and implementing the binary space partitioning tree was quite satisfying. I consider this engine 2.5D, as it’s impossible to have rooms above each other. After implementing most rendering features from the real game, I added some improvements, such as force fields and the ability to jump.
Features
|
|
Demo
Below is a demo of the engine in Java as applet. To run this, you might have to lower Java’s security settings to medium or add my website to the Exception list.
Controls
| Walk forwards | W | Level select | L |
| Walk backwards | S | Change light-level | M |
| Turn left | A | Toggle gravity(earth/moon) | G |
| Turn right | A | Toggle clipping(on/off) | C |
| Jump | Space | Stop rendering | Z |


