General Feedback from 4+ months of usage.
Posted: Sun Apr 09, 2006 16:57
Hi,
I've been using CEGUI for somewhere between 4 and 6 months now and I thought that I'd just give a bit of feedback. I am using CEGUI for the interface to a series of games related tools (map editor, physics editor) that form a part of a larger "game prototyping" system (aimed at developers, not your average joe).
These are my personal findings and I'm not stating that my opinions are the rule by any means! I'm sure that everyones experiences differ, this is just my 2 pence...
My opinion of CEGUI can be summed up as: Rather heavy weight, many nice features, generally flexible, good for tools but I wouldn't use it in a final "end-product" yet.
Memory: It would be *very* nice if you could initialise the CEGUI library with function pointers to custom malloc and free routines. This means that no dynamic allocations should occur prior to initialisation with the custom mem-routines.
Use of exceptions: Not a good idea if you want to maximise the CEGUI userbase in the games domain. Speed issues exist with some compilers when using various types of exceptions. Makes a mess of integrating CEGUI with a scripting language (see notes regarding LUA binding below).
LUA Binding: A good start but need serious work. The judicious use of exceptions throughout CEGUI causes problems with exceptions thrown due to a LUA function call pushing back up to the native code that executed the LUA script - while this behaviour is occasionally useful I would prefer if LUA could handle the exceptional situation itself sometimes. The only way around this (I can see) is to enclose each lua function binding with try/catch blocks converting specific exceptions into lua errors, others into additional return fields (lua functions can return >1 value) and just rethrowing the rest.
(I'm considering solving this by adding new functionality to the already-custom version of tolua++ I'm using to allow keywords in the package file to specify how the various exceptions should be handled for each function).
CEGUILayoutEditor: Again a good start, but I'll agree with other posters on this forum that I'd rather the base feature set be complete than partial support for the basic features and some advanced fancy features in the future.
Skins\Visual Customisation: Good flexibility, but a mess. Numerous config files specifying this and that and no good management tools for them. The forthcoming imageset editor from martignasse looks nice though!
Custom Renderer: Nice & easy to use - got CEGUI rendering through my custom gfx system in no time.
Logging: Ability to hook the CEGUI logging mechanisms to allow support for custom log-file formats\systems.
I hope that wasn't too negative, as CEGUI has really been useful to me these last few months and I am very grateful for all the hard work that Eddie and everyone else has put into CEGUI!
Please feel free to correct me if any of my issues are already addressed in the current version of CEGUI. I also realise that others have already pointed out some of the issues above!
Thanks,
Mike.
I've been using CEGUI for somewhere between 4 and 6 months now and I thought that I'd just give a bit of feedback. I am using CEGUI for the interface to a series of games related tools (map editor, physics editor) that form a part of a larger "game prototyping" system (aimed at developers, not your average joe).
These are my personal findings and I'm not stating that my opinions are the rule by any means! I'm sure that everyones experiences differ, this is just my 2 pence...
My opinion of CEGUI can be summed up as: Rather heavy weight, many nice features, generally flexible, good for tools but I wouldn't use it in a final "end-product" yet.
Memory: It would be *very* nice if you could initialise the CEGUI library with function pointers to custom malloc and free routines. This means that no dynamic allocations should occur prior to initialisation with the custom mem-routines.
Use of exceptions: Not a good idea if you want to maximise the CEGUI userbase in the games domain. Speed issues exist with some compilers when using various types of exceptions. Makes a mess of integrating CEGUI with a scripting language (see notes regarding LUA binding below).
LUA Binding: A good start but need serious work. The judicious use of exceptions throughout CEGUI causes problems with exceptions thrown due to a LUA function call pushing back up to the native code that executed the LUA script - while this behaviour is occasionally useful I would prefer if LUA could handle the exceptional situation itself sometimes. The only way around this (I can see) is to enclose each lua function binding with try/catch blocks converting specific exceptions into lua errors, others into additional return fields (lua functions can return >1 value) and just rethrowing the rest.
(I'm considering solving this by adding new functionality to the already-custom version of tolua++ I'm using to allow keywords in the package file to specify how the various exceptions should be handled for each function).
CEGUILayoutEditor: Again a good start, but I'll agree with other posters on this forum that I'd rather the base feature set be complete than partial support for the basic features and some advanced fancy features in the future.
Skins\Visual Customisation: Good flexibility, but a mess. Numerous config files specifying this and that and no good management tools for them. The forthcoming imageset editor from martignasse looks nice though!
Custom Renderer: Nice & easy to use - got CEGUI rendering through my custom gfx system in no time.
Logging: Ability to hook the CEGUI logging mechanisms to allow support for custom log-file formats\systems.
I hope that wasn't too negative, as CEGUI has really been useful to me these last few months and I am very grateful for all the hard work that Eddie and everyone else has put into CEGUI!
Please feel free to correct me if any of my issues are already addressed in the current version of CEGUI. I also realise that others have already pointed out some of the issues above!
Thanks,
Mike.