At university I got interested in creating 3D software rendering engines. ID software’s “Wolfenstein 3D” was the first 3d shooter I ever played and it made a big impression on me. Also, it uses a simple, but clever algorithm to render 3d graphics. This makes it’s a perfect engine to get the grasp of software rendering, so I built a Java implementation of it.

wolfenstein3d_java

wolfenstein3d_java3

wolfenstein3d_java2

This is raycasting engine that basically turns a 2D grid into 3D graphics. Building this engine learned me a great deal about code optimization and performance, which I still benefit from every day.

Features

  • raycasting
  • texture mapping
  • collision detection
  • doors
  • texture mapping
  • collision detection
  • doors

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
Walk backwards S
Turn left A
Turn right D
Open doors Space

« other projects