Hello, I assume this topic has already been debated, but I'd like to by myself. I know many of us use ScaleForm in order to make ingame GUIs, while others like to use custom tools that rely on Flash as well. On our latest game we decided this wasn't optimal (bad memory usage, bad tesselation, low performances, licensing issues...), so we went into a new direction and decided to make an all-c++ solution.
I find this solution to be flawed as well, as it incredibly bloats the final exe size, doesn't allow any easy tweaking without recompilation and code is only comprehensible to other developers, if infinite lists of constants and properties and other boring code can be called comprehensible at all.
My instinct would suggest me that an event-based windowing system that mimics Visual Basic (or the Win concept in which everything is a window), and that connects nicely to some external script would be the best solution. However, some game-specific issues should be taken into account: graphic style for example is unique to each game, so a sort of CSS should exist, but other things like special effects, sounds and animations should be taken into account as well. I'm no CSS expert, nor I know much about Lua for example, but I'm just wondering if anyone got an opinion about this? How do you guys take care of GUIs? And how should a "perfect" system that adapts decently to different games work for you?
I find this matter very interesting, so I hope to receive interesting comments
Scripted GUIs
I recently scrapped my c++ gui and instead implemented a simple windowing system with all rendering done by google chrome (using the berkelium library). This means I can now create my user interface with html and javascript. The windowing system can call custom javascript in the browser, and the browser can fire off events to the windowing system.
Check out the Gwen UI library, its license is MIT, so you can basically do anything with it. Also, the code is very clean and not bloated like every other GUI out there. Check it out at http://code.google.com/p/gwen/
In my opinion, based on what you're saying, you want to use Awesomium, essentially, that should give you all you need. You can use both HTML and CSS with the Webkit library to get the kind of customisation you're looking for. Heres a couple of links to the GUI of a guy who did just that:
http://blog.wolfire.com/2009/05/new-object-palette-window/
http://blog.wolfire.com/2009/10/animation-mixing-ui/
NOTE: I haven't tried this yet, but I will be doing so soon, so I don't know how easy this is to pull off. You could
http://blog.wolfire.com/2009/05/new-object-palette-window/
http://blog.wolfire.com/2009/10/animation-mixing-ui/
NOTE: I haven't tried this yet, but I will be doing so soon, so I don't know how easy this is to pull off. You could
In my opinion, based on what you're saying, you want to use Awesomium, essentially, that should give you all you need. You can use both HTML and CSS with the Webkit library to get the kind of customisation you're looking for. Heres a couple of links to the GUI of a guy who did just that:
http://blog.wolfire....palette-window/
http://blog.wolfire....tion-mixing-ui/
NOTE: I haven't tried this yet, but I will be doing so soon, so I don't know how easy this is to pull off. You could
The berkelium library is free and open-source and is basically the same as Awesomium.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement