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 |