A GUI for a strategy game

BlitzMax Forums/BlitzMax Programming/A GUI for a strategy game

Czar Flavius(Posted 2009) [#1]
Hello, I'm working on an RTS with lots of city management (clicking on buildings to see their info and tweak their orders, stats windows to see income graphs, set rates and things etc) and it's getting a real pain programming all the interface elements myself, and most of it is rather "hacky". So I'm wondering if there is some kind of generic interface module available for use, and/or if MaxGUI is suitable for this? (Most of its screenshots tend to be for Window-y windows with standard buttons and things, my game needs a graphical interface with bitmap images for buttons etc)

Thank you.


DaY(Posted 2009) [#2]
maxgui wouldnt be any good for that kind of thing

you could do it either using zonechecking or load a sprite as ur mousepointer and do sprite collision that way infact if its 2d rts you could select units that way also.


Corum(Posted 2009) [#3]
It depends on your design choices: are you going to make a graphics UI or an OS based one?
I'm using fryGUI for my turn based strategy game. It's free and its source code is open for doing some personal adjustments.
I suggest you to rely on a stable UI library like this one, or iGlass.
Maybe CEGUI port for max is mature enough, but I never tested it personally.
MaxGUI would be good as well.


Czar Flavius(Posted 2009) [#4]
Thank you, I'll look into those suggestions!

DaY, I'm using something similar to that already, which works for simple button pushing, but it's becoming harder if I want things such as tick boxes, tabbed menus, popup-boxes etc.


TaskMaster(Posted 2009) [#5]
You could have a look at http://www.ifsogui.com . It is not free, but it is feature rich.


jsp(Posted 2009) [#6]
MaxGui itself can be customized to a certain extend to fit your needs.
Buttons and panels can carry pictures, thus they can look just like you want.
Windows and panels could be transparent. Window titlebar can be switched off and you could put your own style via a panel.
Most gadgets can have a fore- and/or background color to fit better the environment.

When you use already some zone-checking you may like this:
It uses pure MaxGui as well and is part of my Logic Gui package.
http://jsp.logiczone.de/downloads/SmartButtonDemo1.2.zip
And it comes with an editor.
http://jsp.logiczone.de/downloads/SmartButton1.2.pdf


Brucey(Posted 2009) [#7]
Oooh.. Everyone's flogging their wares today! :-)

I suppose I should join in the fun !

Roll up, roll up...

I'm afraid all my stuff is free, so if you need to pay for something you may prefer to look at one of the other options. Of course, if you need a "proper" support contract, I'm sure we can come to some agreement.

First up, we have wxMax. It's a bit like MaxGUI, in that it is a native UI toolkit, only shinier. It also comes with an editor. It has a much tidier event model, is quite customisable, and is already in use by several "pay for" BlitzMax-made applications.
You can create your own 'widgets' and use the system GDI to draw on them, if you like.
My RadioBaH app shows how you might draw your own stuff on a window.

Then there's CEGUI. This is a graphics-based UI toolkit, running primarily on OpenGL. It's skinnable and fast. Armitage made a great-looking editor for his golf game with it.
The up-coming 0.7 update is meant to be even better. Ho Ho :-)

And of course, both are fully cross-platform.


Roll up, roll up... get your stuff here...


I'm also working on another system GUI toolkit module which is entirely skinnable. I thought wxWidgets was cool.. but this one is... sweet :-)


Two for a pound... two for a pound...


plash(Posted 2009) [#8]
@Brucey: Is it possible to use Qt in a graphical context? (i.e. render the ui entirely in a graphics window, with full functionality, etc.)


Brucey(Posted 2009) [#9]
Is it possible to use Qt in a graphical context?

I believe so, yes. Although I haven't got to that bit yet :-)


plash(Posted 2009) [#10]
I believe so, yes. Although I haven't got to that bit yet :-)
That would be awesome - having a system UI and a graphical UI running on the same system!! (and both with the SAME SKIN!!)


Corum(Posted 2009) [#11]
Well, I was crossing my fingers waiting for further CEGUI evolutions, but QT seems to be the boat to jump in. :-)
Looking at the screenshots on nokia site... maybe Silo3D makes use of such libraries too?
I always liked its UI. Polished and stylish. And even skinnable! :)
Oh! And the layout editor is priceless!!!


Fry Crayola(Posted 2009) [#12]
I haven't flogged my wares yet!

But then, I'm not convinced FryGUI's suitable for the task. It can do much of what you need, but it's not designed for multiple windows. Maybe some day...


Czar Flavius(Posted 2009) [#13]
Haha Brucey, yes I am spoilt for choice really. Free is good, don't you worry, free is good :P I will try a few and report back!


Czar Flavius(Posted 2009) [#14]
Well the wxMax tutorials look too complicated for me, and I don't know how I'm supposed to install CEGUI :(


Armitage 1982(Posted 2009) [#15]
The up-coming 0.7 update is meant to be even better. Ho Ho :-)

...I smell good things in here ! (oh, that just happen http://www.cegui.org.uk/phpBB2/viewtopic.php?f=6&t=4340)

Czar, about the installation of CEGUI you simply need to go there : http://maxmods.googlecode.com/svn/trunk/
And use a tool called Tortoise SVN (for example) http://tortoisesvn.tigris.org/
Finding some tutorials on how downloading folders of the maxmods trunk of Brucey to your BlitzMax folder should not be very difficult.

A Qt in a Graphical Context?
"Que Fuerte !"
It might be cool to make some infidelity to CEGui.
Can't wait to see this in action !


Retimer(Posted 2009) [#16]
Yeah, the incoming update to CEGUI will make it a much more usable tool for the GUI world. The current public release of it has a ton of flaws and limitations, however with 0.7, it appears to be an entirely new and and impressively improved product. For Game GUI, that would be my top choice.

wxWidgets/QT I would aim towards tool-applications. Something like Blide's set up is easily possible in wxwidgets...but if you tried to create something like blide in cegui, you would run into some pretty big delays =p


Brucey(Posted 2009) [#17]
the incoming update to CEGUI

Well, I've got it building the new code from source now.
Working on re-integration with the glue code - which is currently several pages of errors :-p
Lots and lots of core changes...

Also considering splitting out the (currently only implemented) OpenGL renderer and creating two new sub-modules for OpenGL and D3D9.

Anyways.. enough of the Off-Topic from me...