A Quake 3 like game with voxelized destructible maps
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib Repoint rust-opengles and stb-image to master Dec 4, 2017
pics #19 Tightening the graphics on level 3 Sep 16, 2013
src #52 Added VBO/VAO objects to gfx Nov 11, 2013
.gitignore #46 Builds separate modules 'n' stuff Sep 28, 2013
.gitmodules Last update to modules (hopefully) Jul 14, 2014
.travis.yml (doc) Added Travis status to README Oct 30, 2013
LICENSE (doc) Important updates to LICENSE Aug 2, 2013
Makefile.stub Try to build an older version of Rust to run q3 Apr 24, 2014
README.md Remove some outdated readme-narcissism Nov 8, 2017
configure Moved to an even older version of rust Jul 14, 2014


Build Status

(NOTE: q3 should build on Rust f4bedde) Screenshot

What is Q³?

Q³ is a project using Mozilla's Rust language and OpenGL to create a Quake 3 like game that takes Quake 3 and QuakeLive maps, voxelizes them, and allows groups of players to blow the shit out of everything in a fast-paced Quake-esque first person shooter with 100% destructible environments.

What's the current state of Q³?

Q³ is not a game yet! It's still a side project that I'm working on in my spare time.

  • Multithreaded OpenGL rendering
  • Half-baked BSP renderer (Quake 3 and Quake Live)
    • Quake Live map rendering is... buggy
  • Skeletal animation
    • Using Quake/Doom's MD5 format
  • TTF renderer
  • Arbitrary mesh voxelizer (for BSP maps)
    • Using Separating Axis Theorem and instance rendering
  • Basic UI with drop-down console that provides in-game tweaking/debugging
  • Tested on Linux and Mac OS X
  • Documentation on a wiki

How do I get Q³ running on my system?

I run on the (nearly) latest Rust master; I generally pull every few days. Q³ currently has glfw3, glfw-rs, rust-opengles, rust-stb-image, and ncurses-rs, as submodules. To configure, simply run (in source and out of source builds are acceptable):


From there, you should be able to compile and run a release build with:

make && ./bin/client

The server can be executed via:


You may also individually build server/client or specify a debug build:

make server && make client # Make either separately
make MODE=debug # Debug symbols and faster compilation

NOTE: Ensure that you have Freetype2 installed.
NOTE: I don't have access to a Windows machine at the moment, so I'm not sure yet what will go into building this under something like MinGW. This should be coming with r0.3, as per #26.