Complete.Org: Mailing Lists: Archives: freeciv-dev: July 2002:
[Freeciv-Dev] Re: A rouge client from the trenches
Home

[Freeciv-Dev] Re: A rouge client from the trenches

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Arnstein Lindgard <arnstein.lindgard@xxxxxxx>
Cc: freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: A rouge client from the trenches
From: "Per I. Mathisen" <per@xxxxxxxxxxx>
Date: Sun, 21 Jul 2002 15:13:14 +0000 (GMT)

On Thu, 18 Jul 2002, Arnstein Lindgard wrote:
> I've been hacking my client a bit. My goal is to make it possible to move
> an infinte number of units in a meaningful way, within a small timeout.

I've had a little time to test this now, and I must say that this is
extremely cool.

My basic complaint about the GUI interface is that it is too much detail.
I don't want freeciv to turn into nethack. It should be possible for a
user totally new to civ games to mostly intuitively know what everything
is about in the client and not feel totally lost in the wilderness of
options. Some of the more esoteric and rarely used features should be
hidden or maybe removed before the patch can be committed.

Some comments on the README:

>  - Applies to:
>    Freeciv GTK 1 client 1.13 using trident_shields only.
...
>  - How to run:
>    civclient -t trident_shields

Before we can even think about committing the patch, it must work with
trident and isotrident also.

That said, it works for me using trident already.

>New Mouse Features:
>----------------------------------------------------------------------
>. <Shift>   Left/Right Click:   Copy/Paste city production.
>                                Defaults to Settler.
>
>. <Control> Left/Right Click:   Quickselect a sea/land unit,
>                                bypassing popups. Repeat once to
>                                select another such unit.
...
>. <Shift>   Middle Click:       Wake up sentries, not focus (moved).

These are nice.

> . Keypad '+' and '-':   Browse group members.
> . Page Up / Down:       Browse groups.
...
> . Movement keys:        Single step Goto (for exhausted units).
> . Arrow keys:           Scroll the map.

Very useful.

> . Insert:               Assign focus unit to last active group.

Does not seem to work.

> . Delete:               Unassign group member(s). (Same as '0').

Why two keys for the same action?

> . Home:                 Focus on your capital.
> . End:                  Focus on your most remote city.

How useful are these, and in particular the last?

> . Keypad '0':           Wake up current unit.

Shouldn't "current unit" also by definition be awake?

> . 6 - 9:                Focus on unit.
> . <Shift> 6 - 9:        Assign Hotkey to unit.

Why not just use battlegroups containing one unit instead?

> . 'R':                  Return & Recover
>                         (ship return to base & sentry)

Nice.

> Some iconography in trident/tiles.xpm.
> ----------------------------------------------------------------------
> . 'V' for veteran.
> . '1' throu '5' to indicate group membership
> . A thing to indicate bodyguard.
> . A flag to indicate mission order (already in file, but shifted).
> . 'B' for building mission.

These are very nice, although I didn't see any A for bodyguard when I
tested it (maybe because I used trident and not trident_shields).

> Popups
> ----------------------------------------------------------------------
> . Things generally don't.

...and I loved that. Though I want to enable autodiplomats a bit
differently. I wish to allow the client to send a DIPLOMAT_AUTO message
instead of a specific action. Then the server can figure out something
useful the diplomat can do.

> . L for Airlift (use menus).
> . N for clean nuclear fallout (use menus).
> . Shift-N for explode nuclear (use menus).
> . Ctrl-Q to quit (use menus). (Too close to Ctrl-W).
...
> . Only the number keys on the keypad can now be used for movement.

I agree with these.

> Removed misfeatures:
> . Client no longer ask server's permission to focus on a unit.

Good. I don't understand why the server should have anything to do with
unit focus in the first place.

> . Exhausted units with activity can be selected with one click
>   instead of two.

Good.

> . Exhausted units remain in focus when specifically selected.

As opposed to...?

> . Goto cancelled if combat occurs.

How is this implemented? In the server, a goto route is cancelled if a
combat would occur twice.

> . Keypad 5 does not end turn. (BUG!).

It does? Here it switches focus between units on the same tile.

> 2. MISSIONS ("Go there. Do that.")

Very useful, but I would like the unit to march off to the place where you
have the mouse point the moment you press the mission order, instead of
waiting for you to click. Makes it even faster, and I think, more
intuitive. Also, you should get an error message if you try to do a
mission action on a place where that action cannot be performed, instead
of going there and then getting the message.

> 3. BATCH COMMAND

Also rather useful, although I am not convinced all the filters are really
needed.

>  If focus unit is a member of a battlegroup, the batch orders only
>  apply to members of that group.

Nice.

>  - Return and Recover:
>    R & R in batch mode always applies to all ships everywhere that
>    are more than 10% damaged, excluding gotos and sentries, but
>    including group members. Those group members will be exluded
>    from scrambling while the return mission is in progress.

I don't like special exceptions like this. The user interface should
follow the rule of least surprise. I would rather this didn't use the "Y"
interface at all, but was a general option, like CTRL-Y and a menu option
"R&R all ships" or something somewhere.

>  - Build Wonder:
>    'Y' + 'B' will make all caravans at current tile build wonder,
>    regardless of any and all filters.
>    (Not when used as Mission order).

Again, I am a bit sceptical of too many of those exceptions. You already
have an "L" filter to do this task.

>  - Wakeup:
>    The filter 'Include Sentries' will cancel Goto's and eXplorers.
>    Sentries and Exhausted units are always included.

? Always included in what?

>  There may be other special cases that seemed obvious when I coded
>  them, but can't remember now.
...
>  The goal is to always minimize the number of keystrokes.

I think a consistent, least surprising and easy to learn user interface
should also be a goal.

>  BODYGUARD
>
>  - Select Bodyguard
>  - Press 'B'
>  - Click on V.I.U.
>  - Optionally press 'J' to join

Very nice feature.

But the bodyguarding unit retains focus, which I found rather annoying.
When a unit is done with what it should do, focus should move on. See also
autojoin comment below.

>  To cancel:
>  - Select either Bodyguard or VIU
>  - Press 'B'
>  - Click on something else

Then click isn't needed in this case and it should be removed. "B"+click
for bodyguard and then just "B" again to stop bodyguarding is more
reasonable.

>  BATTLEGROUPS
>
>  You can have up to 5 groups.
>
>  - Define ground zero with <Shift> 1-5 and mouse pointer
>  - Press 1-5 to focus on zero

Very useful feature.

But I would like all 1-9 to be for battlegroups. Also, it would be nice to
have tile markers used with this to show ground zeroes more permanently on
the map.

Some other things:

"J" for join and "Z" for scramble seem unnecessary. Autojoin seems to me
to be a more reasonable setting.

I don't think batch command "Y" needs to be in the Orders menu.

"Target enemy tiles CTRL+K" in the menu should be a checkbox menu item.

The Orders menu is now really too long. I don't know how to solve this. Is
it possible in gtk to dynamically change which items are in a menu? (ie
not just disable, but remove impossible options)

I haven't looked at the code yet.

Yours
Per



[Prev in Thread] Current Thread [Next in Thread]