[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