Dust Racing 2D
Arcade
Description:

Dust Racing (Dustrac) is a tile-based, cross-platform 2D racing game written in Qt (C++) and OpenGL. Dust Racing comes with a Qt-based level editor for easy level creation.

Note: the build depends now also on libopenal and libvorbisfile. Requires Qt5.

Videos of the game:
https://www.youtube.com/watch?v=JpnRIuRc6dY
Last changelog:

5 years ago

1.11.0
======

New features:

* Finally a difficulty setting with three levels: Easy, Medium and Senna
* Show a red overlay on hard crashes
* Cars can get damaged

Improvements:

* Remove alpha blending from the plant object
* Stabilize the steering a bit

Bug fixes:

* Editor: Fix wrong scale when track given as a CLI argument
* Editor: Don't try to open a track if filename is empty
* Fix unit tests

Other:

* Refactor settingsmenu.hpp
* Refactor steering logic
* Sparkles as surface particles
* Use same renderer for all particle batches

Groni1

3 years ago

Hi juzzlin

Good racing Game, thanks for it

I have build it for Pisi Linux, and the game is now available in the Repo from Pisi Linux i hope that is ok for you.
Building was successfully without any Problems

The Pisi Linux User can install it with following command

sudo pisi bi https://github.com/pisilinux/playground/raw/master/groni/dustrac/pspec.xml

When Pisi Linux 1.0 release the user found it then in the Package Manager.

Report

juzzlin

2 years ago

Of course it's ok, thanks :)

Report

OLLEGATOR

4 years ago

[Tue Apr 16 10:15:06 2013] I: Creating game object..
[Tue Apr 16 10:15:06 2013] I: Resolution: 1366 768 1 0
[Tue Apr 16 10:15:06 2013] I: Creating the renderer..
[Tue Apr 16 10:15:06 2013] I: OpenGL Version: 3.3.11627 Compatibility Profile Context
[Tue Apr 16 10:15:06 2013] I: Using GLEW 1.9.0
QGLShader::compile(Fragment): Fragment shader failed to compile with the following errors:
ERROR: 1:16: error(#105) #version must occur before any other statement in the program
ERROR: error(#273) 1 compilation errors. No code generated

[Tue Apr 16 10:15:06 2013] E: Cannot compile './data/shaders/car.fsh'
[Tue Apr 16 10:15:06 2013] F: Compiling a fragment shader failed.
[Tue Apr 16 10:15:06 2013] F: Initing the game failed!

Report

juzzlin

4 years ago

Hmm...something funny going on. Please tell me more about your configuration and how did you install Dust Racing 2D..?

Report

cyberbeat

4 years ago

When I try to start the newest version I get "At least OpenGL 3.0 is required". No hope for me?

Report

juzzlin

4 years ago

Unfortunately the game now requires OpenGL 3.0 for some shader functionality.

Report

Drool

5 years ago

...

Scanning dependencies of target editor
[ 8%] Building CXX object src/editor/CMakeFiles/editor.dir/aboutdlg.cpp.o
[ 9%] Building CXX object src/editor/CMakeFiles/editor.dir/editordata.cpp.o
In file included from /usr/src/RPM/BUILD/dustrac-0.2.2/src/editor/editordata.cpp:17:0:
/usr/src/RPM/BUILD/dustrac-0.2.2/src/editor/editorscene.hpp:29:45: error: 'nullptr' was not declared in this scope
/usr/src/RPM/BUILD/dustrac-0.2.2/src/editor/editordata.cpp: In constructor 'EditorData::EditorData(MainWindow*)':
/usr/src/RPM/BUILD/dustrac-0.2.2/src/editor/editordata.cpp:26:27: error: 'nullptr' was not declared in this scope
/usr/src/RPM/BUILD/dustrac-0.2.2/src/editor/editordata.cpp: In member function 'void EditorData::removeRouteLinesFromScene()':
/usr/src/RPM/BUILD/dustrac-0.2.2/src/editor/editordata.cpp:144:36: error: 'nullptr' was not declared in this scope
make[2]: *** [src/editor/CMakeFiles/editor.dir/editordata.cpp.o] Error 1
make[1]: *** [src/editor/CMakeFiles/editor.dir/all] Error 2
make: *** [all] Error 2
====================================
OS - ALT Linux 6

rpm -q libqt4-devel
libqt4-devel-4.8.1-alt1.M60P.1

Report

Drool

5 years ago

And

rpm -qa | grep gcc
gcc4.5-4.5.3-alt1
libgcc1-4.5.3-alt1
gcc4.5-c++-4.5.3-alt1
gcc-common-1.4.14-alt1
gcc-c++-common-1.4.14-alt1

Report

juzzlin

5 years ago

GCC >= 4.6 is required. It's mentioned in the build instructions ;) I don't know about ALT, but 4.6 was the default version already in Ubuntu 11.10.

Report

Drool

5 years ago

This can be changed for a older version of GCC?

Report

juzzlin

4 years ago

Some C++11 features are used in the code and that requires at least GCC 4.6.

Report

cyberbeat

5 years ago

Hi, the screenshot looks very promising. But I first had to install gcc-4.6 (had 4.5) to compile. But even now I get a memory access violation before start (the editor works).


./dustrac
using visual class 4, id a1
[Sat Jun 2 16:29:32 2012] I: Creating renderer..
[Sat Jun 2 16:29:32 2012] I: Creating the main window..
[Sat Jun 2 16:29:32 2012] I: Creating game object..
[Sat Jun 2 16:29:32 2012] I: Loading texture config from ./data/textures.conf..
[Sat Jun 2 16:29:32 2012] I: Loading font config from ./data/fonts.conf..
Speicherzugriffsfehler

Report

juzzlin

5 years ago

Yes, it needs at least GCC 4.6. It's mentioned in the INSTALL file. Are you able to get a stack trace of the segfault? I'd be interested in that because it has never crashed on my setup :)

Report

cyberbeat

5 years ago


Thread 1 (Thread 0x7ffff7fae760 (LWP 13933)):
#0 0x00007ffff574ef54 in vfprintf () from /lib64/libc.so.6
No symbol table info available.
#1 0x000000000043e7b1 in doLog (type=0x4685ac "I: ", format=0x46a358 "Loading font '%s'..", ap=0x7fffffffd948) at /dustrac-0.2.0/src/game/MiniCore/Core/mclogger.cc:87
No locals.
#2 MCLogger::doLog(const char *, const char *, typedef __va_list_tag __va_list_tag *) (type=0x4685ac "I: ", format=0x46a358 "Loading font '%s'..", ap=0x7fffffffd948) at /dustrac-0.2.0/src/game/MiniCore/Core/mclogger.cc:72
No locals.
#3 0x000000000043e874 in MCLogger::logInfo (format=<value optimized out>) at /dustrac-0.2.0/src/game/MiniCore/Core/mclogger.cc:96
ap = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fffffffda20, reg_save_area = 0x7fffffffd960}}
#4 0x000000000045aad6 in MCTextureFontConfigLoader::loadFonts (this=0x7fffffffdcf0) at /dustrac-0.2.0/src/game/MiniCore/Text/mctexturefontconfigloader.cc:74
childNode = {impl = 0x2}
tag = {<QDomNode> = {impl = 0xaeddf0}, <No data fields>}
newData = 0xb31370
node = {impl = 0xaeddf0}
doc = {<QDomNode> = {impl = 0xb55940}, <No data fields>}
file = <incomplete type>
root = {<QDomNode> = {impl = 0xb7a7b0}, <No data fields>}
#5 0x0000000000454df9 in MCTextureFontManager::load (this=0xb331b0, fileName="./data/fonts.conf") at /dustrac-0.2.0/src/game/MiniCore/Text/mctexturefontmanager.cc:55
loader = {m_filePath = "./data/fonts.conf", m_fonts = std::vector of length 0, capacity 0}
#6 0x0000000000429b4d in Game::loadFonts (this=0x7fffffffddd0) at /dustrac-0.2.0/src/game/game.cpp:119
fontConfigPath = "./data/fonts.conf"
#7 0x0000000000429e31 in Game::init (this=0x7fffffffddd0) at /dustrac-0.2.0/src/game/game.cpp:177
No locals.
#8 0x0000000000423f58 in main (argc=1, argv=<value optimized out>) at /dustrac-0.2.0/src/game/main.cpp:59
app = <incomplete type>
logPath = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 399}, alloc = 0, size = 0, data = 0x679cfa, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 2}, alloc = 0, size = 0, data = 0x7ffff6bb58fa, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x7c7ff0, static codecForCStrings = 0x0}
layout = 0x7b9100
game = {<QObject> = {<No data fields>}, static staticMetaObject = {d = {superdata = 0x679e60, stringdata = 0x45e0e0 "Game", data = 0x45e140, extradata = 0x45e0c0}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x43da30 <Game::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}, m_pRenderer = 0x7b3700, m_pScene = 0x0, m_pTextureManager = 0xb93e00, m_pTextureFontManager = 0xb331b0, m_pObjectFactory = 0xad8e50, m_pTrackLoader = 0xad52a0, m_pTimingOverlay = 0x0, m_pSpeedometer = 0x0, m_pCamera = 0x0, m_pInputHandler = 0xb93e20, m_frameUpdateTimer = <incomplete type>, m_frameRenderTimer = <incomplete type>, m_animationUpdateTimer = <incomplete type>, m_renderCountTimer = <incomplete type>, m_updateFps = 60, m_renderFps = 0, m_timeStep = 0.0166666675, m_renderCount = 0, m_availableRenderTime = 0}
renderer = <value optimized out>
mainWindow = {<QWidget> = {<No data fields>}, static staticMetaObject = {d = {superdata = 0x679ba0, stringdata = 0x45e550 "MainWindow", data = 0x45e580, extradata = 0x45e540}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x43dc50 <MainWindow::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}, static m_instance = 0x7fffffffded0, m_aboutDlg = 0x7b23a0}

Report

juzzlin

5 years ago

I'm not sure what happens there, because it seems that the logger crashes on vfprintf. Try what happens if you remove the lines containing vfprintf in mclogger.cc :)

Report

juzzlin

5 years ago

After some Googling I now think this is a known problem when using va_list's twice and it may crash especially on AMD 64-bit. Need to figure out a portable way to fix it. Thanks for reporting this! :)

Report

cyberbeat

5 years ago

I have a x86_64 cpu

Report

juzzlin

5 years ago

This is now fixed in 0.2.1

Report

cyberbeat

5 years ago

thanks. works now. nice game. I see much potential.

reminds me on "death rally" from apogee. if you don't know that game, you should have a look (runs on dosbox, too)

on physics: the cars slides too much.

Report

5 years ago

1.11.0
======

New features:

* Finally a difficulty setting with three levels: Easy, Medium and Senna
* Show a red overlay on hard crashes
* Cars can get damaged

Improvements:

* Remove alpha blending from the plant object
* Stabilize the steering a bit

Bug fixes:

* Editor: Fix wrong scale when track given as a CLI argument
* Editor: Don't try to open a track if filename is empty
* Fix unit tests

Other:

* Refactor settingsmenu.hpp
* Refactor steering logic
* Sparkles as surface particles
* Use same renderer for all particle batches

File (click to download) Version Description Filetype Packagetype License Downloads Date Filesize OCS-Install
Score 77%
77.00 Likes
23 Dislikes
Details
version
1.11.0
updated Apr 28 2015
added Jun 02 2012
downloads
page views 1182