[crossfire] Improved/redone client.
Mark Wedel
mwedel at sonic.net
Mon Oct 9 03:10:52 CDT 2006
One of those perennial items on the TODO is an improved client interface.
Unfortunately, seldom are good details provided. I had a discussion with a few
people on irc a little while back on this, and some ideas where exchanged. Note
that this is likely far from a complete list:
==
Standardize on 19x19 map size.
This size was chosen as that the map could still fully fit on lower resolution
systems. Standard size so that map makers know what to design to, and so
players don't have an unfair advantage (if I have a 25x25 map and you only have
19x19, I have more info).
To me, the idea seems reasonable. Having a single map size to supports
certainly makes programming easier. As a user of high resolution displays, that
would seem to leave the map a bit small to me (it has been suggested to make a
'large sized' image set with 64x64 tiles, but that is probably a separate
discussion). It maybe that resizing the images on hi-res systems to be larger
is the way to go, or the client displays fog info in the extra space it has.
==
Make client fullscreen.
Reasoning here is that most games run in fullscreen mode, so it becomes more
like most games. It can also ensure that other applications are not grabbing
keystrokes/button presses (eg, window manager, etc), so if we tell the player to
press a key, we can know for sure that if the player presses that key, the
client gets it. For lots of reasons, would still need to support a windowed
mode of operation.
My thoughts: I personally find fullscreen applications annoying, so would also
use the window mode (I think most people using unix don't expect full screen
apps). While we can run fullscreen, I don't think we can or should attempt to
switch resolution. This does then mean that client could be asked to run at odd
dimensions. I think this issue needs to be investigated further - it may be
possible to make the pointer captive in a non full screen window. I also think
that if we do full screen window, it needs to be pretty clear how to get out of
it (nothing more annoying than an app taking over your system)
==
Standardize on one client
Doesn't make sense to be supporting 3 clients in the current client distribution
alone, plus a few others hanging around out there. This is just more work when
a bug/issue shows up (may need to be fixed in all 3, or maybe only shows up in
one client, requiring digging in there, etc). So in the trunk, should just use
the gtk2 client, and get rid of the x11 and gtk1 client (note, they would still
exist in the 1.x branch). Related to this, SDL mode in gtk2 client should
probably just go away (opengl will give us the features we need long term)
My thoughts: As the writer and user of the gtk2 client, I'm biased, but keeping
the gtk2 clients seems fine to me. I know there are complaints about it, as
well as bugs, but having 3 supported clients I don't think really helps things
much (it becomes too easy to just not make improvements or fix bugs and keep
using the gtk1 client).
It may also be that a completely new client should be written (see point
below) so that the gtk2 client goes away. But whatever is done, I think going
forward, it certainly makes the most sense to only officially support one
client (people could unofficially continue to support the x11 client, but in
that case, the developers making changes to the protocol or official client
wouldn't have to update it, just like the unofficial clients out there now)
Better UI interface
==
Improve client UI
This is often discussed, but I hear few concrete suggestions.
I'll be the first to admit I'm not wholly satisfied with the gtk2 client. Yet
at the same time, I'm not exactly sure what I'd change to make it better.
Here are various thoughts and some suggestions I think people presented:
- Pop up window for inventory handling (one gets so many items in crossfire,
that the normal scrolled area really isn't sufficient)
- Maybe use themes to make the appearance more that of a game and less that of
an application (font size, background colors, etc)
- Figure out what information is important to display, and what isn't. In
particular, I'm thinking of the stats pane here - most often I use the exp pane
to see where I am at relative to leveling, less so the resistances, and seldom
use the overall stats one, since stats don't change very often. Could we maybe
use icons instead of string names, and scrollbars instead of numbers to
represent progress? Add popup hints so if you hover over the value, you get the
full info?
- Improved help - I don't think the help in the client has much useful content -
I think a lot of the information currently in various places could make it to
the client so it has a real help system.
===
Thoughts/comments?
More information about the crossfire
mailing list