This is the mail archive of the
xconq7@sourceware.cygnus.com
mailing list for the Xconq project.
Re: Some proposals to implement *sieges*
- To: campo@mailbox.difi.unipi.it
- Subject: Re: Some proposals to implement *sieges*
- From: Stan Shebs <shebs@cygnus.com>
- Date: Mon, 20 Apr 1998 20:00:29 -0700
- CC: xconq7@cygnus.com
From: Massimo Campostrini <campo@mailbox.difi.unipi.it>
Date: 17 Apr 1998 17:09:08 +0200
Now that 7.2 is released it's the time to discuss all those wild
ideas for 7.3.
IMHO, one big fat feature missing from xconq is a way to implement
sieges. In many historical periods sieges were a focal point of
warfare; it is currently impossible to design a game approximating
them even roughly.
I agree. There are surrender parameters, but they don't seem to be
very effective in practice; while you can accumulate units around
the besieged, the effect is additive rather than multiplicative
as it should be.
1) Cities and/or fortresses at full strength should be (almost)
impossible to capture and won't surrender. No new GDL needed.
2) Damaged units should be easier to capture and more likely to
surrender.
UnitTypeProperty: `capture-damage-effect' INTERPOLATION-LIST
`capture-chance' is multiplied by this.
UnitTypeProperty: `surrender-damage-effect' INTERPOLATION-LIST
`surrender-chance' is multiplied by this.
I think this makes a lot of sense.
3) We should be able to starve out the defenders. We need a way to
decrease production of certain materials when hostile units are close.
IMHO this is the most important and difficult point to be solved.
One possibility is to use ZOCs; e.g., if a city is in the ZOC of an
hostile infantry, its productivity is reduced; if it's in the ZOC of
many hostile units, it drops to zero. We need a material-dependent
productivity drop; e.g. pirate ships disrupt trade (gold production)
but don't affect (as much) food production. To avoid a 3D table,
let's factor it into two tables
Table: `zoc-unit-prod' U1 U2 -> N
Table: `zoc-material-prod' U1 M -> N
The productivity of M by U1 is then
productivity[U1,T] - sum(U2) zoc-unit-prod[U1,U2] * zoc-material-prod[U1,M]
where the sum runs over all the units exerting a zoc over U1; the
result is then corrected by `productivity-min' and `productivity-max'.
I like this too, at least the concept. The requirement for materials is
not ideal, one could imagine material-less games that would still want
to have sieges.
4) We could have explicit effects of materials over surrender
Table: `surrender-material-effect' U M -> INTERPOLATION-LIST
(are interpolation-list valued tables implemented?)
No, sorry, table entries have to be integers.
One of the underlying problems is deciding *when* a siege is supposed
to be happening. Should we say there's a siege when a unit is
surrounded in all directions? Do the surrounding units have to be of
particular types? Six is a lot of units, especially since they'll
block all the nearby terrain, which is not how sieging really works at
Xconq's multi-mile scales - so should one unit be sufficient? What if
the unit were in the same cell as the intended besieged? Should there
be a special type of action or task?
Stan