User Interface Ideas:
I'll start out with the short version: Copy the interface system of World of Warcraft as completely as possible.
Long version: World of Warcraft (WoW) has an extremely customizable user interface. It is built on a combination of 3 things:
- XML Layout Definition - Simply a set of XML files defining the core of the interface. These follow object-oriented inheritance to allow for predefined UI elements. In the XML definition you define the layout, art assets, and behaviors through a robust set of tags. These are loaded when the game starts, or anytime a scripting language call is executed.
- Lua Scripting - Since the XML definitions are static, dynamic behavior is introduced through a Lua scripting runtime. With a combination of Lua built-ins and Blizzard-provided libraries, the client UI can perform some fairly amazing feats. Of course, in this sort of MMO environment things are heavily sandboxed, and interaction outside of sanctioned methods is minimal.
- Assets - Art assets, font assets, sound assets, etc. Simple enough.
The beauty of this is that when you install WoW, you are installing along with it the complete source code to the default UI. Modification is easy, accessible, and, most of all, encouraged. The add-on system allows for modular expansion of functionality, instead of forcing users to manage conflicting modifications to the core UI files, which would optimally remain unchanged.
- One of the problems with our current UI system is that it is all hardcoded to some degree and is very difficult for even us to change... time consuming. So we really want to make it easier on ourselves. And, in the process, open up the ability to skin and modify the UI by the residents. The plan is to make the UI more data driven so it loads some config files (XML) and builds the UI based on what they say. If it was totally data driven, then much of what you want could be done. But not all... like detachable windows would be extra stuff, and would have to come later. (Andrew Linden, ~9/18/05)
- ...there are a lot more UI changes for textures/materials coming in the future, and I'm sure it'll be much more intuitive when we get it all sorted out. (Yedwab Linden, 4/17/06)