Quake2.jl

Experimental Quake 2 map renderer written with Julia and modern OpenGL.
Popularity
73 Stars
Updated Last
10 Months Ago
Started In
April 2013

Quake2.jl

Experimental Quake 2 map renderer written with Julia and modern OpenGL. Created at Hacker School. It is a toy and not actively developed.

Screenshot

Features

  • Map (.bsp) rendering
  • Per-pixel lighting
  • Support for bump and parallax effects from heightmaps

Requirements

  • Julia v0.2 (still in development - must be built from source)
  • Official Julia packages (can be added with Pkg.add()):
  • Unofficial Julia packages (must be added manually):
    • GL (requires at least OpenGL 3.x)
  • Quake 2 game data (i.e. pak0.pak)

Due to the fast-moving nature of Julia development and its packages, setting up an environment is not easy. In its current state, the code will likely not run outside the author's environment.

Lighting

Traditional Phong shading is applied per-pixel and used in conjunction with point lights parsed from the BSP's entity list. Lightmaps baked into the BSP are not currently being used due to their low resolution and lack of direction information.

Bump and parallax effects can be created by providing an optional height map. Normal maps are calculated automatically from the height map at initialization.

Height map

Normal map

Bump and parallax

The bump and parallax effects breathe new life into the original, low resolution Quake 2 textures.

Diffuse

Combined effect