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

Reply via email to