About
From Guichan
Guichan is a small, efficient C++ GUI library designed for games. It comes with a standard set of widgets and can use several different back-ends for displaying graphics and grabbing user input.
Contents |
Abstract design
Guichan has a very abstract design which allows users of Guichan to use different back-ends for displaying of graphics and grabbing of user input. Guichan comes with (for now) 3 implemented graphics back-ends (SDLGraphics, OpenGLGraphics and AllegroGraphics) and 2 implemented input back-ends (SDLInput and AllegroInput).
The Guichan philosophy
Guichan is designed for games. This means that Guichan lacks many features of more advanced GUI libraries (such as GTK, QT). However, this should not be considered a weakness of Guichan but on the contrary a strength of Guichan. When making games, you normally don't need all the features in advanced GUI libraries. They often complicate things and adding a dependency, such as QT for a small platform game doesn't really feel good. Guichan is small but contains all basic GUI features, making it ideal for games.
Guichan is designed for games. This means that Guichan will not take over your game/application when it comes to initialization of external libraries. When making games you normally want to initialize all external libraries yourself. This gives all users of Guichan a freedom that's almost required in game development. Guichan should not be considered a full GUI library, but rather a tool or helper library for game development.
Guichan is designed for games. This means that Guichan comes with a small number of really ugly default widgets. Also, there exists no themes or theme handling for Guichan. Every user of Guichan is suppose to make new widgets by inherit from the standard widgets or by overloading standard widgets functions. This is very powerful and beats all theme based GUIs. If we would implement theme handling, for widgets to be able to look exactly as you want, it would have to be very complex and it would increase the size of Guichan. We believe that theme handling for a specific GUI is nothing a game developer wants to learn when developing a simple game. The knowledge of standard C++ ought every game developer possess that uses Guichan, so no new learning is required (except the API) for using Guichan.
Guichan is designed in a very abstract way making it very easy to extend Guichan for your own needs. It is even very easy to implement new graphics objects making Guichan as portable as ANSI C++ is.
What license does Guichan use?
Guichan comes under the BSD license, and there is a very good reason for the choice of BSD over LGPL (which I believe are the standard licenses for open(free) source library projects). BSD lets you link with Guichan statically, or even include all of the source for Guichan into your own project without linking at all (which would violate the LGPL license). We believe this is something users of Guichan might want to do because of our philosophy of using inheritance and function overloading instead of theme handling.
I don't like the idea of this GUI one bit. Are you aware of any other GUIs I could use?
Sure we are. We made a lot of research before starting this project (just to make sure no other had done exactly the same thing (which might not have stopped us anyway when I think about it, it's fun to program!)). Here is a list of other possible GUIs to use.
For SDL:
- http://www.paragui.org
- http://www.picogui.org
- http://aedgui.sourceforge.net
- http://gigi.sourceforge.net
For Allegro:
For applications:
A portable C++ GUI library designed for games using Allegro, HGE, OpenGL, OpenLayer and/or SDL.
