Christopher A. Overholtzer, Simon D. Levy
We show successful application of a genetic algorithm (GA) to evolving challenging opponents (agents) in an existing, open-source first-person-shooter (FPS) video game. Each of an agent’s possible decisions (jump over obstacle, shoot at human) is represented by a single boolean value, and a set of such values is combined into a single data structure representing the "DNA" for that agent. At the end of each "generation" (game), surviving agents are chosen probabilistically based on their fitness (performance); their DNA is saved to disk, and they are thereby "reborn" to play against a human in the next generation. Qualitatively, these agents end up being a lot more fun for a human to play against, than agents whose difficulty comes from hard-coded increments or increased numbers. Quantitatively, we were able to observe counter-intuitive patterns in the density of certain "genes" in the population, confirming the validity of the evolutionary approach. Our success also highlights the value of open-source platforms for the AI community.
Subjects: 1.9 Genetic Algorithms; 1.8 Game Playing
Submitted: Apr 4, 2005