Todd,
My original goal for the Text UI in my MORG was to use a simple Text/Keyboard combo for everything other than First-Person Player Movement with a Mouse|Joystick. However, I acknowledged the benefits of point n' click and desired the ability to change the UI from the server side.
Internet Browser is what popped in my head, so I started to designing my Text UI based on my experience with Web Browsers.
Full HTML Parsing and Formatting was the first
. Too much work and I'm too lazy. So I settled on a simpler more specific set of tags using `DBXML - an XML Document Parser Plugin for DBPro by Thomas Cheah, Bad Nose Entertainment. (thomascheah@badnose.com). I refer to the system as Active Text Markup (ATM) and its simple in its design. ATM is practically just a pointer and text within boundboxes System. No sophisticated Skin's, icons, and animations. IMHO, any GUI Gadget can be represented by Text alone.
After a few experiments I quickly realized that rendering Text directly results in super low frame rates, so I'm using a lot of bitmap/image blit full screens of text to increase performance. I have written a few other GUIs in the past, and the major difference between ATM and a GUI is the lack of loading and drawing icons and gadgets.
Quote: "So far, my main "global events" are based on an active part, moving part and a "mouse over" part. But, those events are still dealt with internally. "
Very very Interesting. ATM is a Pointer and Gizmos.
* Pointer is a Cursor controlled by Mouse/Joystick/Keyboard or other input device.
* Gizmo is Active Text Control (AKA Gadget in other GUIs). It has its own Boundbox, ViewPort, Events, Behaviors, and Actions.
** Gizmo Boundbox a rectangular area around text used for collision detection with Pointer.
** Gizmo Viewport a rectangular area used to display all or portion of text (Future use, currently not used.)
** Gizmo Event is the result of collision and conditional checks between Pointer and Gizmo.
** Gizmo Behavior is hardcoded|scripted function executed during a event on the Gizmo and its relatives. Defines the `Behavior` of the Gizmo.
** Gizmo Action is Script that is executed usually during a 'Click' event on external data.
ATM will simply be too plain for other's games, so I will not be advertising it. To make it useful for a media previews as a in-game editor, I will be adding functions that generate clickable image previews for textures and models. Thus it will not be completely devoid of graphics.