Subscribe Free

Join 2670+ others. No spamming.
I promise!

We are currently under high development. Follow us at github.

Looking for Python Tutorials?
Check these awesome tutorials



jayschwa / Quake2.jl


Experimental Quake 2 map renderer written with Julia and modern OpenGL.



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



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


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


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.


Combined effect