5 ms·
Many game developers seem to build their own UI libraries from scratch. Wouldn't it make sense to use Chromium Embedded Framework[0] or Awesomium[1] instead? I
by marti 11y ago
Many game developers seem to build their own UI libraries from scratch. Wouldn't it make sense to use Chromium Embedded Framework[0] or Awesomium[1] instead? I haven't used them myself (yet), but writing a UI in HTML+CSS sounds a lot easier than learning a new API.
[0] https://bitbucket.org/chromiumembedded/cef https://bitbucket.org/chromiumembedded/cef
[1] http://www.awesomium.com http://www.awesomium.com
- deleted 11y ago[deleted]
- pjmlp 11y agoAAA studios use Flash. http://gameware.autodesk.com/scaleform http://gameware.autodesk.com/scaleform
- statico 11y agoOr HTML. http://coherent-labs.com/ http://coherent-labs.com/
- pavlov 11y agoWriting UIs in HTML+CSS is only easy for people who know it already, to be honest. It's not a great UI layer. I've been using it for almost 20 years now, and I'm still easily confused by the completely unintuitive interactions of CSS parameters like floats and clears, position:relative, box model nuances, etc. (I'm sure that someone is now itching to chime in and tell me I'm not a "real web developer", sort of like the argument on HN the other day about whether "real developers" are allowed to write <br/> ...) Game development teams don't tend to include CSS wizards. Writing a new API can be a reasonable choice given the expertise available... Not to mention the substantial runtime overhead of loading a complete browser just to display some UI widgets.
- supercoder 11y agoHTML is not good for UI.
- hugoamnov 11y agoYou are somewhat right in that HTML and CSS heavily inspired what kiUi became. But there are two major concerns that are not adressed by your solution : - Embedding a whole browser in your app just to display a few widgets is not my definition of "lightweight" - Often coding UI in native code (C++) makes a lot more sense, integrate with exiting code in a much cleaner way Game developpers would much less tend to build their own libraries from scratch, if there was at least one that satisfied all of these 'basic' requirements : lightweight, skinnable, auto-layout
- marti 11y agoI agree, embedding a browser doesn't seem lightweight at all. What it does give, however, is a common and comprehensive framework for laying out and styling your UI elements. Every web developer can now be a game UI designer. Some of the benefits I see with HTML+CSS(+JS) based UI: * Comprehensive feature set * Easy prototyping * Easy modding * No recompilation required * Web full of documentation & examples * Common skill for developers/designers The main disadvantage is probably the performance hit of having a full-blown browser engine in your game, but it seems to work OK for AAA games. I believe Anno 2070 uses Awesomium for some of its content: http://www.posidyn.com/games/anno2070/anno2070-09.jpg http://www.posidyn.com/games/anno2070/anno2070-09.jpg