Please Help Qt Brain-Storm Ideas For Gaming Apis


TomCooksey

Still Fresh
Joined
Apr 3, 2008
Messages
63
Just a quick note to encourage people to pop over to Qt's blog and let us know what you would like to see in Qt to help write games:

http://labs.trolltech.com/blogs/2009/09/16/improved-support-for-writing-games-using-qt/

As Andreas says, let your minds go wild, we're just collecting up ideas for 4.7 at the moment.... E.g. Do you think it makes sense to add a 3D scene graph API to Qt? What about some kind of physics engine? Perhaps you think supporting input from analog nubs might be useful? ;-) Perhaps you think Qt should keep out of gaming altogether? Whatever your opinion, please let us know on the blog's comments section.


Thanks!

Tom

PS: Even if Qt doesn't ship in the Pandora's default image, I can assure you there's a load of us here in Oslo who will make damn sure Qt runs well on the Pandora and is easy to install. :)
 
Sphinxter said:
I'd like a complete lack of trolltech code in mine.


Done... Qt is owned by Nokia now - Trolltech doesn't exist anymore <_<
 
Last edited by a moderator:
I would say that this is what certain people would call "pure win" -- for details, well, I'll leave my comment on the blog.


EDIT:
...or maybe I won't since pretty much all I wanted to say has been said already.
 
I don't think it's necessary at all, I'd rather if they could make Phonon easier to use. I have NO idea how to install it in Windows, I have this Linux music player sitting here that I can't port because Phonon is all weird and separate.

I want better sound support, not gaming. Games already have over 9000 (Blender Game Engine, OGRE, Irrlicht) alternatives. I want Qt to be better at what it does: Desktop GUI applications.

Edit: Which is to say, Phonon probably works in Windows, but I wouldn't know because there's no simple tutorial that says, "Install / Download this, link it here in Qt Creator / whatever, run this". That, and Microsoft is weird and confusing about the DirectShow thing. I have NO idea how it's supposed to work.
 
I've mainly been playing with SDL myself, but when I make the little 2D game creator application that will probably be in Qt. SDL's decent for straight up games, but I'll want windowing code for the painter/level/character creator application. I'm a LONG way off from any 3d work and being able to say what should be included on that realm. I don't know why the initial grudge for the Qt libraries. From what I can see it's a solid C++ library that's ported to many of the architectures that Linux is. Cheers, and I'm glad to hear it'll run on the Pandora.
 
Just having access to the moc and thereby also to the signals/slots system is pure gold all on its own for a game. No need to create weird "CollisionEventHandler"s and "CollisionBackwardsProjection"s; just connect a signal to a slot for a 3D (QObject-based) object and BAM, you have collision detection. Having a physics and graphics engine optimized for that would be really cool.

Also, to all of you who think that a Qt-based system would be slower than other solutions: It probably would be, but it won't be because of architectural limitations, but rather because the Qt engine will be a young unoptimized project for quite some time. It's also really easy to not include the QtGui module when compiling your project, so you don't have to "carry around widgets" with it if you don't want to. Qt is more than a widget system, and can be used for much more than just displaying windows.
 
QT is good stuff; I sort of fear the Nokia influence myself, but so far the license for QT has gotten easier so somethign is oging on nicely..

ie: I wa sin the boat of writing a cross platform very large suit of applications; using some of the free options was a total nightmare (I have many long rants why if you care), but QT really helped me turn things around. Total rewrites sadly, but at least my productivity was way up. I was paying for the tri-license (Win, Mac and Unix) which was brutal on a one man shop like me (like $4500 to buy in or some shit!), but it was worth it. Nowadays I think its free in many more cases, and I think the full QT (ie: with XML parser etc) is available for open source. Good stuff.

I've never really fiddled with the /dev/fb version of QT but should; could make things easier. QT4 helped with the split between components (less coupking of fat components etc)..

QT3 works okay on Panda, but I've only fiddled a bit. I think djw is including QT4 in the images, but don't quote me :)

jeff
 
skeezix said:
I think djw is including QT4 in the images, but don't quote me :)

Sorry, just had to quote you on this one :)

I really expect that the Qt libs will be available on the Pandora because there are just too many {embedded,desktop} applications that depend on Qt. If DJWillis decides not to include the Qt libs, he better have a good reason for doing so!

If things like the GL modules will be used is another question of course, but since OpenGL ES is an alternative back end for the QGLWidget, there really shouldn't be any issues with using the full, unpatched Qt 4.6-4.7 library on the Pandora.
 
Last edited by a moderator:
Tom, if you're still looking at this thread at all,
I'm a bit of a newb programmer, but I've been messing with creating a 2d game engine and level creator. It's an ambitious project for me, and I'd like to be able to do things like dynamically add actions for sprites. For instance, I wouldn't know ahead of time that my MarioAlike character has walkRight(), walkLeft(), and jump(). It feels like I'm re-implementing, to some extent, the signals and slots that's available in Qt. (You'd have an action as the above, you'd have an event like right arrow key-down, and something to map the event to the action.)

I'm going to have to dig into Qt a bit more, but I could tie in the rightKey down, or keyDown with a keysym to a slot() I define for my game, right? I'm guessing it may make more sense to use an established event and event handler library than creating one of my own from scratch, sitting atop a 2nd library.

My goal is to write an engine that's easily portable to multiple hand helds, the PC, and to consoles where one may be dynamically adding and removing controls. I've been looking at Qt for the level creator and SDL 1.2 for the game engine, but Qt seems to be a bit closer to what I'm doing with the game engine. Is my understanding of signals() and slots() correct? (It would also allow me to take just about everything except the "rendering" code and use it for 3D games.)

Thanks,
wardred
 
@wardred:
If you include the QtCore module in your project, you gain access to the signals and slots system in your own program.

Like this:
Code:
//In a header file:
#include <QObject>

class Something : public QObject
{
    Q_OBJECT //Marks this class as a Qt meta object; REQUIRED for signals/slots

public:
    Something();
    int theValue() const;

public slots:
    void setTheValue(int value);

signals:
    void theValueChanged(int value);

private:
    int _theValue;
}

//In a cpp file:

Something::Something()
{
    _theValue = 0;
}

int Something::theValue() const
{
    return _theValue;
}

void Something::setTheValue(int value) //Slots are just normal functions
{
    if(_theValue != value) {
        _theValue = value;
        emit theValueChanged(value); //Send out a signal
    }
}

You don't have to carry around the Qt GUI system (which is in the QtGui module); you can just use the QMetaObject system alone if you want to.

(Disclaimer: I haven't compiled the above, so don't expect it to)
 
Back
Top