At university I got interested in creating 3D software rendering engines. After rebuilding the Wolfenstein 3D and Doom engines, I wanted to create an online multiplayer shooter. My engine of Wolfenstein was too basic and my engine of Doom was too slow for computers at that time. So I created a custom engine: Quiver.

quiver_java3

quiver_java4

quiver_java

Quiver combines the best features from both my engines. It’s the Wolfenstein 3D engine enhanced with rendering of floors and ceiling, mipmapping, transparent walls and light. It was a big “success”: at university we played the game on several occasions with 4 or more players.

Features

  • raycasting
  • vertical texture mapping for walls
  • horizontal texture mapping for floor and ceiling
  • multiple levels of light with a CLUT (Color LookUp Table)
  • mipmapping
  • collision detection
  • doors
  • objects / projectiles
  • walls with gaps
  • transparent walls (forcefields)
  • player physics
  • weapons
  • network play (not in the demo)
  • level editor (not in the demo)

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 Shoot K
Walk backwards S Strafe left F
Turn left A Strafe right H
Turn right D Toggle mipmapping(on/off) P
Jump Space Main menu Escape

« other projects