A Quake 3 like game with voxelized destructible maps
Rust GLSL

README.md

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):

./configure

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

make && ./bin/client

The server can be executed via:

./bin/server

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.

Who're you?

Hi! I'm Jeaye, a C++ software engineer.