Fast paced 1v1 3D drone racing game built with
OpenGLon top of gfx-framework.
Race side-by-side with your friend through 3D tracks full of obstacles.
Fly through forests and colorful domes inspired by Santorini's Blue Domes.
The winner is the first to reach all checkpoints (one gate at a time).
No two races are exactly the same! Each time you open the game, a new map is waiting for new: obstacles appear in random locations and come in different sizes, to make the view more appealing.
This keeps every race fresh and unpredictable.
Pro tip: For the best experience, play in 3rd person with a perspective minimap.
| Key | Action |
|---|---|
Right Ctrl + 1 |
1st person view |
Right Ctrl + 3 |
3rd person view |
Right Ctrl + O |
Orthogonal minimap |
Right Ctrl + P |
Perspective minimap |
| Key | Action |
|---|---|
W |
Move Forward |
S |
Move Backward |
A |
Move Left |
D |
Move Right |
← |
Rotate Left |
→ |
Rotate Right |
↑ |
Climb Up |
↓ |
Climb Down |
Start 1v1 game:
TABends demo and splits screen.
| Key | Action |
|---|---|
Left Ctrl + 1 |
1st person view |
Left Ctrl + 3 |
3rd person view |
Left Ctrl + O |
Orthogonal minimap |
Left Ctrl + P |
Perspective minimap |
| Key | Action |
|---|---|
W |
Move Forward |
S |
Move Backward |
A |
Move Left |
D |
Move Right |
← |
Rotate Left |
→ |
Rotate Right |
↑ |
Climb Up |
↓ |
Climb Down |
| Key | Action |
|---|---|
Right Ctrl + 8 |
1st person view |
Right Ctrl + 9 |
3rd person view |
Right Ctrl + O |
Orthogonal minimap |
Right Ctrl + P |
Perspective minimap |
| Key | Action |
|---|---|
8 |
Move Forward |
2 |
Move Backward |
4 |
Move Left |
6 |
Move Right |
1 |
Rotate Left |
3 |
Rotate Right |
9 |
Climb Up |
7 |
Climb Down |
Each player sees their drone in a personal viewport with navigation arrows.
Mini-map control is shared between players due to limited keys.
| Key | Action |
|---|---|
I |
Move Up |
K |
Move Down |
J |
Move Left |
L |
Move Right |
U |
Shrink minimap (16:9 ratio) |
M |
Enlarge minimap (16:9 ratio) |
-
Checkpoint Colors:
- Red: Unvisited gates
- Green: Visited gates
- Blue: Target gate (mini-map arrow points here)
- Yellow: Next gate in sequence
-
Race Flow: Winner waits for opponent to finish.
-
New random checkpoints are generated after each race, starting where players left off.
Elapsed time and winner are not shown in-game.
#ifdef _WIN32
// Hide DEBUG console, if it exists
HWND hWnd = GetConsoleWindow();
if (hWnd)
ShowWindow(hWnd, SW_HIDE);
#endifFor debugging, uncomment the following lines in
src/main.cpp -> main() to see console logs of checkpoint times:
Example debug output:
[DEMO] Check point reached after 16.97 seconds!
[DEMO] Check point reached after 5.22 seconds!
[DEMO] Check point reached after 16.73 seconds!
[FIRST PLAYER] Check point reached after 3.00 seconds!
[SECOND PLAYER] Check point reached after 4.16 seconds!
[SECOND PLAYER] Check point reached after 2.95 seconds!
[FIRST PLAYER] Check point reached after 7.06 seconds!
[FIRST PLAYER] Check point reached after 9.13 seconds!
...
First player completed race in 260.86 seconds!
[SECOND PLAYER] Check point reached after 6.15 seconds!
[SECOND PLAYER] Check point reached after 6.83 seconds!
...
[SECOND PLAYER] Check point reached after 15.92 seconds!
Second player completed race in 309.34 seconds!
Player 1 WON! Congrats!