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.
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.
|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|