[crossfire] GTK V2 client default layout and map size

Raphaël Quinet raphael at gimp.org
Thu Feb 21 08:25:29 CST 2008


Unfortunately, it looks like I never received Mark's reply to my previous
message due to some problems with my mail server, although I see his
message in the list archives.  So I will quote from the archives instead:

In a message lost on Fri Feb 15 00:34:48 CST 2008, Mark Wedel wrote:
>   One nice thing right now is that all the layout work is done in glade.  This 
> makes it very easy to try different things, but also makes it very easy to add 
> onto the layout.  So while things could be done better, I'd want to make sure we 
> don't drift away from also being able to manage the layouts within glade. 
> Having thousands of lines of handwritten code to handle ideal layouts may be 
> nice from an end user perspective, but starts to get really unmanagable from a 
> developer perspective.

I agree that designing a fixed layout with handwritten code is not a good
solution.  However, this would be less of a problem for a layout that is
entirely customizable by the user (the user can add/remove columns and can
place arbitrary elements in each column).

The ideal solution in this case would be to use custom widgets for the
docks and dockable items, and to have them supported by glade.  I will have
a look at how difficult this would be.

>  At the same time, the first time a person runs the client, popping up some 
> config options may still not be a bad thing, as right now, for lots of the 
> config options, the client chooses defaults which may not be ideal.

Sure.  On the other hand, a first-time config is not ideal for those who
share a home directory between several machines with different screen
sizes.  So it would still be nice to have the freedom to re-arrange the
layout by dragging widgets around.

>   I'd make some adjustments even on those key points - inventory can/should be 
> done better.  Its been discussed, but what is really needed is ability to make 
> up a custom list of objects I care about.  In combat, there are probably less 
> than 20 items I really need to see in my inventory - things like certain scrolls 
> and potions, and maybe a few different weapons.  I don't need to see all my 
> items, and in fact, seeing all my items often makes it difficult to get to the 
> ones I really need.

We already have tabs for the full inventory and for items that are applied,
cursed, magical, etc.  It would be nice to add another tab that would be a
"filtered inventory" or maybe a "quick pick" list.  But I am wondering how
to design a proper user interface that would allow the user to select what
should be shown there.  Maybe another tab, pop-up window or drop-down menu
showing the full inventory with checkboxes or as a multi-select list?  And
then only the selected items would be shown.  But maybe the filter should
be based on categories of items instead of single items?  Otherwise it
would be tedious to reselect the items each time you pick up or drop
something.

> > Most important (sorted by order of importance):
> >   - HP/SP/Gr/Food bars
> >   - range (current spell or bow) - important if I have the wrong thing active
> >     and I am wondering why the monsters around me are not harmed
> >   - protections (percentages for all current protections, armor) - important
> >     especially when they change because I have been hit or a spell expires.
> 
>   Pretty much agree.  But I also think a better way to manage the protections is 
> needed.  While I want to be able to see them, being able to easily notice that 
> my resist fire has gone from 90 to 20 may be difficult.

I think that I suggested a solution a long time ago: highlighting the
changes for the protections.  Basically, every time a protection changes
(goes up or down), the corresponding number would be highlighted in a
different color (e.g., green for up, red for down) and then slowly fade
back to the default color (black in most themes).  So if your protection
goes down, it would be highlighted in bright red for a very short time,
then turn to normal red and slowly fade to black (over 2-3 seconds).
The same code could be used for stats, skills experience, etc.

>   Ideally something like a spell monitor would be nice - protections on my 
> character are almost certainly controlled by various potions the character 
> drinks.  Because the duration of these potions can not really change, it is a 
> fairly simple matter for the server to inform the client that 'Joe drank a 
> potion of fire resistance, it will last for 30 seconds'.  Clearly it would be 
> done in a more concise term than that, but you get the point.
> 
>   So maybe some space in the statbar area could be used for this.  A simple 
> solution would be to use different icons for the different resistances/spell 
> effects, and the client draw a little stat along with the icon, so one can see 
> how much time is left on the spell.

That would require a bit more coding effort, but that would certainly be
nice.  And it could also be combined with what I suggested above.  The
main thing would be to pass the (estimated) timing information from the
server to the client.  Once this information is available, we could think
about various ways to make it visible in the client: decreasing vertical
or horizontal bar, text or image that changes color, animated shield
symbol that spins slower and slower, simple text-only message that is
displayed a few seconds before the protection expires, countdown for the
last 5 seconds, etc.

> >   - AC
> >   - damage
> >   - speed
> >   - weapon speed
> >   - WC
> 
>   While the above are handy, they also typically are not things that change in 
> combat, so I don't really need to see them in a glance.  At some point, less may 
> be more - show me the data I care about, and don't show me other data, even if 
> there is space for it, because it can then become harder to pick out the data I 
> do care about.

That's right, they are less important.  I listed them because they can
(rarely) change during combat, for example if you have no protection
against slow or if your equipment is hit by acid.  But I agree with your
comment.  When these things happen, I am usually in trouble anyway and I
will probably focus more on my HP and on finding a way out than on how
these values are changing.

So the things that are the most important and should be displayed at all
times are the HP/SP/Gr/Food bars and range (current spell or bow).  If
possible, also display the protections although this could be in a tab
that can be replaced by skills or other stats like AC, WC, speed, etc.
Basically, I would be happy with the gtk v2 layout if the range info was
visible permanently instead of being buried inside a tab with other less
useful information.  Then I could choose to display the tab with the
protections (if I have some temporary ones) or with the skills exp (if I
am in a party and I want to check if I gain exp in the right skills).

>  A nice effect of a window is that it can be made persistent if I have enough 
> screen real estate.

That's right, but this also has a cost: a top-level window has some
decorations that can take valuable space on smaller screens.  So if you
have a small display, then it is better to have as much as possible
inside a single main window.

>   Last note, unrelated to layout, but related to usability, is that inventory 
> control should really get an overhaul - in addition to a 'favorites' list, the 
> fact that there are various shift/control left/right click combos to do certain 
> things is just insane.  My suggestion is left click examine, middle click apply, 
> right click brings up menu with all sorts of other options (lock/unlock, drop, 
> mark as favorite, mark as object for things like flint & steel + torch combo, 
> and so on).
> 
>   Shift left-click could be drop - still not hard to drop stuff then, as you 
> could keep your finger on the shift key.  And there could still be other obscure 
> control/alt/whatever combos to do a lock or mark or favorite item thing quickly, 
> but having that default is hardly user friendly.

I couldn't agree more.  All options that are currently hidden behind
some strange combinations of button clicks and modifiers would be much
more discoverable by the users if there was some kind of context menu for
the inventory.  This would solve the problem of defining favorites (well,
at least for single items, maybe not for categories of items) and it would
also provide room for expansion for all other actions that we might add in
the future.

-Raphaël



More information about the crossfire mailing list