Designing Games with Xconq - Vision Parameters

Go to the first, previous, next, last section, table of contents.

## Vision Parameters

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!

- Seeing All
- Coverage
- Setting the Initial View
- Vision Range

### Seeing All

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!

### Coverage

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.

### Setting the Initial View

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!

### Vision Range

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.

Go to the first, previous, next, last section, table of contents.