Vision is an important part of Xconq. Information need not come for
free in your game design, and you can design the parameters to control
how much players can get. The possibilities range from total knowledge
as in board games, where nothing is secret except the enemy's heart, to
games where much of the play hinges on who knows what, and when.

When deciding what visibility model to use, keep in mind that one of the
hallmarks of games in the Xconq genre is the exploration of the
world during the initial phase of a game. Not only do many players
enjoy the adventure of exploring a new world, but the progress of
exploration servers as a handy note-taking device for players searching
for other players. If all the terrain starts out visible, but the
location of the enemy is unknown, it can be difficult to keep track of
what's been examined!

The simplest thing to do is to set see-all to true. Then
every player sees all the terrain, everybody's units, everybody's
occupants, the whole world and everything in it. This makes Xconq
like a conventional video or board game, which is sometimes just what
you want. Also, since the view matches the world, the game is simpler
for players, who need not concern themselves with possibly out-of-date
information. Finally, see-all is more efficient in time and
space, since the general visibility calculations need never be done or
recorded. Many games include see-all as one of their variants.

You may also find see-all to be a useful game debugging aid,
since you can watch what is happening everywhere in the world. But,
remember that any AIs will most likely adjust their strategy and not
bother with patrolling or guesswork about the enemy, and you won't be
able to debug the other viewing parameters either!

Still, much of the fun in Xconq is the potential for surprise. The
theory of visibility in Xconq is that each side has a layer of
coverage, which basically just counts the eyeballs looking at each cell.
As your units move around, the coverage in each cell goes up and down.
Any cell with a coverage of zero is not currently being viewed by any of
the side's units.

The unit property see-always is useful for units like towns,
which are unlikely to disappear secretly.

These two parameters apply recursively, so for instance a city could be
see-always and see-occupants,
while a building in the city is see-always and not
see-occupants, with the net effect that units
inside a city can be seen by everybody,
but not when they enter a building.

The initial view represents the knowledge assumed to have been gathered
over the period of time preceding the game. By default, players start
out knowing only the immediate vicinity of their initial units and
people.

One way to change this is to set terrain-seen to true, or
to add it as an available variant for the game; in either case, all
terrain in the world becomes known to all sides. This is good for
realism, especially for real-world games since about 1900, when
very little of the Earth remained unexplored. terrain-seen
can radically change the dynamics of a game; for instance, the
standard game changes from explore-and-conquer to all-out combat.

If making everything visible is too much, Xconq lets you set a
radius initial-seen-radius around each initial unit, within which
the unit's side knows everything. This is useful if your initial units
are somewhat scattered, so as to avoid gaps of unknown terrain in
between. Also, any people on your side view both their cell and all the
adjacent cells.

Once you've chosen how much terrain is visible, you can control which
units are visible. The see-always property mentioned above
affects initial visibility, but in addition there is already-seen
and already-seen-independent, which apply to units on sides or on
no side, respectively. These properties are percentage chances, so you
can randomize how many are known. For example, in peacetime everybody
typically knows the location of a navy's surface ships, but when the war
starts they scatter to sea and operate more securely, so for those
see-always should be 0 and already-seen should be 100.
However, submarines are always more secretive, and perhaps only 1/4
are known to other sides, so an already-seen of 25 makes sense.
Another example might be monster's lairs, whose positions might be
known by reputation, but if something happens to them, the news does
not get flashed around the world!

The default vision range (vision-range) is 1, which basically
means that a unit can see into adjacent cells but no further. You can
set this to higher values, which is useful for tactical- and
person-level games with line-of-sight (LOS) rules.

You can also set the vision range of a unit to 0, which means that it
can only see things in its own cell. However, as a special case, when
such a unit enters a new cell, Xconq will show the terrain of each
adjacent cell, but not any units that might be present. This is so
players can decide which way to move without having to plunge blindly
into unknown terrain or do some sort of awkward "adjacent cell
examination" action before moving. This only provides information
about terrain and units that are seen if the terrain is seen.