I was talking to a guy in the irc channel, but then had to go and he had to go
while I was gone, so here it is. :)
What I'd like to see is a strategic view of the map. The view should be
zoomable, i.e. you click a zoom button to go in or out, or you can select a
region and have it zoom to fit. The view would show a less-detailed version
of the map, possibly using color codes or simple glyphs to mark terrain. It
would show relative troop strengths and disposition, but not the actual units
themselves. So if you have, say, 5 riflemen fortified in a line, it would
show the line, and each point that has a rifleman would have a graphic that
shows that rifleman's actual defense strength (attack strength should show as
0 for fortified units), taking into account terrain and improvements. Zones
of control should be shown as well, possibly with a highlighting similar to
the fog of war highlighting, but the fog of war needs to appear also. Cities
would be shown, but the view would focus on units rather than cities,
although obviously the city bonus for fortified units would be shown in
effect. Attack strength would be shown for sentried and active units (where
active is defined as a unit that will be queued up to prompt for movement,
sentried, fortified, and go-to units don't count) and also auto-attack units.
Units that are go-toing should be marked with where they're going with a
simple line indicating their ordered movement.
Enemy units should be shown in the same manner, i.e. taking into account their
current status. Obviously the client doesn't know about go-to orders, so
that can't be shown. Allied units, peaceful units, the whole shabang, maybe
using color coding to distinguish between them. I'd like enemies currently
in view to be marked one way, and last known position marked another. If an
enemy unit was moving when it crossed through vision, then this movement
should be shown with a vector. For units last seen within the last x turns
(where x is configurable, probably more than 3 or 4 isn't useful, and more
than 1 isn't useful at all if he's on a railroad), then a circle of possible
positions should be shown.
Then several areas need to be highlighted, and this is where it gets a bit
tricky. :) I'd like to see the fog of war. I'd like also to see areas of
control, which can probably be a simple flood-fill where the bounds of the
area are lines of units where very few known enemies intersect the lines.
Areas of control is different than zones of control! Areas of control would
show things like "I control the whole peninsula", or "I've control the whole
gulf". Zones of control should get another rendering, because zones of
control tell you whether or not enemy units can pass through a line you've
created. And finally, borders should be shown.
As a side note, I'd also like a report that shows border movements. A recent
game I played had a guy settling within his border every time, but every time
it pushed my border farther back. We wound up going to war over it, and he's
right, he never settled in my territory, but he pushed my border back, and
wound up settling in an area of strategic importance. A report that shows
border movements over time would reveal this sort of aggression, and if
viewed frequently could help to prevent it before it escalates needlessly.
(I'll be honest, we'd been maneuvering towards war the whole game, there was
any of 3 things that could have set it off and that was just one of them)
Finally, the view itself should have a number of hotkeys for
enabling/disabling certain details. Rather than have hotkeys for every
little detail, I'd prefer hotkeys for sets of details, i.e. disable area
flooding, disable troop dispositions, etc.
In the gtk client, the view should be a report tab like the cities report.
You should be able to double-click (or single-click) a point on the view and
have the main map centered on the point you clicked. In the sdl client, it
should be a splash dialog. No idea about the others.
The basic part of the coding shouldn't be too tricky. :) It seems like the
functions that are used to generate the view can be put in common so the
individual clients only need to worry about rendering it, but the rendering
is probably the biggest part of it.
Then maybe later on it would be particularly nice if we could issue orders to
groups of units through this view, like "move this way for 5 turns and then
fortify again", but that's probably a bit much.
I hope I've been clear, thanks for reading.
Freeciv-dev mailing list