Newsgroups: comp.ai.genetic
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!howland.reston.ans.net!spool.mu.edu!news.nd.edu!news1.oakland.edu!rcsuna.gmr.com!kocrsv08.delcoelect.com!kocrsv01!news
From: JDQ@KOFSASDB.DelcoElect.Com (Jeff Qualls)
Subject: Re: GA For Starfleet Battles? or How To Kill Each Other (Efficiently)
Message-ID: <1994Nov4.133001.20393@kocrsv01.delcoelect.com>
Sender: news@kocrsv01.delcoelect.com (Usenet News Account)
Nntp-Posting-Host: koaspc11.delcoelect.com
Reply-To: JDQ@LNUSDE.DelcoElect.Com
Organization: Delco Electronics
X-Newsreader: WinVN 0.92.2
References: <enigma.2.00166BC7@indirect.com>
Date: Fri, 4 Nov 1994 13:30:01 GMT
Lines: 93

In article <enigma.2.00166BC7@indirect.com>, enigma@indirect.com (Andy Sherwood) says:
>
>I'm starting work on a GA type problem.  I've created two hideously large 
>spacefleets, replete with fighters, crusiers, dreadnoughts and carriers.  And 
>I want them to duke it out to the bitter end.  My theory is that if I give all 
>of the ships the basics of two dimensional navigation, a set of rules of 
>engagement (if it moves, shoot it :) and then use a GA to make the little 
>devils go.  Essentially I would use the GA to have the ships figure out how to 
>react to situations.  For example, a fighter runs around looking for ships to 
>blow up, and when it finds one it starts killing it.  However, at certain 
>percentage of damage inflicted upon it, the fighter should turn tail and run 
>back to the carrier for repairs.  Also, it would be nice if the GA would not 
>only finetune this percantage, but also teach the fighter how to fight.  i.e., 
>The thing starts out moving pretty much randomly, but would soon learn tactics 
>like slow/roll/roll back/pursue..  However, I'm afraid that might be a bit too 
>much to manage.. TONS of variables..  So I figured I would remove most of the 
>intelligence from the fighters themselves and place it with the ships that 
>command them.  Cruisers and Carriers can both send orders to other ships and 
>notify all ships whevener they have detected an enemy ships.  It would then be 
>up to the Crusiser or Carrier to either send a battalion of fighters, notify a 
>dreadnought to move in, or handle the threat by itself.  The GA would keep 
>track of success rates of actions against a particular foe.  For example, send 
>two fighters out against one carrier is ludicrous.  Sending out 4 dreadnoughts 
>and 1000 fighters is way overkill.  I'd like it to figure out the best thing 
>to do over time.  
>
>SO!  Essentially I want to know if my problem is really suited for a GA, or 
>should I stick to a standard AI (which could get boring :).  I'd really like 
>to discuss this at length, so please let me know what you think.  Its my 
>opinion that with dumb fighters(fast, wimpy) / dreadnoughts(slow, 
>deathbringers) and intelligent carriers(REAL slow, lots of fighters, repair 
>facilities, lots o weapons) / cruisers(pretty fast, low weaponry) the system 
>should be able to learn how best to fend off its foe.  I can make a table of 
>MUCH nicer stats on the ships for those interested.
>
>What do you think?
>
>
>

It's about time I heard somebody talk about something I was actually
interested in doing !!! :-)

I am, even as we speak, trying to put together some folks to computerize
my favorite game, STAR FLEET BATTLES. I have been wanting to do this
since I first played the game many years ago. The following is how I
intend to proceed:

Use a client server approach where only 1 computer, the server,
knows everything there is to know about the game. Each client corresponds
to 1 player and may control multiple ships. I would allow only 2 sides
and indicate which clients/players are on which side. Each client can
request certain information and get back only what it should know. (This
could really implement tactical intelligence rules!)

Any one or more of the clients could be a computer program that plays the
game or a human (or Gorn, Klingon, Hydran, ...). Since each player is
independent, a computer program should be able to control multiple ships
and their fighters, seeking weapons, mines, etc. and not try to kill
those on its own side whether human or computer controlled.

Now for the fun stuff . . .

Implement any techniques you would like for the computer player and have
your various solutions play each other and an occasional human. If you
have genes that control various priorities and such, you could then use
genetic procedures to crossbreed, mutate, etc. the best programs from any
generation.

Now the problem is what to put in the genes. You might try putting
things like a tendency to favor charging phasers, charging heavy weapons, 
reinforce shields, move fast, plot speed changes, and other things that
happen in the energy allocation phase. Then when the turn begins, other
genes would affect a tendency to close to short range, stay at long
range, cluster with friendly ships, pop a wild weasel, etc.

As you can see, the genes can help determine which choices to make when
there are choices to be made. The program then is written to do some
things automatically, like charge life support, and other things use
some priority scheme based on the value of the genes.

What you may try to create through this process is a set of genes that
work really great for Klingons but couldn't fly a Romulan with a double 
BPV advantage and another set of genes that are the reverse.

I may well be way off base with the genetic stuff, so if some of you
more knowledgeable folks could comment, I would find it very interesting.


-------------------------------------------------------------------
Jeffrey D. Qualls
JDQualls@lnusde.delcoelect.com
-------------------------------------------------------------------
