This is the mail archive of the xconq7@sources.redhat.com mailing list for the Xconq project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

UI proposal


I've been looking at the tcltk and SDL interfaces and thinking about
some of the suggestions for the Xconq UI.  Then I fired up Glade (the
GTK+ UI designer) and tried to figure out what the interface should look
like.  I have a screenshot of the result at:

http://homepage.mac.com/lmpeters/gtk-xconq.png

DON'T PANIC!  This screenshot does NOT, on its own, illustrate what I
was thinking about!  What it tries to illustrate is how the interface
could have several collapsible panels that may appear around the main
window.  The screenshot shows all of those panels at once, which I think
few people would actually want.

Using GTK+/GNOME, it is fairly easy to make menus, toolbars, etc.
detachable, so that something on the top of the screen could be moved to
the bottom of the screen or be made into its own window (I think tcltk
can do this with menus).  I assume that it would be possible to do this
with SDL (since nobody wants Xconq to look like an Office app).  I also
assume that, using SDL, these panels could be revealed and hidden with
little fuss.

The panels shown are listed, starting at the upper-left corner and
proceeding counter-clockwise:

* Messages:	This panel would serve the same purpose as the "Notices of
events and other info" panel in the tcltk interface, except that error
messages ("Can never do this!", "Out of ammo!", etc.) would appear in
the status bar on the bottom of the screen instead of here.

* Units:	This panel would list all units currently owned by the player. 
Optionally, it could be restricted to show only certain units, such as
those that have some ACP's left.

* Details:	This panel would show most of the same information as the
"Details about the current unit" panel in the tcltk interface.  However,
it does not show any of the information that might be unrelated to the
unit.
It is worth noting that, in this UI, the Units panel easily allows a
player to use semi-automatic AI control.  Simply give a unit a plan, a
goal, and/or a task, and the AI code would take it from there.  I would
imagine that, if the player selected a goal such as "Hold area" or "Move
to", additional fields would appear to store the relevant information. 
I don't know how that would be accomplished in SDL, but I know that
Ximian Evolution does it using GTK+ 2.

* Stats:	This panel would show any of the following numbers that could
apply to the unit: ACP, HP, Size, Morale, and CXP.  If any of these do
not apply to a unit (e.g. it does not act, it only has 1 HP, it's not
advanced, etc.), it would not show up.  If, for some crazy reason, the
selected unit does not have any of those properties, this panel would
not appear at all.

* Occupants:	This panel would show a list of the units that are
occupying the selected unit.  They would most likely show up as small
icons followed by the name or number of the unit.  If the selected unit
has no occupants but could, it would show up as an empty frame.  If the
selected unit has no occupants and cannot have any occupants, the panel
would not appear at all.

* Tooling:	This panel would show the icons for all units that the
selected unit could potentially build, followed by how many TP it has
towards that unit out of how many are needed to build it.  If it cannot
build any units that require tooling (usually either because it cannot
build anything or because tooling is not required for anything in the
game), the panel would not appear.

* Materials:	This panel would list all materials that the selected unit
can store, followed by how much it is storing out of how much it could
store.  If an icon is associated with the material, the icon appears
instead of the material's name (the player could hover over the icon to
get a tooltip that reveals the name of the material).  If the unit
cannot store any materials, the panel would not appear.

* Build:	This panel would list all types of units.  If the selected unit
can build other units, the option menu at the top could be used to
restrict the panel to only show the units that the selected unit can
build.  Other options on that same menu would allow the player to show
only those units that could be built without additional tooling, tech
development, and/or advances.

* Advances:	This panel would list all types of advances.  The option
menu at the top could be used to tell it either to show all advances, or
to only show advances that are available at the moment.  Perhaps it
could also restrict the listed advances to those that have (or have not)
yet been discovered, or those that have specific effects.

* Technology:	This panel would list all units that require tech points
to be build, and how many tech points the side has versus how many it
needs to build it.  Units that don't require tech points would not
appear here.  If no units require tech points, this panel would not
appear at all.


Obviously, there are a few things that Glade did that I didn't want
(although I assume that, if I really meant to code this thing, I could
have changed them).

First, I imagine that any of the icon lists would, rather than showing a
large icon and text underneath (a.k.a. "large icon" style), they would
show a small icon and text to the right (a.k.a. "small icon" style).

Second, there should actually be entries in all of the option menus (for
example, the option menu next to "Plan" would have options Passive,
Offensive, Defensive, Exploratory, Colonizing, Improving, and Random).

Third, there should be more appropriate icons throughout the UI.  The
icons I used here are all stock icons from Ximian Desktop 2 (the little
house icon appears wherever I couldn't find an icon that even remotely
resembled what I wanted), and are inappropriate for Xconq.

Finally, Glade does not provide any easy way to hide dock items (so that
I could illustrate what it would look like when only a few panels are
active).  As a result, this (in my opinion) elegant design ends up
looking like the interface from hell.

Any questions or comments?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]