In an effort to generate a solitaire opponent, I've come up with the Machine
People, who I have tentatively dubbed the Shen (from the Chinese demons).
Ships run by AI's. Write a strategy program with random variations and note
which ones survive. Example: "If within 12" of target, thrust to match
target's current vector as closely as possible. If distance >12", thrust
directly toward target at full thrust. If target has screens, rotate so
torpedoes bear; otherwise,
rotate so beams bear." Variations might be "Roll 1d6: Thrust 2/1/0
points
left/right of target's current position". The Machine People would have
smaller ships for the same capability (no crew accommodations), perhaps less
effective damage control, no missiles, probably strong hulls and armor. The
ability to fit more into a smaller space is offset by their inability to be as
flexible as a human in response to enemy action. If you lose a battle against
them, they will call their Feeders in to convert your ships to raw materials;
the Breeder ships take the materials and make new Hunter ships, using the more
successful programs from those who've fought.
There is a whole sub-genre of computer games that involve programming
robots. Most are called something along the lines of "Robot War." [1] I would
not at all mind seeing something similar for starships (Starbound II has a
programmable AI, but I haven't looked at it in detail). If someone (me?)
really feels like, I recall a similar system to the one quoted below in one of
the Cadet manuals for SFB.
[1] A friend's first programming experience was playing RobotWar with
me. A few years later he was an SQL programmer for a major credit card
company. Did I mention he often won, but not as bad as with dice (he's why I
quit playing SFB, he has a reverse Kochte effect with heavy weapons).
> At 8:45 PM -0700 4/22/99, Laserlight wrote:
> On Thu, 22 Apr 1999, Laserlight wrote:
> Ships run by AI's. Write a strategy program with random variations
i think this is certainly an interesting idea; i'm pretty sure i could reduce
my tactical skill to a fairly simple set of rules without too much trouble.
now, this may be because my tactical skill isn't up to much, but
i think it's also because low-level tactics in FT (in terms of turning
and allocating batteries) are really fairly simple in FT: it's the strategy,
the integration of individial ships' maneuvers into a greater whole, that is
challenging.
your proposed AI rules seem to neglect this aspect; for instance, nowhere is
there any provision for concentrating your forces on a single enemy target, as
i usually do when i play. i see no reason why that couldn't be added, but i
think it would be very hard. good luck!
> The Machine People would have no missiles
could you explain the reasoning behind this?
> probably strong hulls and armor.
i suppose if they don't need all those corridors, then bulkheads can be a lot
stronger.
Tom
> On Thu, 22 Apr 1999, Michael Llaneza wrote:
> There is a whole sub-genre of computer games that involve programming
programming robots as in writing code to control (simulated) metal soldiers?
cool. i've done a tiny bit on football players (that's football as in soccer),
but never soldiers. well, it was a civillian lab...
and then there's always CoreWars - why bother with physical robots when
your programs can just slog it out byte-to-byte in a computer's memory?
> If
there was something similar for robots in some version of wh40k. the programs
were essentially some sort of flowchart, and there were rules about how the
sequence could branch. there were no jumps or loops, until we added them. or,
you could just shell out 20 more points for a "cortex" and play the droid as a
regular character. i remember writing a chart which took up a couple of pages
and played 40k better than i did most of the time...
Tom
> your proposed AI rules seem to neglect this aspect; for instance,
You could have planning tiers:
1st tier: Engage closely/skirmish/fightin withdrawal
2nd tier: Squadrons disperse fire among small targets/concentrate fire
on large targets 3rd tier: individual ship maneuvers
> The Machine People would have no missiles
> could you explain the reasoning behind this?
a) any material which could go into missiles, could also go into another ship
b) for solitaire, I'd have to be the Machine People side guessing where to
place the missiles to hit the Alarishi ships, also played by me. It gets tough
to maintain the schizophrenia needed.
c) if I want fragile missile-bearing ships, I'll fight Islamics.
Machine People gives me a chance to square off with a completely different
type of
opponent--sort of like NSL, but more so.
> probably strong hulls and armor.
> Laserlight wrote:
> In an effort to generate a solitaire opponent, I've come up with the
Come to think of it....I have seen a "robot guidance" rules in an old issue of
the White Dwarf. (I think it was shortly after they went entirely warhammer.)
It involved a large set of tiles. Each tile said something different like
"move full speed", "Attack", or arrows, or disision boxs. All "programs"
started at the upper left tile, and moved to the lower right. So you could use
the tiles to make up any program you wanted. The only problem was if you had
more than a few robots with differant programs. You would run out of tiles...
> [quoted text omitted]
> On Fri, 23 Apr 1999, Laserlight wrote:
> >your proposed AI rules seem to neglect this aspect; for instance,
that's all very well, but then you have to have the 1st tier communicate with
the 2nd tier somehow. perhaps something like:
1st tier (by fleet)
- decide on STALK, CONFRONT, SLAY ;-)
2nd tier (by squadron)
- if STALK: pick a target area for fire, move to keep range open
- if CONFRONT: pick a target area for fire, move towards it
- if SLAY: helm free, weapons free
3rd tier (by ship)
- move
- if a target area picked, turn towards it
- if helm free, turn towards highest priority target
- figure out whether to speed up or slow down
- fire
- if a target area picked, pick a target in it and shoot it
- allocate all remaining weapons to priority targets
the hard part might be figuring out how to decide the top-level mode.
plus, you'd need some sort of negotiation between squadrons in the fleet and
ships in the squadrons to ensure that you didn't end up with every ship in the
fleet converging on one cruiser and mashing it whilst the rest of the enemy
fleet is ignored.
for completeness (and to irritate the hell out of the rest of the imperial
staff, who've seen them far too many times by now), i include the "standard
orders" i've been using in our ongoing PBEM. they are sort of a
toolkit for giving orders, so i just say "HMS Repulse: T-5 (Bismarck),
T-1, T-2", and the orders are spelled out fully elsewhere.
----- BEGIN QUOTED SECTION -----
* Definitions
All working weapons (including PDS) are by default "free", ie not committed to
anything.
If multiple conflicting orders are given for one ship, the order specified
first takes priority. i'll try to avoid this.
* Standard Fire Order T-1
"if there are attacking fighters, commit all free PDS and class 1
batteries to self defence. firstly, a class-1 should be allocated to
each
attacking heavy fighter group, if possible. all free self-defence
weapons
should then be allocated, PDS first and class-1s afterwards. attacking
fighter groups should be allocated a battery on the basis of their type:
torpedo first, attack second and all others last. if there are spare batteries
left, repeat the allocation with those free batteries."
[this could be done better, especially the stuff about allocating
class-1s to heavy fighters]
* Standard Fire Order T-2
"ignore ships of mass under 50. each free weapon should engage the largest
available target in the 0-12 range band. if there isn't one, engage the
largest available target in the 12-24 range band. if there isn't one,
engage the largest available target in the 24-36 range band. if the
weapon still has no target, repeat the selection procedure, but without the
directive to ignore small ships."
[in our PBEM, my ships are fairly big, and the restriction on size is to
avoid wasting fire on corvettes]
* Standard Fire Order T-3 (ADFC ship only)
"if there are fighters within range of PDS (using ADFC for control), use all
free PDS against fighters. prioritise torpedo, then attack, then standard
fighters. try to allocate one PDS to each group in order, and if there are
spare PDS, go round again."
* Standard Fire Order T-4 (ADFC ship only)
"given a specified ship to defend which is in ADFC range, engage fighters
attacking it using all free PDS. prioritise torpedo, then attack, then
standard fighters. try to allocate one PDS to each group in order, and if
there are spare PDS, go round again."
* Standard Fire Order T-5
"given a specified ship, fire at it all free weapons which are in range and
arc."
----- END QUOTED SECTION -----
i don't think this is too much of an intelligence leak, but if it is, i am
sure admiral wikan will let vader know.
"You have mailed GZG-L for the last time, captain ..."
> >> The Machine People would have no missiles
you'd have to have a deterministic mechanical rule for missile aiming;
something like "three inches closer to me than his projected endpoint". it
should be better than this, but then i'm no SML ace.
> c) if I want fragile missile-bearing ships, I'll fight Islamics.
Machine
> People gives me a chance to square off with a completely different
machine people might also go for the ubership approach; i'm vaguely thinking
of the berserkers (?) out of larry niven (?), or that big ship out of that
book by the guy who wrote honor harrington (didn't read it, just looked at the
cover). the one with the moon in.
Tom
> On Sat, 24 Apr 1999, Donald Hosford wrote:
> Come to think of it....I have seen a "robot guidance" rules in an old
started at
> the upper left tile, and moved to the lower right.
that sounds exactly like the robot programming system i used. we added a few
more types of tiles and made plenty of copies.
funny, really - there are a number of such two-dimensional programming
languages. i made a list a while ago:
http://users.ox.ac.uk/~univ0938/2dpl.html
i believe them to be entirely pointless.
Tom
GW robot programmed instructions were published in the old, long out of print,
Warhammer 40K Compendium. They also had programmed instructions for robots in
1st edition Epic, but they were not as well detailed. The Epic rules were
published in Codex Titanticus. I think they were both published in White
Dwarf, but I don't remmember the issue number.
> Thomas Anderson wrote:
It's more difficult than it looks: but by no means TOO hard: One Hint: Use a
Genetic algorithm.
I "grew" the AI for an Automatic Threat Evaluation and Weapon Assignment
system for some NATO frigates this way. I can give a _few_ details, not
the classy stuff (obviously), but the theory behind it.
First, pick your threat scenarios (this is the hard bit, and the devil is in
the details).
Second, come up with a whole bunch of Rules, including their contrapositives
and negatives. e.g. "Shoot at closest ship. Shoot at furthest ship. Take no
account of ship range etc"
These are the Genes of a system, usually a 3-state.
Third make a systems for generating systems.
Fourth, subject the resultant "animals" to the threat environment. Those that
survive get to breed. It's important that this be via sexual reproduction if
you don't want to wait a very long time! That is, each offspring gets either
the mother's or father's gene in each section of it's code, chosen randomly.
Fifth, wait. Eventually, your population will show distinct trends, with a
large majority having one or more of its genes being constant. These are the
important ones.
There's a bit more to it than this, but this should do as a start.
Laserlight scribbled:
> > Ships run by AI's. Write a strategy program with random variations
Alan scribed:
> It's more difficult than it looks: but by no means TOO hard: One Hint:
That's what I meant in the first place, I was just expecting you to read my
mind and pick out the details.
In a message dated 99-04-24 23:13:09 EDT, you write:
<< Alan scribed:
> It's more difficult than it looks: but by no means TOO hard: One Hint:
That's what I meant in the first place, I was just expecting you to read my
mind and pick out the details. >>
As it seems like I'm back on the list (RL can be a pain) I would like to now
how you would quantify the ships program into a GA?
-Stephen
> Stephen wrote:
I would do it by writing a simple object that encode all the functionality of
a device into it. Repeat this for all sensors and effectors. Develop a simply
language that operates the objects. Then toss some strings in this language in
a box, stir well by mixing, chopping and lengthening the strings. Interpret
the strings and operate the devices. Introduce heredity by ensuring that
effective strings are replicated more frequently. Prune strings that are
ineffective. Keep testing for up to 100 generations. Don't be afraid to start
over. The hard part is writing the test and evaluation part.
Watch a baby learning how to cope with its environment - its
software is evolving to control it's hardware.