Originally found at: http://gameai.com/strat.thread.html.
Its mostly intact, with just a few of the long usenet headers striped so it'd
format nicely in the pre block.
A-name links to sections I found particularly interesting: Fire map analogy
left off here
Hello Everybody: 7/15/95
Here's the second summarization of the excellent "Recognizing
Strategic Dispositions" thread, a followup containing posts made since
my original summarization posted on 6/12/95. As before, if I missed
any posts I apologize; let me know and I'll fix it in future summarizations
(if there's any demand for such).
The posts are presented essentially as is, with some *minor* editing
on my part for formatting.
Here are the e-mail addresses for those contributors whom I have.
Again, my profound apologies if I missed anybody; PLEASE let me know
and I'll correct this forthwith:
Uri Bruck (bruck@actcom.co.il)
Marc Carrier (mcarrier@bnr.ca)
Richard Cooley (pixel@gnu.ai.mit.edu, pixel@usa1.com)
Owen Coughlan (biggles@gmgate.vircom.com)
Dennis W. Disney (disney@mcnc.org)
Graham Healey (grahamh@oslonett.no)
Neil Kirby (nak@archie.cb.att.com)
Alexander Marc (903022@student.canberra.edu.au)
Andrae Muys (a.muys@mailbox.uq.oz.au, ccamuys@dingo.cc.uq.oz.au)
.oO FactorY Oo. (cs583953@lux.latrobe.edu.au)
Christopher Spencer (clspence@iac.net)
Viktor Szathmary (szviktor@inf.bme.hu)
Daniele Terdina (sistest@ictp.trieste.it)
Robert A. Uhl (ruhl@phoebe.cair.du.edu)
Will Uther (will@cs.su.oz.au)
Steven Woodcock (NoSpam_ferretman@gameai.com)
Hopefully this will spark a renewal of the original thread and prove to
be informative to all concerned. I know that *I* have found this to be
this most illustrative and informative thread I've ever seen on the Net;
this is truly where this medium shines.
Enjoy!
Steven
Andrae Muys (ccamuys@dingo.cc.uq.oz.au) started off this
thread on May 9, 1995....
==============================================================================
I am currently trying to write a game that will provide a computer
opponent in a computer wargame. I intend eventually to incorporate
relitivly complex game mechanics such as can be found in commercial table
top rules systems. However the current project is nowhere near as
extensive with *extremely* basic rules and mechanics. However as each
unit may still move once each turn, and a number of distances the
branching factor puts the CHESS/GO thread to shame. In fact a lower
bound calculated from rules far simpler than I intend to use ended with a
branching factor of 2.6^8. A simple PLY search is therefore out of the
question. Brainstorming suggested that by abstracting the battlefield
into three frontal sections and maybe a reserve leaves a basic set of
rules with a branching factor of approx 16(much more manageable).
However to implement this the AI needs to be able to recognise what
constitues a flank/centre/rear/front etc... From practical wargaming
experience this is something that is normally arrived at by intuition.
Surely it is a problem which has been faced before and I was wondering if
there was any theory/code/code examples which I might use to build
such an engine.
In the meantime I intend to start on the AI assuming that a way can be
found to recognise such stratigic dispositions.
Thanks in Advance.
Andrae Muys.
==============================================================================
Andrae Muys (ccamuys@dingo.cc.uq.oz.au) wrote:
: I am currently trying to write a game that will provide a computer
: opponent in a computer wargame. I intend eventually to incorporate
: relitivly complex game mechanics such as can be found in commercial table
: top rules systems. However the current project is nowhere near as
: extensive with *extremely* basic rules and mechanics. However as each
: unit may still move once each turn, and a number of distances the
: branching factor puts the CHESS/GO thread to shame. In fact a lower
: bound calculated from rules far simpler than I intend to use ended with a
: branching factor of 2.6^8. A simple PLY search is therefore out of the
: question. Brainstorming suggested that by abstracting the battlefield
: into three frontal sections and maybe a reserve leaves a basic set of
: rules with a branching factor of approx 16(much more manageable).
: However to implement this the AI needs to be able to recognise what
: constitues a flank/centre/rear/front etc... From practical wargaming
: experience this is something that is normally arrived at by intuition.
: Surely it is a problem which has been faced before and I was wondering if
: there was any theory/code/code examples which I might use to build
: such an engine.
: In the meantime I intend to start on the AI assuming that a way can be
: found to recognise such stratigic dispositions.
: Thanks in Advance.
: Andrae Muys.
Andrae:
Glad to see I'm not the only one wrestling with this problem! ;)
Your approach to break things down into 'front', 'flank', and
'rear' makes sense and seems like a reasonable simplification of the problem.
A first-order definition of each might be:
front -- Where the mass of the enemy units are known to be. The
direction I want to attack.
flank -- Any area in which there are fewer (1/3 ?) as many enemy
units as the area designed as 'front'. (Note this is
purely arbitrary, based as much on prior experience as
anything else.) Perhaps also selected based on natural
defensive terrain (i.e., oceans or mountains).
rear -- Any area in which no (known) enemy units are operating,
or an area completely surrounded and controlled by me.
These definitions work by identifying the front, then extrapolating
from that. As enemy units move around, become detected, attack, etc.,
the 'size' of the front will likely grown and shrink, forcing similar changes
to the flanks (especially) and perhaps to the rear areas as well.
One problem I can think of off the top of my head is how to handle
multiple front situations; there's at least some possibility of overlapping
definitions, meaning that some precedence order must be established.
Special exceptions will also have to be made for overflying enemy aircraft
and incursions by enemy units of various types. (Example: If the enemy
drops some paratroopers into your 'rear' area, does it automatically become
a 'front'?)
In extreme situations of mass attack, I could see virtually the entire
play area being designated as a 'front' (imagine the Eastern Front in
WWII), which of course makes your branching problem worse. On the other
hand, attempts to continually minimize the size of the front will cut down
on the branching options, but might result in poor strategic and tactical
choices (i.e., the entire German army focuses on capturing Malta, rather than
overrunning Malta on its way to North Africa).
More brainstorming as I come up with ideas..............
Steven
==============================================================================
In article <3onpj8$lbc@theopolis.orl.mmc.com>,
woodcock@escmail.orl.mmc.com (Steve Woodcock) wrote:
> Andrae Muys (ccamuys@dingo.cc.uq.oz.au) wrote:
> : I am currently trying to write a game that will provide a computer
> : opponent in a computer wargame. I intend eventually to incorporate
> : relitivly complex game mechanics such as can be found in commercial table
> : top rules systems. However the current project is nowhere near as
> : extensive with *extremely* basic rules and mechanics. However as each
> : unit may still move once each turn, and a number of distances the
> : branching factor puts the CHESS/GO thread to shame. In fact a lower
> : bound calculated from rules far simpler than I intend to use ended with a
> : branching factor of 2.6^8. A simple PLY search is therefore out of the
> : question. Brainstorming suggested that by abstracting the battlefield
> : into three frontal sections and maybe a reserve leaves a basic set of
> : rules with a branching factor of approx 16(much more manageable).
> : However to implement this the AI needs to be able to recognise what
> : constitues a flank/centre/rear/front etc... From practical wargaming
> : experience this is something that is normally arrived at by intuition.
> : Surely it is a problem which has been faced before and I was wondering if
> : there was any theory/code/code examples which I might use to build
> : such an engine.
> : In the meantime I intend to start on the AI assuming that a way can be
> : found to recognise such stratigic dispositions.
>
> : Thanks in Advance.
> : Andrae Muys.
>
> Andrae:
>
>
> Glad to see I'm not the only one wrestling with this problem! ;)
Seems like there's a couple of us....
> Your approach to break things down into 'front', 'flank', and
> 'rear' makes sense and seems like a reasonable simplification of the problem.
> A first-order definition of each might be:
A friend here (richard@cs.su.oz.au) I was discussing it with actually came
up with a different solution. (based on two tanks on a board moving
pieces about - the game Bolo
http://www.cs.su.oz.au/~will/bolo/brains.html)
you define your 'center', their 'center' and the board 'center'. Anything
closer to your center than theirs is yours and can be taken. If they take
it back then it takes you less time to re-take than it takes them - if
they bother to take it they lose more time than you.
The idea is to
i) move your center towards the center of the board, then
ii) move your center towards their center, always keeping it between
their center and the center of the board. This should push them off the
board.
the defintion of 'center' is tricky. It's more a 'focus' than a
center. At the moment we have a couple we're looking at:
- The modal position of all your pieces. (mean would be horrible if
you get split in two somehow)
- The average position of your tank
There is also one other interesting piece of info we've come across. It
involves finding neighbours.
Most people would say that the 'Y' in the following diagram is not between
the 'X's:
X X
Y
Whereas, they would say that the Y is between these two X's:
X X
Y
The definition we found for 'between' or 'blocking' and hence allows you
get neighbour (nothing is between) is as follows.
i) draw a circle between the two items such that the items sit on either
end of a diameter of the circle.
ii) If there is anything inside that circle it is between the two items
otherwise it's not.
We thought of defining front as that section 'between' the two centers.
This doesn't really handle multiple fronts, but then the game only really
has two moving pieces which makes multiple fronts difficult anyway.
Looking forward to comments,
\x/ill :-}
William Uther will@cs.su.oz.au
==============================================================================
Andrae Muys (ccamuys@dingo.cc.uq.oz.au) wrote:
: I am currently trying to write a game that will provide a computer
: opponent in a computer wargame. I intend eventually to incorporate
: relitivly complex game mechanics such as can be found in commercial table
: top rules systems. However the current project is nowhere near as
: extensive with *extremely* basic rules and mechanics.
<<>>
I thought it might be appropriate if I quickly outlined the game
mechanics I intend on using for an *extremely* basic game.
I have decided to create a napolionic era game. The reason's for this are..
a) Personal knowledge, and posession of a number of rule systems for the
era which may be adapted for computer play.
b) The rigid formations and formal tactics of the era should make the
pattern recognsion easier.
c) The principles of combined arms are easy to grasp and formalise
heruisticly in this era.
d) Only a small number of troop types have to be provided to provide a
reasonable game.
The rules which I intend on implementing to date consist of three troop
INF: slow, strong, short range;
CAV: fast, strong, zero range;
ART: slow, weak, long range;
and three extra terrain types(other than clear)
WOODS: defence from melee and ranged attacks, slows movement;
ROUGH(HILLS): defence from melee, slows movement, aids attack;
ROAD: no defence, faster movement;
Of course the principles of pattern recognition and stratigic disposions
apply to any game in any era, and also to more abstract forms of the
wargame such as CHESS, GO, and CHECKERS. I am using these rules because
I beleive they provide the basic elements of wargames, and are necessary
and sufficient for the application of traditional military stratagy and
tactics. Therefore if I can produce a computer player which successfully
plays a sound stratigic game and which has a 'grasp' of tactics, it
should be able to be applied to any napolionic rule system with little
modification, and to other eras without too much difficulty.
Andrae.
==============================================================================
Steve Woodcock (woodcock@escmail.orl.mmc.com) wrote:
: Andrae Muys (ccamuys@dingo.cc.uq.oz.au) wrote:
: : I am currently trying to write a game that will provide a computer
: : opponent in a computer wargame.
: Your approach to break things down into 'front', 'flank', and
: 'rear' makes sense and seems like a reasonable simplification of the problem.
: A first-order definition of each might be:
: front -- Where the mass of the enemy units are known to be. The
: direction I want to attack.
: flank -- Any area in which there are fewer (1/3 ?) as many enemy
: units as the area designed as 'front'. (Note this is
: purely arbitrary, based as much on prior experience as
: anything else.) Perhaps also selected based on natural
: defensive terrain (i.e., oceans or mountains).
: rear -- Any area in which no (known) enemy units are operating,
: or an area completely surrounded and controlled by me.
:
: These definitions work by identifying the front, then extrapolating
: from that. As enemy units move around, become detected, attack, etc.,
: the 'size' of the front will likely grown and shrink, forcing similar changes
: to the flanks (especially) and perhaps to the rear areas as well.
Identifing the front first and then defining the rest w.r.t it would seem
to simplify the problem further. I hadn't thought of that, it looks like
a good idea. However one question to contimplate. Where are the fronts
in the following position. {X - YOURS, Y - THEIRS}
YY Now by any standards X is in a bad way. It has been
Y completely outflanked and his left flank is already
XXX YY overrun. Intuitivly his front is now perpendicular
XX XXX XX XY Y to Y's. I think we may need a concept such as
X X Y contact point, which in this case is Y's centre, and
Y X's left flank. Naturally in most battles there would
YYY be multiple contact points. Personally I would draw the
Y fronts as follows.
|
| What do you think?
--------C|
|
|
: One problem I can think of off the top of my head is how to handle
: multiple front situations; there's at least some possibility of overlapping
: definitions, meaning that some precedence order must be established.
: Special exceptions will also have to be made for overflying enemy aircraft
: and incursions by enemy units of various types. (Example: If the enemy
: drops some paratroopers into your 'rear' area, does it automatically become
: a 'front'?)
This is why I am using a very basic set of game mechanics, and using a
different era(see other post). This way the only way troops can reach
your rear is to march there. Also there are very few battles in this era
with multiple fronts. Although allowance must be made for bent and
twisted fronts. The hinge being a very critical point in an extended line.
: In extreme situations of mass attack, I could see virtually the entire
: play area being designated as a 'front' (imagine the Eastern Front in
: WWII), which of course makes your branching problem worse. On the other
: hand, attempts to continually minimize the size of the front will cut down
: on the branching options, but might result in poor strategic and tactical
: choices (i.e., the entire German army focuses on capturing Malta, rather than
: overrunning Malta on its way to North Africa).
In the rules I have in mind, most cases you will only have mass attacks
or at least dense fronts. One problem you do have if you try to model a
high echelon game such as the eastern front(WWII) what happened next.
The russian front fragmented and from one dense front you ended up with
hundreds of small localised fronts, the resulting loss of cohesion being
one of the greatest advantages of blitzcrieg. Because cohesion is so
much more important at a grand stratigic level(not that it isn't in
stratagies at a operational/tactical level) I feel that a search for a
front maybe counter productive. My gut feeling is that it would be
better to consider area controled by your forces, controlled by their
forces, and contested. With an emphisis on your forces maintaining
unbroken contact between spheres of influence. So the insertion of
forces 'behind the lines' would only alter the balance of control in the
local area. A domino effect would be possible where forces stratigicly
inserted would weaken a units control of an area weakening a unit relying
on it for its 'cohesive link' weaking its control of another area and so
on. However this is what happens in real life so if any thing it
suggests that it may be a good approach.
: More brainstorming as I come up with ideas..............
ditto.
: Steven
Andrae
==============================================================================
On 11 May 1995, Andrae Muys wrote:
> one of the greatest advantages of blitzcrieg. Because cohesion is so
> much more important at a grand stratigic level(not that it isn't in
> stratagies at a operational/tactical level) I feel that a search for a
> front maybe counter productive. My gut feeling is that it would be
> better to consider area controled by your forces, controlled by their
> forces, and contested. With an emphisis on your forces maintaining
> unbroken contact between spheres of influence. So the insertion of
> forces 'behind the lines' would only alter the balance of control in the
> local area. A domino effect would be possible where forces stratigicly
> inserted would weaken a units control of an area weakening a unit relying
> on it for its 'cohesive link' weaking its control of another area and so
> on. However this is what happens in real life so if any thing it
> suggests that it may be a good approach.
In real life, I would imagine one of the main targets in any campaign to
be supply lines. For example, The Dambusters is a movie about some
special bombers with special bombs desiged to destroy dams, with the aim
of crippling Germany's iron/steel industry. General Custer was in trouble
because he was surrounded and cut off from supplies and reinforcements
(yes, my knowledge is very sketchy).
Another approach to defining a front is that it is where you want it to
be! Perhaps call your front where you are trying to hold back/push back
enemy forces. Incursions don't necessarily happen on a front - you may
quick-march or drop forces into enemy territory next to a vital supply
line, or sneak in sabateurs to destroy strategic bridges ("A Bridge Too
Far").
I heard someone claim once that war is about economic ruin rather than
outright carnage. Is there any way your AI can calculate the move that
will cause most damage to industry and support, rather than shoot the
most enemy? Of course, these strategies apply to wars, not battles...
Just a thought...
-Alex
==============================================================================
Satrapa / Alexander Marc (ISE) (u903022@student.canberra.edu.au) wrote:
: On 11 May 1995, Andrae Muys wrote:
<<>>
: > front maybe counter productive. My gut feeling is that it would be
: > better to consider area controled by your forces, controlled by their
: > forces, and contested. With an emphisis on your forces maintaining
: > unbroken contact between spheres of influence. So the insertion of
<<>>
: In real life, I would imagine one of the main targets in any campaign to
: be supply lines. For example, The Dambusters is a movie about some
: special bombers with special bombs desiged to destroy dams, with the aim
: of crippling Germany's iron/steel industry. General Custer was in trouble
: because he was surrounded and cut off from supplies and reinforcements
: (yes, my knowledge is very sketchy).
Yes you are right one of the major considerations at a Stratigic level is
supply, how do I attack yours, how do I protect mine. One point
concerning General Custer however, his problem wasn't so much that his
supply lines were cut, more that he was surrounded with no avenue of
retreat. This is a position which is so inheriently poor that any AI
should automatically avoid it without any requirement for a 'special case'.
: Another approach to defining a front is that it is where you want it to
: be! Perhaps call your front where you are trying to hold back/push back
: enemy forces. Incursions don't necessarily happen on a front - you may
: quick-march or drop forces into enemy territory next to a vital supply
: line, or sneak in sabateurs to destroy strategic bridges ("A Bridge Too
: Far").
With the game mechanics we have been considering of late the AI won't
have to be concerned with most of these problems. I personally can't see
how defining a front 'where you want it to be' is useful although this is
probably more me not thinking it though properly than a problem with the
idea. What do you mean by it, and is it in anyway related to the concept
of critical point/contact point currently being discussed?
: I heard someone claim once that war is about economic ruin rather than
: outright carnage. Is there any way your AI can calculate the move that
: will cause most damage to industry and support, rather than shoot the
: most enemy? Of course, these strategies apply to wars, not battles...
Personally I prefer Sun Tzu's philosophy. Basically it holds that to win
without fighting is best, and the aim of war is to capture territory
without damaging it.
BTW: does anyone know if there is a e-text version of The Art of War
anywhere?
Andrae.
==============================================================================
Andrae Muys (ccamuys@dingo.cc.uq.oz.au) wrote:
: With the game mechanics we have been considering of late the AI won't
: have to be concerned with most of these problems. I personally can't see
: how defining a front 'where you want it to be' is useful although this is
: probably more me not thinking it though properly than a problem with the
: idea. What do you mean by it, and is it in anyway related to the concept
: of critical point/contact point currently being discussed?
That's right; at the moment we're sort of focusing on a roughly
Napoleonic-era level of combat for the sake of simplicity. Paratroopers
will be added in AI v. 2.0. ;)
: : I heard someone claim once that war is about economic ruin rather than
: : outright carnage. Is there any way your AI can calculate the move that
: : will cause most damage to industry and support, rather than shoot the
: : most enemy? Of course, these strategies apply to wars, not battles...
: Personally I prefer Sun Tzu's philosophy. Basically it holds that to win
: without fighting is best, and the aim of war is to capture territory
: without damaging it.
If we hold to the concept of specifying various objectives (as discussed
way back at the start of this thread), then I would think moves designed
to inflict economic damage would flow naturally out of that. Oil wells,
ports, rail lines, etc. would all be natural objectives, and as the AI
considers its moves and attempts to seize objectives they would naturally
be overrrun.
: BTW: does anyone know if there is a e-text version of The Art of War
: anywhere?
Good question...I'd like to know myself.
Steven
==============================================================================
ccamuys@dingo.cc.uq.oz.au (Andrae Muys) writes:
>Personally I prefer Sun Tzu's philosophy. Basically it holds that to win
>without fighting is best, and the aim of war is to capture territory
>without damaging it.
>BTW: does anyone know if there is a e-text version of The Art of War
>anywhere?
>
>Andrae.
http://timpwrmac.clh.icnet.uk/Docs/suntzu/szcontents.html
for the Art of War (not the 1960's translation, an older one) , and
http://fermi.clas.virginia.edu/~gl8f/paradoxes.html
for George Silver's Paradoxes of defence, which is probably
in a similarr vein, but I have not got around to reading it yet.
Anybody who does any type of strategic or tactical stuff should
read at least the Art of War, very good stuff indeed.
==============================================================================
William Uther (will@cs.su.oz.au) wrote:
<<>>
: There is also one other interesting piece of info we've come across. It
:
: most people would say that the 'Y' in the following diagram is not between
: the 'X's:
: X X
: Y
However Y is definately infulencing the connection between the X's. The
right X should be able to support the left, however it is possible that
the reverse is impossible. Of course terrain could modify this.
: Whereas, they would say the the Y is between these two X's:
: X X
: Y
Here I would consider Y to have interdicted the link, or the X's are
still neighbours but they have outflanked/maybe even overrun, Y.
: The definition we found for 'between' or 'blocking' and hence allows you
: get neighbour (nothing is between) is as follows.
: i) draw a circle between the two items such that the items sit on either
: end of a diameter of the circle.
: ii) If there is anything inside that circle it is between the two items
: otherwise it's not.
An alternitive(I havn't played bolo so I don't know if it's appropriate)
would be to draw a circle radius Y's maximum EFFECTIVE range (you decide
what that is) and if it cuts a line drawn between the two X's the link is
cut.
: We thought of defining front as that section 'between' the two centers.
: This doesn't really handle multiple fronts, but then the game only really
: has two moving pieces which makes multiple fronts difficult anyway.
Andrae.
==============================================================================
Will Uther (will@cs.su.oz.au) wrote:
: In article <3onpj8$lbc@theopolis.orl.mmc.com>,
: A friend here (richard@cs.su.oz.au) I was discussing it with actually came
: up with a different solution. (based on two tanks on a board moving
: pieces about - the game Bolo
: http://www.cs.su.oz.au/~will/bolo/brains.html)
: you define your 'center', their 'center' and the board 'center'. Anything
: closer to your center than theirs is yours and can be taken. If they take
: it back then it takes you less time to re-take than it takes them - if
: they bother to take it they lose more time than you.
: The idea is to
: i) move your center towards the center of the board
: then ii) move your center towards their center, always keeping it between
: their center and the center of the board. This should push them off the
: board.
: the defintion of 'center' is tricky. It's more a 'focus' than a
: center. At the moment we have a couple we're looking at:
: - The modal position of all your pieces. (mean would be horrible if
: you get split in two somehow)
: - The average position of your tank
: There is also one other interesting piece of info we've come across. It
: involves finding neighbours.
: most people would say that the 'Y' in the following diagram is not between
: the 'X's:
: X X
: Y
: Whereas, they would say the the Y is between these two X's:
: X X
: Y
: The definition we found for 'between' or 'blocking' and hence allows you
: get neighbour (nothing is between) is as follows.
: i) draw a circle between the two items such that the items sit on either
: end of a diameter of the circle.
: ii) If there is anything inside that circle it is between the two items
: otherwise it's not.
: We thought of defining front as that section 'between' the two centers.
: This doesn't really handle multiple fronts, but then the game only really
: has two moving pieces which makes multiple fronts difficult anyway.
: Looking forward to comments,
: \x/ill :-}
Hmmm...this does have some merit to it. I like the idea of the 'center'
being arrived at via this circle-method; it has an elegance to it that also
is somewhat intuitive.
The only potential problem I can see with this approach is that it will
tend towards great massive brute force engagements by migrating the bulk
of both forces towards a common 'center'. This is fine in the case of
two combatants (i.e., two Bolo tanks) but not so good for two armies.
I think we could solve the multiple front problem if we generalized the
problem to find SEVERAL 'localized centers', thus allowing for multiple axes
of advance along a somewhat more fluid 'front'. In the case of two armies,
you might get something like this:
x x x
y1 y2 y3 y4
x x x
In this case, each of the x-x pairs make INDEPENDENT determinations
of what lies 'between' them. Then, based on the relative combat strengths
and other factors, you could issue separate orders for each section of
the battlefield. This effectively sets up a variety of 'mini-centers'
(using our terminology from above) and more realistically (IMHO) emulates
realworld operations (i.e., lots of mini-objectives, the possibility for
overlapping objectives, etc.).
Opinions? Comments?
Steven
==============================================================================
>"Satrapa / Alexander Marc (ISE)" wrote:
>
> On Wed, 10 May 1995, Will Uther wrote:
> [bigsnip]
> > you define your 'center', their 'center' and the board 'center'. Anything
> > closer to your center than theirs is yours and can be taken. If they take
> [snip]
> > The idea is to
> > i) move your center towards the center of the board
> > then ii) move your center towards their center, always keeping it between
> > their center and the center of the board. This should push them off the
> > board.
>
> One problem - any enemy who knows this strategy may use it against you
> (and therefore both sides end up fighting over the center while the edge
> of the board is unused), or may act like water and flow - so you get
> through to their centre, but find that the edges of the board have
> suddenly caved in on you. So their center is your center, but their
> distribution is wider than yours... while you're attacking them over
> here, they're stealing your bases/terrain over there.
In the type of combat I was thinking of, you each have only one active
piece that moves around the board moving the other 'static' pieces. If
Player A surrounds Player B, but Player B has supplies 'inside', then
player B has the
advantage. e.g.
1 2
3 4
Supplies
5 6
7 8
Assume that 1,2,7 and 8 are owned by A and effectively 'surround' B who
owns 3, 4, 5 and 6 (and some supplies that mean he never has to leave his
fort). B can attack 1. when A moves there to defend, B can break off and
attack 8. A has a long way to go to get to 8 (A has to go right around
whereas B can go through the centre) and so will probably lose that
piece. Being more spead-out than the opposition can be a big problem.
I agree that this is probably not the type of combat you were thinking
about. For an example of this type of combat look at the mac game Bolo.
\x/ill :-}
P.S. as a side note, Sun Tzu (sp?) in his 'Art of War' recommends against
sieges which is effectively the situation you have above.
William Uther will@cs.su.oz.au
==============================================================================
Steve Woodcock wrote:
>
> Hmmm...this does have some merit to it. I like the idea of the 'center'
>being arrived at via this circle-method; it has an elegance to it that also
>is somewhat intuitive.
>
> The only potential problem I can see with this approach is that it will
>tend towards great massive brute force engagements by migrating the bulk
>of both forces towards a common 'center'. This is fine in the case of
>two combatants (i.e., two Bolo tanks) but not so good for two armies.
Actually, Bolo can be played by as many as 16 players, with as many
as 16 different sides. But most people play against bots only when
they cannot get any human competition, and so play against only one.
> I think we could solve the multiple front problem if we generalized the
>problem to find SEVERAL 'localized centers', thus allowing for multiple axes
>of advance along a somewhat more fluid 'front'. In the case of two armies,
>you might get something like this:
>
>
> x x x
>
> y1 y2 y3 y4
>
> x x x
>
> In this case, each of the x-x pairs make INDEPENDENT determinations
>of what lies 'between' them. Then, based on the relative combat strengths
>and other factors, you could issue separate orders for each section of
>the battlefield. This effectively sets up a variety of 'mini-centers'
>(using our terminology from above) and more realistically (IMHO) emulates
>realworld operations (i.e., lots of mini-objectives, the possibility for
>overlapping objectives, etc.).
Hmmm...
I assume that this assumes a single master strategist giving orders
to the units. I would think that the master should group neighboring
units as one, in order to save time when calculating the following:
calculate a center between every piece and every other. When his is
all done, choose the minimum amount of centers which take care of the
maximum amount of enemies. This should allow certain interesting
effects over varying terrain, if said terrain is taken into account as
it should be.
Otherwise, it sounds pretty good. If I ever get my set of Bolo
brains working, I'll turn 'em loose and see what happens.
Robert Uhl
==============================================================================
First off, let me just say that I think this is a *great* thread, easily
one of the more interesting I've seen in this newsgroup. *This* is the kind
of brainstorming the Net was made for....
Andrae Muys (ccamuys@dingo.cc.uq.oz.au) wrote:
: Identifing the front first and then defining the rest w.r.t it would seem
: to simplify the problem further. I hadn't thought of that, it looks like
: a good idea. However one question to contimplate. Where are the fronts
: in the following position. {X - YOURS, Y - THEIRS}
: YY Now by any standards X is in a bad way. It has been
: Y completely outflanked and his left flank is already
: XXX YY overrun. Intuitivly his front is now perpendicular
: XX XXX XX XY Y to Y's. I think we may need a concept such as
: X X Y contact point, which in this case is Y's centre, and
: Y X's left flank. Naturally in most battles there would
: YYY be multiple contact points. Personally I would draw the
: Y fronts as follows.
: |
: | What do you think?
: --------C|
: |
: |
I would agree with your assessment of the situation and your breakdown
of the forces into a front. Obviously in this case, X either a.) needs
to rapidly execute a turn of his front or b.) is in the midst of a brilliant
plan that wil prove to be Y's undoing. (The challenge, of course, is to
get a computer AI to execute 'b' more often than 'a'.)
If we define a contact point, then does that give us a natural focus
towards which to direct our forces and our strategic 'thinking'? They would
seem to.
: : One problem I can think of off the top of my head is how to handle
: : multiple front situations; there's at least some possibility of overlapping
: : definitions, meaning that some precedence order must be established.
: : Special exceptions will also have to be made for overflying enemy aircraft
: : and incursions by enemy units of various types. (Example: If the enemy
: : drops some paratroopers into your 'rear' area, does it automatically become
: : a 'front'?)
: This is why I am using a very basic set of game mechanics, and using a
: different era(see other post). This way the only way troops can reach
: your rear is to march there. Also there are very few battles in this era
: with multiple fronts. Although allowance must be made for bent and
: twisted fronts. The hinge being a very critical point in an extended line.
Okay; let's go with that simplification for now. It'll certainly make this
easier to think about, and we can always make the AI smarter in Rev 2.0! ;)
: In the rules I have in mind, most cases you will only have mass attacks
: or at least dense fronts. One problem you do have if you try to model a
: high echelon game such as the eastern front(WWII) what happened next.
: The russian front fragmented and from one dense front you ended up with
: hundreds of small localised fronts, the resulting loss of cohesion being
: one of the greatest advantages of blitzcrieg. Because cohesion is so
: much more important at a grand stratigic level(not that it isn't in
: stratagies at a operational/tactical level) I feel that a search for a
: front maybe counter productive. My gut feeling is that it would be
: better to consider area controled by your forces, controlled by their
: forces, and contested. With an emphisis on your forces maintaining
: unbroken contact between spheres of influence. So the insertion of
: forces 'behind the lines' would only alter the balance of control in the
: local area. A domino effect would be possible where forces stratigicly
: inserted would weaken a units control of an area weakening a unit relying
: on it for its 'cohesive link' weaking its control of another area and so
: on. However this is what happens in real life so if any thing it
: suggests that it may be a good approach.
Okay then, fronts are out. Spheres of influence are in. They do seem
to better reflect the 'domino effect', as you suggest.
If we use your previous suggestion for identifying centers, combined with
the above-mentioned contact points, then this may lead us towards a more
natural way of handling the above situation. Based on what we've discussed
so far, I would envision an AI's logic train going something like this:
Pass #1: Identify natural 'groups' of X-Y forces using the
'circle method' discussed earlier, perhaps taking into account
the possibilities of influence and interdiction as a previous
poster suggested.
Pass #2: Having identified these natural groupings, identify
contact points amongst the forces within each group. These
will serve as natural foci for our planning process.
Pass #3: Having identified natural groupings and focus points,
we now begin thinking about steps needed to link up our groups,
minimize the size of enemy-held areas, elimination of enemy units,
etc.
One thing we do want to avoid, of course, is TOO much reliance on
maintaining unbroken contact between spheres of influence. As you know,
in the Napoleanic era cavalry forces on the same side were often miles
apart and in some cases didn't even know of each other's existence! In this
case the AI would need to know to treat the two forces independently and
NOT make linking them a high priority.
Steven
==============================================================================
Steve Woodcock (woodcock@escmail.orl.mmc.com) wrote:
: Andrae Muys (ccamuys@dingo.cc.uq.oz.au) wrote:
: : YY Now by any standards X is in a bad way. It has been
: : Y completely outflanked and his left flank is already
: : XXX YY overrun. Intuitivly his front is now perpendicular
: : XX XXX XX XY Y to Y's. I think we may need a concept such as
: : X X Y contact point, which in this case is Y's centre, and
: : Y X's left flank. Naturally in most battles there would
: : YYY be multiple contact points. Personally I would draw the
: : Y fronts as follows.
: : |
: : | What do you think?
: : --------C|
: : |
: : |
: I would agree with your assessment of the situation and your breakdown
: of the forces into a front. Obviously in this case, X either a.) needs
: to rapidly execute a turn of his front or b.) is in the midst of a brilliant
: plan that wil prove to be Y's undoing. (The challenge, of course, is to
: get a computer AI to execute 'b' more often than 'a'.)
Of course the ultimate AI wouldn't find itself in such a dangerous
position. A bit like the untimate General wouldn't. But if it does it
must extricate itself well. Just one more 'special' situation to test
the AI's abiltiy.
: If we define a contact point, then does that give us a natural focus
: towards which to direct our forces and our strategic 'thinking'? They would
: seem to.
Well this thread is useful. The idea of contact points should radically
prune any decision tree.(And sooner or later the AI will have to make a
choice) Of course at the stratigic/grand stratigic levels we may need a
modified definition of contact point but at the level I am interested in
Contact points appear to be a good way to look at things. In fact now
that I think about it, contact points are how **I** allocate **MY**
consideration. This approach however leads us to consider how to
recognise potential contact points and how to evaluate the relitive
benifits of creating/avoiding specific contact points. e.g. in the
example above X should avoid contact with Y until he has rotated his
front.(it looks like we may still need to consider fronts as well).
: : This is why I am using a very basic set of game mechanics, and using a
: : different era(see other post). This way the only way troops can reach
: : your rear is to march there. Also there are very few battles in this era
: : with multiple fronts. Although allowance must be made for bent and
: : twisted fronts. The hinge being a very critical point in an extended line.
: Okay; let's go with that simplification for now. It'll certainly make this
: easier to think about, and we can always make the AI smarter in Rev 2.0! ;)
My thoughts exactly.
<<<>>>
: : front maybe counter productive. My gut feeling is that it would be
: : better to consider area controled by your forces, controlled by their
: : forces, and contested. With an emphisis on your forces maintaining
: : unbroken contact between spheres of influence. So the insertion of
: : forces 'behind the lines' would only alter the balance of control in the
: : local area. A domino effect would be possible where forces stratigicly
: : inserted would weaken a units control of an area weakening a unit relying
: : on it for its 'cohesive link' weaking its control of another area and so
: : on. However this is what happens in real life so if any thing it
: : suggests that it may be a good approach.
: Okay then, fronts are out. Spheres of influence are in. They do seem
: to better reflect the 'domino effect', as you suggest.
However as discussed above at a lower level fronts again become
important. IMHO this is because tactical considerations require physical
cohesion, while stratigic(level) utilise logical cohesion. As you later
note cavalry detatchments regularlly operated independently of other
units. However (excluding irregulars) many/most operated in conjunction
with armies, their presence in a particular area, important to enemy
forces, deliberate and planned. Even though operating independently.
: If we use your previous suggestion for identifying centers, combined with
: the above-mentioned contact points, then this may lead us towards a more
: natural way of handling the above situation. Based on what we've discussed
: so far, I would envision an AI's logic train going something like this:
: Pass #1: Identify natural 'groups' of X-Y forces using the
: 'circle method' discussed earlier, perhaps taking into account
: the possibilities of influence and interdiction as a previous
: poster suggested.
: Pass #2: Having identified these natural groupings, identify
: contact points amongst the forces within each group. These
: will serve as natural foci for our planning process.
: Pass #3: Having identified natural groupings and focus points,
: we now begin thinking about steps needed to link up our groups,
: minimize the size of enemy-held areas, elimination of enemy units,
: etc.
This sounds like it should work reasonably well, however I have a feeling
there may be problems with the way it handles many sparse stratigic
situations. I'll think about it and we can discuss it futher when I have
clearified my concerns.
: One thing we do want to avoid, of course, is TOO much reliance on
: maintaining unbroken contact between spheres of influence. As you know,
: in the Napoleanic era cavalry forces on the same side were often miles
: apart and in some cases didn't even know of each other's existence! In this
: case the AI would need to know to treat the two forces independently and
: NOT make linking them a high priority.
One more thing about cavalry is that the other arms(INF/ART) can't
operate this way as it requires a level of speed.
One thing I am considering is cross posting some questions regarding real
life treatment of these concerns to rec.games.miniatures after they finish
their reorganisation.
Andrae.
==============================================================================
Steve Woodcock wrote:
>
>Andrae Muys (ccamuys@dingo.cc.uq.oz.au) wrote:
>
>: Identifing the front first and then defining the rest w.r.t it would seem
>: to simplify the problem further. I hadn't thought of that, it looks like
>: a good idea. However one question to contimplate. Where are the fronts
>: in the following position. {X - YOURS, Y - THEIRS}
>
>: YY Now by any standards X is in a bad way. It has been
>: Y completely outflanked and his left flank is already
>: XXX YY overrun. Intuitivly his front is now perpendicular
>: XX XXX XX XY Y to Y's. I think we may need a concept such as
>: X X Y contact point, which in this case is Y's centre, and
>: Y X's left flank. Naturally in most battles there would
>: YYY be multiple contact points. Personally I would draw the
>: Y fronts as follows.
>: |
>: | What do you think?
>: --------C|
>: |
>: |
>
>
>
> I would agree with your assessment of the situation and your breakdown
>of the forces into a front. Obviously in this case, X either a.) needs
>to rapidly execute a turn of his front or b.) is in the midst of a brilliant
>plan that wil prove to be Y's undoing. (The challenge, of course, is to
>get a computer AI to execute 'b' more often than 'a'.)
Heh. Actually, if X is driving through Y, in order to create two
fronts along which Y must fight, thereby forcing Y to regroup, then
'b' has been executed.
> If we define a contact point, then does that give us a natural focus
>towards which to direct our forces and our strategic 'thinking'? They would
>seem to.
Yes. The AI should attempt to create as many contatc points as
possible. Why? These points mean that he is actually fighting the
enemy and hopefully killing the same. That is why two parallel lines
are a good formation. With a good lookahead, though, the T formation
is also good, because it will enable many points of contact _over
time_, and hurt Y's ability to create them. Part of the battle is
controlling contact. In fact, if the AI can do this controlling, then
it is my belief that it will have an extremely good chance at winning.
> Okay then, fronts are out. Spheres of influence are in. They do seem
>to better reflect the 'domino effect', as you suggest.
The sphere of influence idea seems to work well with the points of
contact idea. Perhaps each unit has a sphere wherein it can contact
within a certain number fo moves (say 3), and its job is to contact
the fewest enemies at once but the most over time. IOW, it doesn't
want to be outnumbered but it wants to see action.
And two units have a greater sphere of influence, say 8 moves, than
just one. This would help reflect the greater power of two. Controlled
territory would be defined as that surrounded by my own units and
without enemy units, once again utilizing the SoIs. Contested would,
of course, be that which neither side controls. Perhaps a 'strength'
value would be attached to areas, indicating the number of units
controlling it, time for more to get there &c. Thiswould provide an
incentive for the AI to encircle enemy territory.
Robert Uhl
==============================================================================
Robert A. Uhl (ruhl@phoebe.cair.du.edu) wrote:
: Heh. Actually, if X is driving through Y, in order to create two
: fronts along which Y must fight, thereby forcing Y to regroup, then
: 'b' has been executed.
Good point. Yet another example of how a human can spot an opportunity
in the face of the most daunting situations....
: > If we define a contact point, then does that give us a natural focus
: >towards which to direct our forces and our strategic 'thinking'? They would
: >seem to.
: Yes. The AI should attempt to create as many contatc points as
: possible. Why? These points mean that he is actually fighting the
: enemy and hopefully killing the same. That is why two parallel lines
: are a good formation. With a good lookahead, though, the T formation
: is also good, because it will enable many points of contact _over
: time_, and hurt Y's ability to create them. Part of the battle is
: controlling contact. In fact, if the AI can do this controlling, then
: it is my belief that it will have an extremely good chance at winning.
I'm not sure I agree that I would want the AI to maximize its number
of contacts with the enemy; I would agree that it should seek to control
them.
Maximization in itself will only lead to toe-to-toe WWI slugfests, and
basically leads to the AI playing a war of attrition. That's perhaps one
of the defining characteristics of most AIs today--if they don't cheat
somehow, then they tend to fight wars of attrition.
: The sphere of influence idea seems to work well with the points of
: contact idea. Perhaps each unit has a sphere wherein it can contact
: within a certain number fo moves (say 3), and its job is to contact
: the fewest enemies at once but the most over time. IOW, it doesn't
: want to be outnumbered but it wants to see action.
Yes indeed. That's sort of where we were headed, I believe.
I do like the idea of factoring time into the equation somehow; the AI
ought to be willing to have NO enemy contact for two turns if it's busy
moving forces around for MAJOR enemy contract (say, the Normandy invasion)
on the third turn. That does make sense intuitively. Perhaps we can tie
time-weighted values to multi-turn engagement decisions?
: And two units have a greater sphere of influence, say 8 moves, than
: just one. This would help reflect the greater power of two. Controlled
: territory would be defined as that surrounded by my own units and
: without enemy units, once again utilizing the SoIs. Contested would,
: of course, be that which neither side controls. Perhaps a 'strength'
: value would be attached to areas, indicating the number of units
: controlling it, time for more to get there &c. Thiswould provide an
: incentive for the AI to encircle enemy territory.
Agreed. This is very similar to the idea of using a 'fire distribution'
map that was presented by Daniele, actually, just a different method of
solving the same problem. We'll want to do SOMETHING like this in order
to properly consider the limiting effects of enemy weaponry and the
local terrain.
Steven
==============================================================================
On 15 May 1995, Andrae Muys wrote:
> Steve Woodcock (woodcock@escmail.orl.mmc.com) wrote:
> : Andrae Muys (ccamuys@dingo.cc.uq.oz.au) wrote:
>
> : : YY Now by any standards X is in a bad way. It has been
> : : Y completely outflanked and his left flank is already
> : : XXX YY overrun. Intuitivly his front is now perpendicular
> : : XX XXX XX XY Y to Y's. I think we may need a concept such as
> : : X X Y contact point, which in this case is Y's centre, and
> : : Y X's left flank. Naturally in most battles there would
> : : YYY be multiple contact points. Personally I would draw the
> : : Y fronts as follows.
[snip]
> benifits of creating/avoiding specific contact points. e.g. in the
> example above X should avoid contact with Y until he has rotated his
> front.(it looks like we may still need to consider fronts as well).
Two options I can see here - either X moves its forces into Y's "front"
to create as much damage as possible (in a concentrated strike or
"blitzkreig" style attack) or X moves its "front" back, forcing Y to make
the next move (allowing X the advantage in defence).
Is X aggressive or defensive? Y's forces are rather spread out, so X can
"spear" through the front and attack from both sides (like an inverse of
the "pincer" movement).
Just a thought...
-Alex
==============================================================================
I appologise for the excessive quoting but without the diagram any reply
is awkward.
Satrapa / Alexander Marc (ISE) (u903022@student.canberra.edu.au) wrote:
: On 15 May 1995, Andrae Muys wrote:
: > Steve Woodcock (woodcock@escmail.orl.mmc.com) wrote:
: > : Andrae Muys (ccamuys@dingo.cc.uq.oz.au) wrote:
: >
: > : : YY Now by any standards X is in a bad way. It has been
: > : : Y completely outflanked and his left flank is already
: > : : XXX YY overrun. Intuitivly his front is now perpendicular
: > : : XX XXX XX XY Y to Y's. I think we may need a concept such as
: > : : X X Y contact point, which in this case is Y's centre, and
: > : : Y X's left flank. Naturally in most battles there would
: > : : YYY be multiple contact points. Personally I would draw the
: > : : Y fronts as follows.
: [snip]
: > benifits of creating/avoiding specific contact points. e.g. in the
: > example above X should avoid contact with Y until he has rotated his
: > front.(it looks like we may still need to consider fronts as well).
: Two options I can see here - either X moves its forces into Y's "front"
: to create as much damage as possible (in a concentrated strike or
: "blitzkreig" style attack) or X moves its "front" back, forcing Y to make
: the next move (allowing X the advantage in defence).
IMO The first of your options is probably going to lead to disaster. X
is not only outflanked but overrun. From this postion any attack he
makes is going to be piecemeal, and forces commited to an attack
piecemeal are destroyed piecemeal to very little effect. IMHO the second
option is the only option avaliable to X, the question for X is how far
back to regroup, and what to do next. Some of his options as I see them
involve, pulling all units at the contact point back, all units not at
the contact point foward, form an offensive formation and try to break
Y's, by now dissordered, centre. Or maybe send forces to delay Y's flank,
utilise defence in depth at the contact point to buy time, and either
prepare an attack, prepare a defence, or use the manuvour to start a
rearguard action.
: Is X aggressive or defensive? Y's forces are rather spread out, so X can
: "spear" through the front and attack from both sides (like an inverse of
: the "pincer" movement).
Personally I would quite enjoy gaming Y against an X attacking from this
postion.
Andrae.
==============================================================================
Andrae Muys (ccamuys@dingo.cc.uq.oz.au) wrote:
: Of course the ultimate AI wouldn't find itself in such a dangerous
: position. A bit like the untimate General wouldn't. But if it does it
: must extricate itself well. Just one more 'special' situation to test
: the AI's abiltiy.
War appears to be full of special cases, eh?
;)
: : If we define a contact point, then does that give us a natural focus
: : towards which to direct our forces and our strategic 'thinking'? They would
: : seem to.
: Well this thread is useful. The idea of contact points should radically
: prune any decision tree.(And sooner or later the AI will have to make a
: choice) Of course at the stratigic/grand stratigic levels we may need a
: modified definition of contact point but at the level I am interested in
: Contact points appear to be a good way to look at things. In fact now
: that I think about it, contact points are how **I** allocate **MY**
: consideration. This approach however leads us to consider how to
: recognise potential contact points and how to evaluate the relitive
: benifits of creating/avoiding specific contact points. e.g. in the
: example above X should avoid contact with Y until he has rotated his
: front.(it looks like we may still need to consider fronts as well).
Yes, I'd come to that conclusion as well. By identifying contact
points and making them the focus of (at least some) activity, we've
pruned our number of decisions fairly radically.
One concern I have with relying on them exclusively, however, is
that this makes the AI very reactive without some additional logic to
force it to 'seek' the enemy. Two obvious ways to handle this would be
a.) random movement of forces until contact with the enemy has been
achieved and b.) deliberate movement of forces to attain certain objectives
(which are, in effect, 'artificial' contact points, if you will).
It would be simple enough (I'm still talking Napoleonic-level for
simplicity's sake) to provide the AI with whatever its objectives are
for a given scenario; that's easy. The hard part is how to make it
approach those objectives in some fashion that makes sense rather than
to blindly throw its units down a road leading towards said objective
(perhaps the main failure of the AIs in Perfect General and Empire Deluxe,
to name two examples).
As I recall, Napoleonic-era tacticians were trained to recognize
'classic' battle formations (one such example being the 'T' you presented
earlier) and react accordingly. Pattern recognition is easy enough
to do on a computer via a variety of methods, ranging from simple table
lookup to full-blown neural nets.
: : If we use your previous suggestion for identifying centers, combined with
: : the above-mentioned contact points, then this may lead us towards a more
: : natural way of handling the above situation. Based on what we've discussed
: : so far, I would envision an AI's logic train going something like this:
: : Pass #1: Identify natural 'groups' of X-Y forces using the
: : 'circle method' discussed earlier, perhaps taking into account
: : the possibilities of influence and interdiction as a previous
: : poster suggested.
: : Pass #2: Having identified these natural groupings, identify
: : contact points amongst the forces within each group. These
: : will serve as natural foci for our planning process.
: : Pass #3: Having identified natural groupings and focus points,
: : we now begin thinking about steps needed to link up our groups,
: : minimize the size of enemy-held areas, elimination of enemy units,
: : etc.
: This sounds like it should work reasonably well, however I have a feeling
: there may be problems with the way it handles many sparse stratigic
: situations. I'll think about it and we can discuss it futher when I have
: clearified my concerns.
Agreed, it may. However, based on the above idea of using pattern
recognition to manuever our units in something resembling a smart fashion,
we can now elaborate on Pass #3:
Pass #3: Having identified natural groupings and focus points,
run a pattern-matching algorithm to identify most likely tactical
situations and reasonable responses. Randomly pick from the best
2 or 3 to avoid predicatability. For each turn a course of
action is in place, make some evaluation of its effectiveness
and/or success (i.e., has the pattern changed signficantly enough
to warrant a new course of action? have we attained the objective
in question? have we lost contact with the enemy?).
In the case of a sparse strategic situation, the AI defaults towards
trying to attain known and logical objectives (i.e., moving towards Paris).
Once contact is made, the situation naturally becomes less sparse, and
the AI begins to make moves based on sound engagement philosophies.
The AI will end up being a bit 'bookish', if you will, but certainly
ought to surprise you once in a while.
: However as discussed above at a lower level fronts again become
: important. IMHO this is because tactical considerations require physical
: cohesion, while stratigic(level) utilise logical cohesion.
I'll buy that. That's a good definition, particularly for this
problem (Napoleonic-era combat), and better than many I've seen.
: [regarding comment that we post this to rec.games.miniatures]
Actually, I've already seen one thread on comp.ai recommeding THIS
thread as 'worthwhile'. ;)
Steven
==============================================================================
In article <3oro0c$egf@dingo.cc.uq.oz.au>, ccamuys@dingo.cc.uq.oz.au
(Andrae Muys) wrote:
> : One problem I can think of off the top of my head is how to handle
> : multiple front situations; there's at least some possibility of overlapping
> : definitions, meaning that some precedence order must be established.
> : Special exceptions will also have to be made for overflying enemy aircraft
> : and incursions by enemy units of various types. (Example: If the enemy
> : drops some paratroopers into your 'rear' area, does it automatically become
> : a 'front'?)
.
> This is why I am using a very basic set of game mechanics, and using a
> different era(see other post). This way the only way troops can reach
> your rear is to march there. Also there are very few battles in this era
> with multiple fronts. Although allowance must be made for bent and
> twisted fronts. The hinge being a very critical point in an extended line.
I don't know if it can help, however, when I was thinking about how to
build a program for a computer opponent for Squad Leader (an Avalon Hill's
boardgame) I didn't consider directly recognizing the troops patterns. I
would build intermediate maps describing entities like density of fire,
distances in unit movement points (rether than linear distance),
probability of passing the zone without damage, etc. and base the
reasoning on this intermediate maps. It turns out that looking (as an
example) at the fire distribution makes it clearer if some allineated
troops makes a real front or not. Many sub tactical problems could be
solved by looking for the shortest path in some of these maps: from what
side should I attack that hill? find the longest path from your units to
the hill in the percentage of survival map, where the path lenght is the
product of the percentage of the zones passed!
Sure it is not so simple, because the enviroment is highly dinamic and
there are a lot of interdependancies, but it is a good starting point.
Please answer by e-mail
Daniele Terdina
sistest@ictp.trieste.it
==============================================================================
Daniele had so many good points that I did in fact respond to her by
e-mail, but thought everybody here (hopefully) would be interested
as well.....
Daniele Terdina (sistest@ictp.trieste.it) wrote:
: I don't know if it can help, however, when I was thinking about how to
: build a program for a computer opponent for Squad Leader (an Avalon Hill's
: boardgame) I didn't consider directly recognizing the troops patterns. I
: would build intermediate maps describing entities like density of fire,
: distances in unit movement points (rether than linear distance),
: probability of passing the zone without damage, etc. and base the
: reasoning on this intermediate maps. It turns out that looking (as an
: example) at the fire distribution makes it clearer if some allineated
: troops makes a real front or not. Many sub tactical problems could be
: solved by looking for the shortest path in some of these maps: from what
: side should I attack that hill? find the longest path from your units to
: the hill in the percentage of survival map, where the path lenght is the
: product of the percentage of the zones passed!
: Sure it is not so simple, because the enviroment is highly dinamic and
: there are a lot of interdependancies, but it is a good starting point.
: Please answer by e-mail
: Daniele Terdina
: sistest@ictp.trieste.it
Hello Daniele:
*Very* interesting approach...I don't believe I've seen it presented
here before.
It wouldn't be too hard to generate a density map such as you
described and use it in conjunction with a route-finding algorithm to
manage unit movement. That certainly has the added advantage of having
units attempt to 'avoid' enemy fire (very much a realistic behavior!)
as well as still focusing on objectives. And your point concerning
whether a front is REALLY a front based on fire distribution is a good
one; we'd been assuming almost toe-to-toe contact, I think, in the above
thread, but the inclusion of any type of ranged weapon muddies that up.
Question: How would we build a fire distribution map if a given
unit has several different types of weaponry? An example of that might
be a machine-gun crew from Squad Leader; the individuals in the squad
all have fairly short-range sidearms and such, but they're all supporting
the longer-range MG. I guess the worse-case situation is the one you
have to assume, even though you have no idea that they'll shoot at you
(it's that "fog of war" thing again).
This could very well be an interesting solution to the sub-tactical,
ordering-units-to-shoot-at-something part of the problem.
Steven
==============================================================================
==============================================================================
At least one article from myself is apparently missing here. It may have
been an e-mail from myself to Daniele, or somebody else may have posted it
but I missed snagging it. If somebody should happen to have it I'd
appreciate a copy.
==============================================================================
==============================================================================
woodcock@escmail.orl.mmc.com (Steve Woodcock) wrote:
> We'd want to add some kind of thresholding function, though, to prevent
>the AI making some REALLY poor moves. If we only use the above approach,
>then I could see a situation in which NO move is a particularly good one
>(i.e., I'm in a building with all 4 streets covered by heavy enemy MG fire),
>but of course the AI would pick the 'best' one and proceed to get mowed down
>crossing the street. We'd want to build in some type of calculation that
>would take into account that not moving at all is smarter than trying to
>obtain whatever the objective is. That's easily enough done, I should
>think, using a standard costing function.
These really poor moves should be avoided by the use of a planner. The idea
is very rough because I hadn't time to try things out. In the first
scenario (all buildings) the russian has to conquest some buildings
initially occupied by germans. The planner would make reasonings of the
following sort:
- to seize a building I'd better start from another building in front of
it. If I haven't any, this is a sub-goal.
- if an attack can't be attempted because it is too risky (the threshold
you mention) locate the key enemy defensive position (the units that cause
the most of the fire density in the area) and make 'concentrate fire on key
unit' a sub-goal/
- and so on
The net of sub-goals is a graph with weighted arcs. The weight is
proportional the difficulty of achieving the goals, i.e. of reaching the
node , and inversely proportional to its usefulness, which is given by the
importance of the other goals accessible from that node. So again the
starting point to decide which goals should actually be activated is a
shortest path problem on the planning graph. I like much this idea,
however, it's easier to say than to implement.
Daniele Terdina e-mail: sistest@ictp.trieste.it
==============================================================================
==============================================================================
Again, at least one post is missing here. If anybody knows what should go
in here please send it along.
==============================================================================
==============================================================================
woodcock@escmail.orl.mmc.com (Steve Woodcock) wrote:
> Robert A. Uhl (ruhl@phoebe.cair.du.edu) wrote:
> : Yes. The AI should attempt to create as many contatc points as
> : possible. Why? These points mean that he is actually fighting the
> : enemy and hopefully killing the same. That is why two parallel lines
> : are a good formation. With a good lookahead, though, the T formation
> : is also good, because it will enable many points of contact _over
> : time_, and hurt Y's ability to create them. Part of the battle is
> : controlling contact. In fact, if the AI can do this controlling, then
> : it is my belief that it will have an extremely good chance at winning.
>
> I'm not sure I agree that I would want the AI to maximize its number
> of contacts with the enemy; I would agree that it should seek to control
> them.
>
> Maximization in itself will only lead to toe-to-toe WWI slugfests, and
> basically leads to the AI playing a war of attrition. That's perhaps one
> of the defining characteristics of most AIs today--if they don't cheat
> somehow, then they tend to fight wars of attrition.
Very good point.
> : The sphere of influence idea seems to work well with the points of
> : contact idea. Perhaps each unit has a sphere wherein it can contact
> : within a certain number fo moves (say 3), and its job is to contact
> : the fewest enemies at once but the most over time. IOW, it doesn't
> : want to be outnumbered but it wants to see action.
This is where the determination of neighbours came in before. Assume the
following:
1
2 3
A
A is attacking and could normally reach 1, 2 or 3. However most humans
would rule out attacking 1 because 2 and 3 are 'in the way' - 1 is not a
neighbour of A.
This is assuming normal distances are used. If you penalise paths for
travelling close to an enemy then the shortest path A -> 1 may be around
the outside of 2 or 3 - making it 'out of range' anyway. You have to
search for shortest paths in this case though.
\x/ill :-}
William Uther will@cs.su.oz.au
==============================================================================
In article ,
Will Uther wrote:
>In article <3pd6nc$lf7@theopolis.orl.mmc.com>,
>woodcock@escmail.orl.mmc.com (Steve Woodcock) wrote:
>
>> Robert A. Uhl (ruhl@phoebe.cair.du.edu) wrote:
>>
>> Maximization in itself will only lead to toe-to-toe WWI slugfests, and
>> basically leads to the AI playing a war of attrition. That's perhaps one
>> of the defining characteristics of most AIs today--if they don't cheat
>> somehow, then they tend to fight wars of attrition.
>
>Very good point.
Well, to minimize the possibility of a WWI-type war, something needs
to be done to keep the AI from planning one (gee, that was
brilliant:-). There are two possibilities: allow it to do so, but give
ti the long-range planning skills necessary to make it realize that
such a war is undesirable, or keep it from planning such a war. I will
focus on preventing this.
First of all, the unit must attempt to maximize contact with weak
units _over time_. It must seek to minimize contact with any units,
esp. strong ones, at once. To do so, it can be given either planning
skills, or merely given a function which will do so. Once again, I
will concentrate on the simpler way and faster. Planning takes CPU
time, something which most 'puters lack. Planning would take the form
of a path finder which would decide the path for a unit which would
bring it in contact with units individually.
The function must first seek to find nearby units. The first
criteria for 'nearness' would simply be physical nearness. This would
choose, say 10 or 20 units. These would be sorted by strength, then by
friendly units in the rough direction of the enemy. The idea is that a
unit doesn't know where its allies are headed, but if they are near an
enemy, the odds are that it is a melee situation. After sorting these
the second time, the AI would choose the 'nearest' unit. In close
quarters, it would most likely choose the physically nearest one. But
from a distance, it would tend towards otehr criteria, such as unit
strength, friendlies in the area, &c.
The one problem is that such an AI might be too chaotic at first,
sending units out willy-nilly. These first units would be likely to go
one way, then the other. But soon, I believe that some order would
arise. Units would have a tendency to conglomerate in an area and
fight as one. This is just my own thought, though. It is quite
possible that it would be entirely too chotic.
Also, it must be made possible for them to retreat. With this, your
units willbe akin to men; they don't like to be hit on too much.
Perhaps they would be craven or berserk. That would be neat.
>> : The sphere of influence idea seems to work well with the points of
>> : contact idea. Perhaps each unit has a sphere wherein it can contact
>> : within a certain number fo moves (say 3), and its job is to contact
>> : the fewest enemies at once but the most over time. IOW, it doesn't
>> : want to be outnumbered but it wants to see action.
>
>This is where the determination of neighbours came in before. Assume the
>following:
>
> 1
>
> 2 3
>
> A
>
> A is attacking and could normally reach 1, 2 or 3. However most humans
>would rule out attacking 1 because 2 and 3 are 'in the way' - 1 is not a
>neighbour of A.
> This is assuming normal distances are used. If you penalise paths for
>travelling close to an enemy then the shortest path A -> 1 may be around
>the outside of 2 or 3 - making it 'out of range' anyway. You have to
>search for shortest paths in this case though.
Hmm. I would suggest that the AI measure the distances. For the sake
of argument A->1 = 3, A->2 = 2, A->3 = 2.
The AI takes its 5 closest neigbours, that is 1, 2, 3, null and
null. Of the the closest is 2 (since it is numerically before 3, which
is the same distance away). In real life, this would be adjusted with
another function, perhaps measuring the relative strength of the unit
in question. It opts to attack 2. After attacking two, it opts to
attack 1. After one, it takes on 3. Of course, it may be too weak by
then and therefor leaves the field or waits for reinforcements.
Simplistic, and probably not the best method. In fatc, I know that
it is rather bad, but it works, and that is what counts for the
moment. Perhaps it would only be good for individual movement. In
fact, I think thta it would mimic a single man rather well. The man
takes on the closest, weakest enemy.
Robert Uhl
==============================================================================
Robert A. Uhl (ruhl@phoebe.cair.du.edu) wrote:
: The function must first seek to find nearby units. The first
: criteria for 'nearness' would simply be physical nearness. This would
: choose, say 10 or 20 units. These would be sorted by strength, then by
: friendly units in the rough direction of the enemy. The idea is that a
: unit doesn't know where its allies are headed, but if they are near an
: enemy, the odds are that it is a melee situation. After sorting these
: the second time, the AI would choose the 'nearest' unit. In close
: quarters, it would most likely choose the physically nearest one. But
: from a distance, it would tend towards otehr criteria, such as unit
: strength, friendlies in the area, &c.
Okay. Earlier in the thread a mechanism for 'grouping' enemy and
allied units was proposed that involved drawing circles based variously
on movement capabilities and/or firepower.
: The one problem is that such an AI might be too chaotic at first,
: sending units out willy-nilly. These first units would be likely to go
: one way, then the other. But soon, I believe that some order would
: arise. Units would have a tendency to conglomerate in an area and
: fight as one. This is just my own thought, though. It is quite
: possible that it would be entirely too chotic.
I wonder if some variant of this isn't what many games already do?
Most of them do tend to exhibit a nasty tendency to trickle units unit
a battle.
: >
: > 1
: >
: > 2 3
: >
: > A
: >
: Hmm. I would suggest that the AI measure the distances. For the sake
: of argument A->1 = 3, A->2 = 2, A->3 = 2.
: The AI takes its 5 closest neigbours, that is 1, 2, 3, null and
: null. Of the the closest is 2 (since it is numerically before 3, which
: is the same distance away). In real life, this would be adjusted with
: another function, perhaps measuring the relative strength of the unit
: in question. It opts to attack 2. After attacking two, it opts to
: attack 1. After one, it takes on 3. Of course, it may be too weak by
: then and therefor leaves the field or waits for reinforcements.
: Simplistic, and probably not the best method. In fatc, I know that
: it is rather bad, but it works, and that is what counts for the
: moment. Perhaps it would only be good for individual movement. In
: fact, I think thta it would mimic a single man rather well. The man
: takes on the closest, weakest enemy.
As you say, this solution is fast but sub-optimal. There's no provision
or mechanism for combining the firepower of several allied units against
a single enemy unit. That's a situation that occurs in both the strategic
arena and the tactical.
On a related subject, I wonder how one would best determine how many
units to allocate to the attack against a given enemy unit? I can think
of two approaches:
a.) The AI operates on a battle-to-battle basis, always strives to
achieve a certain ratio (3:1) or certain probability of kill (say, 90%)
and allocates units (depending on their proximity to the battle) to
achieve this;
b.) The AI works on a more 'big picture' basis, attempting to maximize
OVERALL probability of kill across several battles (i.e., willing to
take a 20% chance of success in one battle for three others at 90%).
Intellectually, option 'b' is more appealing, and more reflective of
how most gamers actually play. You balance your needs and are sometimes
willing to sacrifice one unit to save several others.
There's no need, nor is terribly desirable, for the AI to attempt to make
this tradeoff across the entire battlefield. I think we could tie this in
with the influence mapping suggested earlier to easily identify sub-areas
of the battlefield that the AI could make the tradeoffs in, perhaps by
using some type of edge detection across the values of the hexes?
Steven
==============================================================================
I have been paying close attention to this thread and the Influence Mapping
one and their are two observation I have made:
1) First, the influence mapping algorithm proposed (not the priority queue but
the previous one) seemed very effective but is computationally intensive.
However, I expect it would not have to be computed on every game turn and that
instead, modifications could be made to an already computed influence map to
obtain a sufficiently good approximation. (eg. When your troops move, you
increase your influence in one hex and decrease it in the other, but your
influence in the area, ie. adjacent hexes, remains approximately unchanged.)
Only when units are destroyed or after a number of game turns would you have to
go through the big expense of applying the influence mapping algorithm to get
an accurate map.
2) The search for a fronts is extremelly important in planning your strategy
but only looking for the front only gives you half the picture. Let me expand:
When I play war games, my first priority is to defend at fronts so my troops
are not overunned. Maintaining sufficient power fire to DEFEND at the front is
my number one priority (excluding exceptions here and there). Forget about an
offensive for the moment. That comes later.
My second priority is finding, creating and assaulting "targets of
opportunity". These are enemy units or objectives which are not well defended
and usually isolated. Unfortunately, the influence mapping algorithm would show
the hexes where these targets of opportunity are as under my control if they
were surrounded by my troops. This enemy unit may be far from the front but is
an unit that every one would attack immediately (excluding exceptions here and
there.)
My last objective, once the destruction of all targets of opportunities has
been addressed, is to ATTACK on the fronts where I have superiority.
My beef about all this is that the current discussion does not include and
detect these targets of opportunity. I think what need to be done is to compute
two influence maps:
a) One map computed the standard way which defines fronts and zones of control.
b) One map computed the standard way except that the influence of opposing
forces does not affect the value of a hexes occupied by a friendly unit. Hence,
a hex occupied by a friendly is always positive, a hex occupied by a foe is
always negative.
Map b) would show target of opportunity since one or a few hexes would have
negative values while being surrounded by large positive values (Large
derivatives would identify these areas) and the map a) would show that you have
a large influence on that enemy occupied hex and hence, could destroy it
easily.
Map b) would also identify which of your units are about to be destroyed
because they are greatly out numbered (the opposite situation) and some
strategic decision would have to be made about sacrificing , regrouping or
reinforcing the unit.
Map b) would also indicate where on the front, identified with map a), you
should strike since it would identify where the enemy is the weakest and you
the strongest. ie. map a) identifies fronts as hexes where the influence value
is zero but the derivative is large. Map b) values at the front hexes will
indicate which side is on the defensive or offensive along each portion of the
front. This is crucial to 1) DEFEND along the front, and 2) start an offensive
where the enemy is the weakest on the front.
Marc Carrier
==============================================================================
==============================================================================
I apparently missed a few articles here as well. Judging from the next
post I have, there appear to have been several responses (at least 3) to
Marc Carrier's comment above. Again, if anybody has the originals I'd
love to get a copy to incorporate here.
==============================================================================
==============================================================================
Marc Carrier (mcarrier@bnr.ca) wrote:
: In article <3q44ru$52r@hasle.oslonett.no>, grahamh@oslonett.no (Graham Healey) writes:
: |> In article <3ptn8e$o9g@bmtlh10.bnr.ca>, Marc Carrier wrote:
: |> >
: (SNIP...)
: |> >My second priority is finding, creating and assaulting "targets of
opportunity". These are enemy units or objectives which are not well defended
and usually isolated. Unfortunately, the influence mapping algorithm would show
the hexes where these targets of opportunity are as under my control if they
were surrounded by my troops. This enemy unit may be far from the front but is
an unit that every one would attack immediately (excluding exceptions here and
there.)
: |> >
: (SNIP...)
: |>
: |> I think you are overdoing the targets of opportunity (TOP's). Going for
<<<>>>
: I disagree!
:
: First, I agree I might have over emphasised the "creating" targets of
: opportunity part of my statement. But when one exist, taking adventage of
: it should be considered prior to carrying on your move towards your
: objectives. A single enemy unit behind your lines or out on the flanks
: can cause major damages later on if not addressed.
: Example: In Clash Of Steel, I win the game on the eastern front by
: sending single tanks around and behind enemy line to cut supplies, then
: I destroy the unsupplied units. Whether I play the AXIS or the
: ALLIES, the strategy usually works since the COS AI is not very good at
: recongnizing that enemy units are about to cut his supply routes (In
: fact, the COS AI is not very good period).
OK now its my turn to disagree. In my games I have found that when I
allow myself to be distracted from the overall picture to try and take
some trivial advantage(eg some poor soul stuck behind my lines without
supply and/or support) I lose. IMHO one of the main reasons behind this
thread is the realisation that taking time out from the pursuit of your
stratigic objectives to claim a tactical victory is poor play. One
mustn't forget that strength is only one of many factors which decide a
battle, in fact one of the less important IMO. Time, morale, position,
cohesion, leadership, etc are IMHO more important than mere manpower.
This is shown time and time again, from Alexander the Great, to Hannabal,
to William the Conquerer(an example of cohesion), Pitt, Frederik the
Great, Napoleon, et al, WWI, Vietmam, Korea, Hundread Years War as
examples of the effects of neglecting those other factors. (I can
explain my reasoning behind each of the examples but will do so only by
email for brevity). Oh and Israel and WWII German occupation of france
as an example of time. In each case victory was ensured against
signifigant numerical odds by the recognition of the relitive
inimportance of overall strength. It is this realisation which is
proving hard to teach a computer.
: In chess, unless you can see that you can check-mate your opponent in a
: number of moves, your rarely pass the opportunity to capture one of his
: pieces if you will not lose anything. What you have to be careful about
: is that doing so is not a trap by your opponent to open up your defenses
: and that you will not end up in a less desirable state.
I would here remind you of the gambit. And the sacrifice. I have won
many games of chess simply because I had a three or four move lead in my
development, bought with a couple of pawns, which I used wisely. I
personally consider this a good analogy to taking the time, and effort,
to pick off an insignifigant force left behind the lines.\
: The point about my previous post was that their is a distinction between
: being on the defensive and offensive on a front. And maximizing contact
: points over time is something you usually do only if you are on the
: offensive. So far, many good algorithms have been proposed to identify
: fronts. Now I am turning my attention to identifying the state of the
: troops on that front (Offensive/Defensive). Further more, if troops
: are on the defensive, can they stand or must they fall back and regroup?
: If they are on the offensive, can they attack now or should they wait to
: group and concentrate fire power instead of trickling into combat?
Good questions.
One question of my own is how you might represent time on an influence
map? I have a feeling that if we could somehow represent the map w.r.t
as a 2D-vector field we might be able to quantify the effects of 'attacking
now' vs 'attacking in strength'. I seem to remember someone mentioning
that they were using Electo-Magnetic Field theory to aid in producing a
good graph. As an electrical engineering student I know some theory
regarding vector fields however representing them on a computer is
something I don't know anything about. I was thinking though if you
considered the level of control the angle of the vector, say PI/2=Completely
under my control, and -PI/2=Completely under their control, you would be
left with the magnitude of the vector to represent some parameter w.r.t.
time. So if the resulting vector was in the 1st or 2nd quadrent I would
have some sort of advantage w.r.t time at the location, and a
disadvantage in the 3rd/4th quadrants. The dig' below might help.
|
|
Enemy Control | My Control
My time adv | My time adv
|
|
==============================
|
|
My Control | Enemy Control
Enemy time adv| Enemy time adv
|
|
Now of course you could swap them and represent the time variable by the
angle but I was thinking that if you represent the strenth by an angle
then you can have no poles(points going to infinity) in the final
function. This should help with array bounds or the like. Still I have
no idea how you might form the time function(the strenth function should
require only a little modification to apply and I will take a shot at it
after exams).
Well what do you think?
and please no posts telling me how computationally intensive its going to
be, I all ready know.
Andrae.
==============================================================================
In article <3qmg26$pv0@dingo.cc.uq.oz.au>, ccamuys@dingo.cc.uq.oz.au (Andrae Muys) writes:
|> One question of my own is how you might represent time on an influence
|> map? I have a feeling that if we could somehow represent the map w.r.t
|> as a 2D-vector field we might be able to quantify the effects of 'attacking
|> now' vs 'attacking in strength'. I seem to remember someone mentioning
|> that they were using Electo-Magnetic Field theory to aid in producing a
|> good graph. As an electrical engineering student I know some theory
|> regarding vector fields however representing them on a computer is
|> something I don't know anything about. I was thinking though if you
|> considered the level of control the angle of the vector, say PI/2=Completely
|> under my control, and -PI/2=Completely under their control, you would be
|> left with the magnitude of the vector to represent some parameter w.r.t.
|> time. So if the resulting vector was in the 1st or 2nd quadrent I would
|> have some sort of advantage w.r.t time at the location, and a
|> disadvantage in the 3rd/4th quadrants. The dig' below might help.
|>
|> |
|> |
|> Enemy Control | My Control
|> My time adv | My time adv
|> |
|> |
|> ==============================
|> |
|> |
|> My Control | Enemy Control
|> Enemy time adv| Enemy time adv
|> |
|> |
|>
|> Now of course you could swap them and represent the time variable by the
|> angle but I was thinking that if you represent the strenth by an angle
|> then you can have no poles(points going to infinity) in the final
|> function. This should help with array bounds or the like. Still I have
|> no idea how you might form the time function(the strenth function should
|> require only a little modification to apply and I will take a shot at it
|> after exams).
|>
|> Well what do you think?
|> and please no posts telling me how computationally intensive its going to
|> be, I all ready know.
|>
|> Andrae.
This was somewhat the idea I had w.r.t. using two influence maps since there is
more than just the soil you control that determines your posture. However, i
had not considered time as a second dimentioned but it makes a lot more of
sense and the simple matrix you presented with its four quadrant can simply
summarized the four behaviors I mentioned earlier:
1) retreat and regroup
2) stand and defend
3) stand and group / prepare for attack
4) attack now (attack who is another question though.)
On the subject of how to represent a 2D-vector field on the computer, use a
rectangular coordinate system such as with imaginary numbers in the form a +
ib, instead of angles and magnitudes. You can store it as two different maps
(array) or as an array of records/structures with two fields. I am sure one of
these two will be better in terms of computational efficiency than the other
because of the indexing involved but I do not know which one off the top of my
head.
Now, how do we represent time? One method that came to mind would be to use
the normal influence mapping algorithm proposed and compared the results after
n iterations and 2*n iterations where n < number of iterations required for
value to stabilize and converge. Basically, compute the map with the influence
of the units propagated n times which shows your more immediate influence and
compare it to the map with the strengh propagated 2*n times (for example) which
is your influence in the more distant future. (In not too sure this thinking is
correct but I will do some simulation this weekend to try it out.)
An Example: After n iterations , the influence map could show that the ground
where a friendly unit is located is under enemy control (ie. lots of enemy
units close by) however, after 2*n iterations, the influence value might turn
positive, indicating that a lot more friendly units are close enough to
reinforce the position. (I want to simulate this to see if this can happen with
the influence mapping algorithm.)
One problem I see with this is that the group of friendly units that could
reinforce the position will have its influence spread all around and many
friendly units in enemy territory may count on that reinforcement when the 2*n
map is considered. Unfortunately this method does not help to make the decision
of where the reinforcement should go and the units in enemy territory that do
not get the reinforcement will die if they stand.
Marc
==============================================================================
I've read, with some interest, all of the proposals for wargame
AI, and I haven't seen this technique postulated. This is the technique
I intend to use for my Fantasy Wargame Engine.
First, there are two objectives that are possible in any tactical
level combat: 1) Offensive, 2) Defensive.
Offensive: Destroy, or severely damage the enemy's capability to hold the
field. OR taking an objective.
Defensive: Protect an objective or 'holding the line' against enemy attack.
Both of these rely on two things: concentration of force and
taking and holding good ground (ground that gives you the best offensive
and defensive capabilities).
The first thing the AI must do is to look for good ground on the
battlefield. These points are used for anchors for any offensive or
defensive operations. No units actually have to *occupy* the ground,
they just have to protect against the opponent gaining it.
This is done by having the AI look for any enemy units near to
the ground every turn. If an enemy unit approaches the AIs 'good
ground', the AI calculates how much force it must use to defeat the
enemy unit. Then it searches through all of its units to find the ones
that are least engaged (see below in concentration of force) and
detaching them to attack the enemy unit(s). Then simply move the units
chosen to the best ground in which to attack the enemy unit.
Concentration of force:
The *MOST* important thing in a battle is to decide where the
enemy is weakest and kick his ass there. This is why flank attacks are
so effective. Flanks are usually weaker than the center and are *not*
mutually supportable. Whereas if you attack the center, it can be
reinforced by the flanks (or rear) if need be.
Breaking the center will destroy an army because it isolates the
flanks (therefore they can't be mutually supporting), but breaking the
center is *hard* because it's constantly being reinforced by the flanks
and rear.
So, with that little military theory out of the way...
First you have to find the weak points in the enemy line. This
can simply be done by taking each enemy unit, add up its attack and
defense strengths, then add up the attack&defense strengths of the units
1 move away, and add them to the unit. The unit with the lowest score
will be the weakest.
Now this won't help if that unit happens to have 8 million
archers between the AI troops and itself. So the computer also has to
take into account "spheres of influence".
Basically, each unit has a sphere of influence, that is an area
of the battlefield where it can inflict damage on the enemy. The enemy
units must have a sphere of influence as well, where those sphere's
overlap is the contested area. Now, the idea is to try to get into a
position where the AIs sphere of influence is larger than the human
player's unit. This way the contested area is farther away from the
computer's units than the human. Note that the AI units and the Human
units might well be out of range of each other, but that doesn't matter.
Right now all the AI is trying to do is to control the field.
Then all the computer has to do is to move its units so that if
it's losing the strength battle in a contested area, it either moves the
outnumbered unit towards its other units (combining their contested
areas), or moving a reserve unit to the understrength unit thereby
reinforcing its contested area.
Now, here's where the fun begins...
The above model works fairly well with units making independant
decisions about where they want to go and who they want to attack. But
this is just the starting point!
The description up above mentioned a few things like detaching
units to defend a piece of ground, or reinforcement of in-dnager units.
This requires a "General" level of AI. The General has to make overall
decisions about the course of the battle.
Luckily the General only has to make two types of decisons.
1) Where is the enemy line weakest so that it can concentrate its forces
on that area.
2) Where is its line weakest so that it can reinforce the area with more
units.
Don't forget to have the general define some units at the
beginning of the battle as reserve troops. This can easily be
calculated. Just set back the units that have the greatest sphere of
influence and/or greatest strength *AFTER* it assigns units to control
the good ground.
Well, I've typed enough. If anyone has any questions, feel free
to E-Mail me (as I don't read this newsgroup often).
Chris.
==============================================================================
My apolgies to all for the lengthly quotes, but I didn't want any
quotes or responses to be out of context.
Christopher Spencer (clspence@iac.net) wrote:
: I've read, with some interest, all of the proposals for wargame
: AI, and I haven't seen this technique postulated. This is the technique
: I intend to use for my Fantasy Wargame Engine.
Oooohhh....sounds interesting! ;)
: Both of these rely on two things: concentration of force and
: taking and holding good ground (ground that gives you the best offensive
: and defensive capabilities).
: The first thing the AI must do is to look for good ground on the
: battlefield. These points are used for anchors for any offensive or
: defensive operations. No units actually have to *occupy* the ground,
: they just have to protect against the opponent gaining it.
: This is done by having the AI look for any enemy units near to
: the ground every turn. If an enemy unit approaches the AIs 'good
: ground', the AI calculates how much force it must use to defeat the
: enemy unit. Then it searches through all of its units to find the ones
: that are least engaged (see below in concentration of force) and
: detaching them to attack the enemy unit(s). Then simply move the units
: chosen to the best ground in which to attack the enemy unit.
You do address this somewhat farther on, but I'll go ahead and bring
this up here: I am somewhat concerned over the effects of finding those
units which are 'least engaged' and then detaching them to attack the
identified weaker enemy units. First, there may be some penalty for detaching
from combat, which must be taken into account in any such weighting of
possible options. Second, while it may be desirable to attack the enemy
in question I *may* want to finish off the unit I'm currently engaging
first, even if it is in the middle of a nest of enemy units. The enemy
I'm currently engaged with may only need one more hit/attack/whatever to
finish off, while the enemy unit I would *like* to engage may be a turn
of two away from its (presumed) objective. In other words, sometimes it's
better to take the bird in hand than the one in the bush.
This is easily solved by adding an additional 'cost' for disengaging
and/or adding value to the destruction of the weak enemy unit or units
currently being engaged.
: Concentration of force:
: The *MOST* important thing in a battle is to decide where the
: enemy is weakest and kick his ass there. This is why flank attacks are
: so effective. Flanks are usually weaker than the center and are *not*
: mutually supportable. Whereas if you attack the center, it can be
: reinforced by the flanks (or rear) if need be.
: Breaking the center will destroy an army because it isolates the
: flanks (therefore they can't be mutually supporting), but breaking the
: center is *hard* because it's constantly being reinforced by the flanks
: and rear.
Good summation....
: So, with that little military theory out of the way...
: First you have to find the weak points in the enemy line. This
: can simply be done by taking each enemy unit, add up its attack and
: defense strengths, then add up the attack&defense strengths of the units
: 1 move away, and add them to the unit. The unit with the lowest score
: will be the weakest.
: Now this won't help if that unit happens to have 8 million
: archers between the AI troops and itself. So the computer also has to
: take into account "spheres of influence".
: Basically, each unit has a sphere of influence, that is an area
: of the battlefield where it can inflict damage on the enemy. The enemy
: units must have a sphere of influence as well, where those sphere's
: overlap is the contested area. Now, the idea is to try to get into a
: position where the AIs sphere of influence is larger than the human
: player's unit. This way the contested area is farther away from the
: computer's units than the human. Note that the AI units and the Human
: units might well be out of range of each other, but that doesn't matter.
: Right now all the AI is trying to do is to control the field.
: Then all the computer has to do is to move its units so that if
: it's losing the strength battle in a contested area, it either moves the
: outnumbered unit towards its other units (combining their contested
: areas), or moving a reserve unit to the understrength unit thereby
: reinforcing its contested area.
Okay, that's an interesting approach. Isn't it somewhat similar,
however, to the 'mesh analysis' approach suggested in the earlier thread?
In this case, rather than spreading the influence of a unit across the
map, it merely spreads to adjacent hexes. This is certainly simpler,
but don't you lose the ability to readily identify fronts and lines of
control?
On the other hand, it may be a good 'sub-system' approach for determing
actual engagement strategy. That is, having first used the mesh analysis
approach for mapping out the battlefield zones of control, one could then
use this methodology for picking out individual weak points.
: The above model works fairly well with units making independant
: decisions about where they want to go and who they want to attack. But
: this is just the starting point!
: The description up above mentioned a few things like detaching
: units to defend a piece of ground, or reinforcement of in-dnager units.
: This requires a "General" level of AI. The General has to make overall
: decisions about the course of the battle.
: Luckily the General only has to make two types of decisons.
: 1) Where is the enemy line weakest so that it can concentrate its forces
: on that area.
: 2) Where is its line weakest so that it can reinforce the area with more
: units.
This begins to approach something mentioned earlier, the concept
of breaking the AI into a 'General' and a 'Sergeant' makes a lot of
sense. The General draws up the overall battle plan and determines
what objectives to take. The Segeant determines the best way to do it.
Beyond Squad Leader will reportedly use a similar approach.
: Don't forget to have the general define some units at the
: beginning of the battle as reserve troops. This can easily be
: calculated. Just set back the units that have the greatest sphere of
: influence and/or greatest strength *AFTER* it assigns units to control
: the good ground.
Reserves are something we never even really talked about. Good point.
Steve
==============================================================================
Steven Woodcock _
Senior Software Engineer, Gameware _____C .._.
Lockheed Martin Information Systems Group ____/ \___/
Phone: 407-826-6986 <____/\_---\_\ "Ferretman"
E-mail: woodcock@gate.net (Home)
swoodcoc@oldcolo.com (Alternate Home)
woodcock@escmail.orl.mmc.com (Work)
Disclaimer: My opinions in NO way reflect the opinions of the
Lockheed Martin Information Systems Group, although
(like Rush Limbaugh) they should. ;)
Motto:
"...Men will awake presently and be Men again, and colour and laughter and
splendid living will return to a grey civilization. But that will only come
true because a few Men will believe in it, and fight for it, and fight in its
name against everything that sneers and snarls at that ideal..."
-- Leslie Charteris
THE LAST HERO
==============================================================================
Steve Woodcock proclaimed:
>Christopher Spencer (clspence@iac.net) wrote:
>: detaching them to attack the enemy unit(s). Then simply move the units
>: chosen to the best ground in which to attack the enemy unit.
>
> You do address this somewhat farther on, but I'll go ahead and bring
>this up here: I am somewhat concerned over the effects of finding those
>units which are 'least engaged' and then detaching them to attack the
>identified weaker enemy units. First, there may be some penalty for detaching
>from combat, which must be taken into account in any such weighting of
>possible options. Second, while it may be desirable to attack the enemy
>in question I *may* want to finish off the unit I'm currently engaging
>first, even if it is in the middle of a nest of enemy units. The enemy
>I'm currently engaged with may only need one more hit/attack/whatever to
>finish off, while the enemy unit I would *like* to engage may be a turn
>of two away from its (presumed) objective. In other words, sometimes it's
>better to take the bird in hand than the one in the bush.
The best way of calculating this is to first apply the reserve
(if it can get there in time). If the reserve is commited, or if it
can't get there in time, then check the units that have the greatest
positive imbalance in their areas of contention.
The second method will (somewhat) violate the rules of
concentration of force, but it's better than losing the good ground.
>: Then all the computer has to do is to move its units so that if
>: it's losing the strength battle in a contested area, it either moves the
>: outnumbered unit towards its other units (combining their contested
>: areas), or moving a reserve unit to the understrength unit thereby
>: reinforcing its contested area.
>
> Okay, that's an interesting approach. Isn't it somewhat similar,
>however, to the 'mesh analysis' approach suggested in the earlier thread?
Hmmm....could be. If I'm correct in understanding which method
you are talking about, then it's very similar except that the only values
that need to be calculated are the contested area values. The
calculation of the contested area, then comparing the strength of the two
opposing units in that area *should* take much less time than the mesh
analysis approach since you are calculating only a bare small percentage
of the battlefield.
>In this case, rather than spreading the influence of a unit across the
>map, it merely spreads to adjacent hexes. This is certainly simpler,
>but don't you lose the ability to readily identify fronts and lines of
>control?
In the words of Robert E. Lee: "In front, behind, the direction
does not matter. We will fight them wherever they are."
A front is an artificial contruct devised to show the general
area of conflict between two forces. As a General, it is your *only*
consideration to take objectives, hold good ground, and protect your
supply line (a concept that also includes protecting industrial centers
and transportation infrastructure).
When the AI finds good ground, it moves to occupy it or deny it
to the enemy. It pushes out from there by extending the army group's
sphere of influence thereby denying the enemy room to maneuver or
deploy.
So, you see, the front will take care of itself. And the lines
of control will also take care of themselves if the computer maintains a
contested area strength>=the human player contested area strength.
Also, as implied by this scheme, if the computer is losing the
strength contest in the contested area, it will automatically shorten its
own line by moving the understrength units towards other units.
>
> On the other hand, it may be a good 'sub-system' approach for determing
>actual engagement strategy. That is, having first used the mesh analysis
>approach for mapping out the battlefield zones of control, one could then
>use this methodology for picking out individual weak points.
That makes for another step to the process and more "thinking"
time for the AI (not bad, but even *I* get bored at some wargames and
start shouting at the screen: "Come on!!"). Also, the extra step is not
needed as the sphere of control scheme, by reflex (implied by the
concept), will automatically take care of finding the front, and
maintaining good lines of control.
Think of it this way: Two amoebae (sp?) are fighting with their
cilia (the units). They're stuck in the same test tube in a limited area
(the battlefield). Each feels the genetic need to grow to fill the test
tube and can only do that by killing the other amoeba's cilia and pushing
its cell wall back.
Initially, the two amoebae are seperated by a certain distance.
However, they feel the need to expand. The growth is instinctive (AI is
programmed to do this, the human player needs to do this to gain control
of the battle).
The AI amoeba looks out with its sensors to the maximum range
that it's cilia can attack (with deady morphogens!!). Suddenly it sees
the contested area for a few of its cilia, and the Human amoeba has more
cilia in that area. Well, the DNA looks for nearby cilia that have a low
area of contention or none at all, and moves them to strengthen the weak
area.
The advance continues.
I hope this analogy brings across the basic theory behind what
I'm saying.
> This begins to approach something mentioned earlier, the concept
>of breaking the AI into a 'General' and a 'Sergeant' makes a lot of
>sense. The General draws up the overall battle plan and determines
>what objectives to take. The Segeant determines the best way to do it.
>Beyond Squad Leader will reportedly use a similar approach.
Precisely. It's how actual armies work, and there's a good
reason for that....why? Because it works!
>
>: Don't forget to have the general define some units at the
>: beginning of the battle as reserve troops. This can easily be
>: calculated. Just set back the units that have the greatest sphere of
>: influence and/or greatest strength *AFTER* it assigns units to control
>: the good ground.
>
> Reserves are something we never even really talked about. Good point.
Yah. I've beaten more AIs by probing the enemy line with my
front line units while holding back a sizable reserve. When I identify a
weakness in the enemy attack (or defense), I send my reserves in to bust
open the enemy line and kick 'em in the ass!
I want my AI to be able to do that.
>Steve
Chris.
==============================================================================
Christopher Spencer (clspence@iac.net) wrote:
: The best way of calculating this is to first apply the reserve
: (if it can get there in time). If the reserve is commited, or if it
: can't get there in time, then check the units that have the greatest
: positive imbalance in their areas of contention.
: The second method will (somewhat) violate the rules of
: concentration of force, but it's better than losing the good ground.
True, using the reserve is a logical approach, but I'm still a bit
worried that this overall technique will tend to force units to run
back and forth around the battlefield, engaging the weakest enemy unit
they see and/or grabbing the most valuable piece of real estate in the
immediate vicinity. Without some kind of factoring in the value of
an 'attack in progress', so to speak, I'm not sure that units using
this technique will ever finish the job.
: In the words of Robert E. Lee: "In front, behind, the direction
: does not matter. We will fight them wherever they are."
: A front is an artificial contruct devised to show the general
: area of conflict between two forces. As a General, it is your *only*
: consideration to take objectives, hold good ground, and protect your
: supply line (a concept that also includes protecting industrial centers
: and transportation infrastructure).
: When the AI finds good ground, it moves to occupy it or deny it
: to the enemy. It pushes out from there by extending the army group's
: sphere of influence thereby denying the enemy room to maneuver or
: deploy.
: So, you see, the front will take care of itself. And the lines
: of control will also take care of themselves if the computer maintains a
: contested area strength>=the human player contested area strength.
: Also, as implied by this scheme, if the computer is losing the
: strength contest in the contested area, it will automatically shorten its
: own line by moving the understrength units towards other units.
Hmmm.
While I readily admit that it may all be due to a difference in
semantics, I still think this is a derivation of the approach discussed
earlier. The influence of the units is only propogated to adjacent hexes
(which I admit is MUCH faster and may be 'good enough' to do good tactical
maneuvers on, mind you) and you're choosing to examine the battlefield
in a more piecemeal fashion.
I assume, although I didn't explicity see it stated, that objectives
are induced by marking those hexes/sites/whatever as the equivalent of
'extra good ground'?
: Think of it this way: Two amoebae (sp?) are fighting with their
: cilia (the units). They're stuck in the same test tube in a limited area
: (the battlefield). Each feels the genetic need to grow to fill the test
: tube and can only do that by killing the other amoeba's cilia and pushing
: its cell wall back.
: Initially, the two amoebae are seperated by a certain distance.
: However, they feel the need to expand. The growth is instinctive (AI is
: programmed to do this, the human player needs to do this to gain control
: of the battle).
: The AI amoeba looks out with its sensors to the maximum range
: that it's cilia can attack (with deady morphogens!!). Suddenly it sees
: the contested area for a few of its cilia, and the Human amoeba has more
: cilia in that area. Well, the DNA looks for nearby cilia that have a low
: area of contention or none at all, and moves them to strengthen the weak
: area.
: The advance continues.
: I hope this analogy brings across the basic theory behind what
: I'm saying.
This *does* help somewhat, actually. I'm still somewhat concerned
over the focus of the technique though. Without actually coding it
up (maybe I'll have time this weekend to try that experiment), it feels
to me as if units will rush to and fro.
: > This begins to approach something mentioned earlier, the concept
: >of breaking the AI into a 'General' and a 'Sergeant' makes a lot of
: >sense. The General draws up the overall battle plan and determines
: >what objectives to take. The Segeant determines the best way to do it.
: >Beyond Squad Leader will reportedly use a similar approach.
: Precisely. It's how actual armies work, and there's a good
: reason for that....why? Because it works!
But that's my point, I think. This approach seems aimed purely at the
General's side of things--"these are important objectives to seize, these
are units I'd like to see killed"--without consideration of the 'practical'
aspects of the problem (the Sergeant's job, in other words). Please don't
misunderstand; I think this is valuable IF being presented as an approach
for the General side of things.
Steve
==============================================================================
Steven Woodcock _
Senior Software Engineer, Gameware _____C .._.
Lockheed Martin Information Systems Group ____/ \___/
Phone: 407-826-6986 <____/\_---\_\ "Ferretman"
E-mail: woodcock@gate.net (Home)
swoodcoc@oldcolo.com (Alternate Home)
woodcock@escmail.orl.mmc.com (Work)
Disclaimer: My opinions in NO way reflect the opinions of the
Lockheed Martin Information Systems Group, although
(like Rush Limbaugh) they should. ;)
Motto:
"...Men will awake presently and be Men again, and colour and laughter and
splendid living will return to a grey civilization. But that will only come
true because a few Men will believe in it, and fight for it, and fight in its
name against everything that sneers and snarls at that ideal..."
-- Leslie Charteris
THE LAST HERO
==============================================================================
Newsgroups: comp.ai.games
From: bruck@actcom.co.il (Uri Bruck)
Subject: Re: Influence Mapping: Strategic . . .
Organization: ACTCOM - Internet Services in Israel
Date: Fri, 16 Jun 1995 13:05:10 GMT
Message-ID:
Sender: news@wang.com
Lines: 103
I thinkI can add something to the thread about influence mapping, using
the already mentioned idea of General/Sargent algorithm.
This may seem obvious to many of you, but it's a point worth mentioning.
The hierarchical division to General/Sargent can be used to save a lot of
computation time if each level sees the map in a different resolution.
Personally I prefer having four levels (am currently trying to implement
something using four levels of units) where the two lower levels
are actually represented as field units, and therefore structurally similar,
the two higher levels are command levels.
This design (with more or less levels) becomes effective if the General
only sees the map in a lower resolution than.
(Perhaps I should also mention that I like to use cartesian coordinates rather
than hexes, since I have no pre-computer war game experience, this deosn't
mean using squares - like Dune II apparently does, but continous coordinates)
Influence mapping can still be done this way.
Suppose we have different maps of the playing fields, in different
resolutions (sp?), each level sees the map in an appropriate resolution.
The General(HQ) sees the entire map in low resolution, it will see groups
of units as areas of influence, we could also add heading and velocity of
units to determine how dangerous they are to areas that the AI wants to
defend. A faster group of units would be more dangerous because it would
reach the AI area in less time. The AI knows it has several 2nd level
commanders at its disposal, it can assign one to defend a specific area,
it can assign a couple of others to secure a position that will threaten
an enemy installation, this will be done after low resolutions analysis
is done using perhaps one of the previously posted methids of influence mapping.
The 2nd level commanders - Colonels - receive their instructions, such as,
attack a certain area,= they would need a more detailed map of that area, and
perhaps the way to get there, it is not necessary to make the detailed map
for the entire playing field, only for those areas which the Colonels need
information about, if two Colonels need information about the same area, they
can use the same piece of map. Colonels have different kinds of units they
can use to carry out their mission. The units are grouped under sargents,
I see two possible kinds of groups, homogenous groups, or mixed groups,
provided the units in the mixed groups can travel the same types of terrain
at more or less the same speeds.
Colonels need to find the method that will give the best chance of success
in their mission. They can another method mentioned under several names
in the thread, like 'flowing' through the influence map and determine
the shortest route, finding the weakest spot etc.
They can try to determine which tatics would have the best chance of
success.
If they 'know' (pre-programmed knowledge) that destroying a certain defended
installation can be done in one of two ways:
1. head on attack
2. long range artillery first - short range attack later.
each of these tactics would state some requirements
(f'rinstance no.2 would require that the Colonel can use its long range units
to shell the destination, while the other forces maneaver into position
to attack - it would need to calculate the approximate amount of time
it would take to carry this out, it could also test the possibily of
using different balances)
In short the Colonel would have access to many generalized tactical
scripts for each command would have to choose the one with the highest
possibilty of success.
Sargents are simpler - They receive one of the basic command from the Colonel
and distribute them among their units, basic command like move, attack, stand
and hold fire, all the lower level stuff like changing direction, updating
position etc. is handled by the unit itself. The Sargent may receiv a command
to attack a group of units, and assign each of its units to on of the units in
the group. Most of the units in the group can be pretty dumb - the Sargent can
be used to check out the surounding area and adjust the movement orders if
necessary.
F'rinstance, if they are being shot at while en route, it would be up to
the Sargent to decide whether they should try to evade the attack and still
try to make it to their assigned destination, or dispatch some of the units
to take care of the immediate danger while the others continue on their
main mission.
This may sound comlicated to do at every turn - but then I was not thinking
of a turn based game in the usual sense, but something more along the lines
of Dune II, which runs continously.
What is left is detemining how often each level of command should be updated.
Units that actually move should be continously updated. The higher the level
the less updating one needs, what the higher level units should do is mostly
check on the progress of the current mission and things that may need
immediate attention. this can be done both by using the maps,and the reports
(In my implementation I update the maps about every six program cycles, when
considereing a turn based game this sound too slow, but I my design was
a continous play game, to prvent jerkiness, I update 1 sixth of the
general map, every turn)
Reports - just as commands flow down the command hierarchy, reports should
flow upwards, information from reports can sometimes greatly enhance the
information received from control maps, letting each command level know
the exact status of the units one level below, thus it can determine whether
its plans are being carried out successfuly, whether it is necessary to call
on resrves, change plan of action, give commands at the proper time.
(this assumes flasless communications - it would interesting to watch
what happens if we allow comminications to falter)
AI should also try to guess where the enemy intends to attack, recognize
concentrations of force before they happen, this is posssible, by
extrapolating movement vectors of groups o funits, this isn't precise, but
it give the AI a general idea where the enemy might converge and it could send
some forces to be in the vicinity, so they can at least slow down the
enemy forces.
Uri Bruck
==============================================================================
Christopher Spencer wrote:
> I've read, with some interest, all of the proposals for wargame
>AI, and I haven't seen this technique postulated. This is the technique
>I intend to use for my Fantasy Wargame Engine.
>:
>:Lots of stuff
>:
I would prefer a General/Sargeant AI over this. The General AI should:
1. Look at the types of troops you have
2. Look at the types of troops the opponent has
3. Determine a strategy that best suits the troop types
4. Given the constraint of the given geography, selects the best set up
and determines objectives.
Types of troops I would break into three categories:
1. Mobile
2. Infantry or ground
3. Missile
Let me site some historical examples of why I think this would work best:
1. At crechy bridge, the English had superior missile strength and
inferior mobile troops. Neither force had much infantry. Now, if the
English had made their stand on a hill in open country, the French would
have been able to threaten all sides then concentrate the forces on a
weak point. Instead, the English chose to defend a gap between woods,
which funneled the French mobile troop into the English fire and enable
the English to set up a short defensive line to repel what French made
it through the fire.
2. During the era of Phalanx combat, high ground was a disadvantage. Missile
fire at the time was not very effective and more effective for disrupting
formations. The general's goal was to find an area were his Phalanx
would be on level, clear ground while they were fighting so that their
line would be the most cohesive.
3. When Marc Anthony invaded Persia, he had very little cavalry and the
Persians had a lot of effective horsebowmen. Then eventually forced
Marc Anthony's retreat not by keeping any ground but by taking advantage
that they could damage him from a distance and that the Romans were
not mobile enough to catch them.
You also have to consider the bigger picture. Let's say the battle is between
a small, mobile force and your larger force of infantry and artillery. Logic
would say that you should use your artillery to pin the opponent down, move up
infantry in a deliberate fashion to prevent the units from being disorganized
when the mobile units could possible attack, then overwhelm the mobile units.
But what if the mobile units are holding a bridge and are soon going to be
relieved by an army much larger than yours? Now, you need a whole new attack
method so that you can destroy the bridge as quickly as possible.
Dennis W. Disney
disney@mcnc.org
==============================================================================
In article <3rsl65$ade@stingray.mcnc.org>,
disney@mcnc.org (Dennis W. Disney) wrote:
>Christopher Spencer wrote:
>> I've read, with some interest, all of the proposals for wargame
>>AI, and I haven't seen this technique postulated. This is the technique
>>I intend to use for my Fantasy Wargame Engine.
>>:
>>:Lots of stuff
>>:
>
>I would prefer a General/Sargeant AI over this. The General AI should:
>1. Look at the types of troops you have
>2. Look at the types of troops the opponent has
>3. Determine a strategy that best suits the troop types
>4. Given the constraint of the given geography, selects the best set up
> and determines objectives.
>
[lot's of interesting and intelligent stuff deleated]
>You also have to consider the bigger picture. Let's say the battle is
between
>a small, mobile force and your larger force of infantry and artillery. Logic
>would say that you should use your artillery to pin the opponent down, move
up
>infantry in a deliberate fashion to prevent the units from being disorganized
>when the mobile units could possible attack, then overwhelm the mobile units.
>But what if the mobile units are holding a bridge and are soon going to be
>relieved by an army much larger than yours? Now, you need a whole new attack
>method so that you can destroy the bridge as quickly as possible.
>
>Dennis W. Disney
>disney@mcnc.org
I'm not a programmer but I know a little about strategy. You might try for a
"personality" algorythm of some kind -- e.g. a agressive, defensive, or
conservative algorythm which could be varied according to circumstances.
Two possible examples:
1 - The "Commanders" are alocated thier algorythm at the start of the game and
make all moves accordingly.
2 - The "Commanders" "adopt" an algorythm according to the intelligence
"available" to them.
Re: 1 -- A commander with a conservative offensive algorythm would lose the
bridge in the example above.
Re: 2 --
One historical example that comes to mind is Montgomery's defeat at Arnhiem
bridge. According to Cornelius Ryan, Montgomery's strategy was completely
"out of character". He made the attacks in a daring move based on available
intelligence. In a game AI scenerio this could be used as an example of a
personality template. The "Player", if he understands the weaknesses of a
particular opponent, can devise a strategy taking advantage of these
weaknesses -- the example of the bridge above could work this way. In other
words, the Player gets to "play against the man".
This may be of no use to anyone, but the idea of a game with "personality
algorythms" effecting strategies is intriguing to me. I mean, would anyone
really consider the Charge Of The Light Brigade good strategy? It was an act
of personality and ego -- and cost too many lives.
Owen Coughlan
PS, I don't want to argue about Montgomery, I'm just citing it as a tenuous
example.
==============================================================================
Dennis W. Disney (disney@mcnc.org) wrote:
: I would prefer a General/Sargeant AI over this. The General AI should:
: 1. Look at the types of troops you have
: 2. Look at the types of troops the opponent has
: 3. Determine a strategy that best suits the troop types
: 4. Given the constraint of the given geography, selects the best set up
: and determines objectives.
: Types of troops I would break into three categories:
: 1. Mobile
: 2. Infantry or ground
: 3. Missile
Okay. Reasonable enough partitioning.
: Let me site some historical examples of why I think this would work best:
: 1. At crechy bridge, the English had superior missile strength and
: inferior mobile troops. Neither force had much infantry. Now, if the
: English had made their stand on a hill in open country, the French would
: have been able to threaten all sides then concentrate the forces on a
: weak point. Instead, the English chose to defend a gap between woods,
: which funneled the French mobile troop into the English fire and enable
: the English to set up a short defensive line to repel what French made
: it through the fire.
: 2. During the era of Phalanx combat, high ground was a disadvantage. Missile
: fire at the time was not very effective and more effective for disrupting
: formations. The general's goal was to find an area were his Phalanx
: would be on level, clear ground while they were fighting so that their
: line would be the most cohesive.
: 3. When Marc Anthony invaded Persia, he had very little cavalry and the
: Persians had a lot of effective horsebowmen. Then eventually forced
: Marc Anthony's retreat not by keeping any ground but by taking advantage
: that they could damage him from a distance and that the Romans were
: not mobile enough to catch them.
Good examples. We have perhaps been lax on using historical examples
while considering the feasibility of these 'theoretical' AIs.
: You also have to consider the bigger picture. Let's say the battle is between
: a small, mobile force and your larger force of infantry and artillery. Logic
: would say that you should use your artillery to pin the opponent down, move up
: infantry in a deliberate fashion to prevent the units from being disorganized
: when the mobile units could possible attack, then overwhelm the mobile units.
: But what if the mobile units are holding a bridge and are soon going to be
: relieved by an army much larger than yours? Now, you need a whole new attack
: method so that you can destroy the bridge as quickly as possible.
This is the point I was trying to make earlier with regards to deciding
which units to use. Most of the algorithms we've discussed fail to 'weight'
their decision making based on what they're doing AT THE MOMENT. If already
engaged in battle, for example, they may very well be ABLE to run over and
nuke some isolated enemy unit, but they might be better off standing where
they are to finish off the unit or units they're presently engaged with.
Consideration of time in the equation is also a factor which we've
tended to overlook, as you point out. If we use an idea previously presented
regarding the computation of movement vectors, then the AI can use that
information to 'look ahead' and see that the enemy is maneuvering units
towards reinforcement of the bridge. That information could be used to
weight its decision making towards taking the bridge now while it can
vs. waiting for more reinforcements. The odds might be lower, but the
price of success LATER is so much higher that it may make sense to attack
now.
Steven