Newsgroups: rec.games.programmer
Subject: Re: Computer-Controlled Players - simulated evolution
From: jbatka@desire.wright.edu
Date: 2 Sep 92 10:23:20 EST
Organization: Wright State University 

In article <Btx892.1yD@acsu.buffalo.edu>, goetz@acsu.buffalo.edu (Phil Goetz) writes:
> (Nicolai Czempin) writes:
>>cprem@marlin.jcu.edu.au writes:
>>> Now we've got this discussion rolling, is anyone actually going to begin
>>> coding a game with intelligent/evolvable CCPs.  It would be great to see
>>> a game that had a large variety of CCPs that can evolve into stronger
>>> opposition as the game develops.

A friend of mine and I are in the conceptual design phase of a space
combat game.  He is buying a Neural Network program to *possibly* help
in the creation of a CCP.  However, I am more inclined to pursue a GA 
generated CCP.


> To use genetic improvement of algorithms, you have to be able to change the
> algorithm randomly.  A bot language is rather complex, and changing (say)
> a GOTO to a LET A = B would probably not improve performance.  You would have
> to sort through a lot of mutants before you found a viable one.
> 
> The key to using genetic algorithms is to formalize the behavior/construction
> you wish to improve in a way such that a random change still produces something
> plausible.  I don't think that computer-controlled players can be generated
> using genetic algorithms.  You could write an algorithm that used a large
> number of parameters to determine its behavior, and then vary those parameters
> (i.e. define a standard deviation for each parameter, then create a descendent
> by randomly selecting a value for each parameter from a normal distribution
> around the parent's value using said standard deviation).  Or, you could have
> a data language which specified the construction of, say, a battlebot, which
> would be altered in random ways (i.e. make entire bot or subunits larger/
> smaller, armor thicker/thinner, weapons heavier/lighter; you may then have
> to 'renormalize' if bot construction is constrained by resources).  But a
> von Neumann machine program is not a good candidate for genetic algorithms.
> 
> So to speculate about GA is usually pointless unless you propose a SPECIFIC
> data encoding and method of varying it.

> Phil
> goetz@cs.buffalo.edu
> --
> The Usenet Oracle has pondered your question deeply.
> Your question was:
> 
>> help i'm a bug
> 
> And in response, thus spake the Oracle:
> 
> } <poof> you're a feature!
My general concept involves assigning weighted values to a parameter.
In this case say the parameter is your spacecrafts optimal engagement
range to an opponent.  The parameter would have some equation describing
average damage received / average damage given versus range.  The
CCP would try to minimize this parameter.  The weighting would be a
addition or subtraction to the range value.  I would give the CCP
equations similar to the one above for other parameters too.  In this
way I would have a string of weighted values (e.g. 10, 1, .1, 100, etc).
this would be my gene string for the GA.


-- 

   Jim Batka  | Always remember ...                        | Buckaroo
   Modemman   |    No matter where you go, there you are!  |   Bonzai
--------------+--------------------------------------------+--------------
              | Work Email:  BATKAJ@CCMAIL.DAYTON.SAIC.COM | Elvis is
              | Home Email:  JBATKA@DESIRE.WRIGHT.EDU      |   DEAD!
--------------+--------------------------------------------+--------------
              | 64 years is 33,661,440 minutes ... and a   | Beatles:
              | minute is a LONG time [Includes Leap Days]!|   Yellow Submarine
Newsgroups: rec.games.programmer