Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Dust Racing 2D

Video of the game

Dust Racing 2D (Dustrac) is a tile-based, cross-platform 2D racing game written in Qt (C++) and OpenGL.

Dust Racing 2D comes with a Qt-based level editor for easy level creation. A separate engine, MiniCore, is used for physics modeling.


  • 1-2 human players againts 11 challenging computer players
  • 3 difficulty settings: Easy, Medium, Hard
  • Split-screen two player game (vertical or horizontal)
  • Game modes: Race, Time Trial, Duel
  • 2D graphics with some 3D objects
  • Smooth game play and physics
  • Multiple race tracks
  • Finishing in TOP-6 will unlock the next race track
  • Star ratings based on the best positions on each race track
  • Easy to create new race tracks with the level editor
  • Engine and collision sounds
  • Pit stops
  • Runs windowed or fullscreen
  • Portable source code using CMake as the build system
  • Will be forever completely free


Dust Racing 2D source code is licensed under GNU GPLv3. See COPYING for the complete license text.

Dust Racing 2D includes the source code for the GLEW library. See src/game/MiniCore/Graphics/glew/glew.h for the license text.

Dust Racing 2D includes the source code for the GLM library. See src/game/MiniCore/Graphics/glm/ogl-math/glm/glm.hpp for the license text.

All image files, except where otherwise noted, are licensed under CC BY-SA 3.0:



The default controls for player one (the pink race car):

Accelerate Brake Turn left Turn right
Up Down Left Right

The default controls for player two (the grey race car):

Accelerate Brake Turn left Turn right

The key configuration and game mode can be changed in the settings menu.

ESC or Q exits the race and also the current menu.

P pauses the game.


In the race modes there are always 12 cars. By finishing in TOP-6 a new track will be unlocked.

The record times and best positions are stored separately for each lap count.

Pit stops

Your tires will wear out as the race progresses. This causes more and more sliding.

Fortunately there's a pit (the yellow rectangle). By stopping on the pit your tires will be repaired.

Custom track files

Dust Racing 2D searches for race tracks in ~/DustRacingTracks/ where you can place your own race tracks.

On Linux/Unix also $XDG_DATA_HOME/DustRacing2D/tracks is added to search paths, or $HOME/.local/share/DustRacing2D/tracks if $XDG_DATA_HOME is not defined.

Command line options

--lang [lang] forces the language. Currently available: fi, cs, de, it, fr, nl, tr.

E.g. dustrac-game --lang it

--screen [index] forces the screen on multi-display setups when in fullscreen mode.

E.g. dustrac-game --screen 1 would start the game on the second display.

Building the project

Please refer to the INSTALL document for build/install instructions if you're going to build Dust Racing 2D from sources.

In a nutshell, on Linux after installing Qt5, OpenAL and Vorbis dev libs you just:

$ mkdir build && cd build

$ cmake ..

$ make

..or open the top-level CMakeLists.txt in Qt Creator or other IDE that supports CMake.