Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

Are there any examples of companies or papers using evolutionary algorithms (EA) or genetic programming (GP) in procedural generation of content for games? Does this exist in the industry?

This is about the only place I have really found it:
http://pcg.wikidot.com/pcg-algorithm:automatic-game-design

I've checked these questions as well and I know my way around PCG:
What is "procedural generation" and how is it done?
Procedural Generation of Infinite Level
2d Procedural universe generation

share|improve this question
    
I don't know.. Never heard of EA or GP being used in games but there is certainly room for it. It's a slow algorithm, so I can see how this algorithm is limited to content generation, i.e. the algorithm is not a part of the game code, but used to create game content. Like the racing track, mentioned in your link. –  Diego Oct 25 '11 at 12:13
add comment

3 Answers

up vote 4 down vote accepted

In general, most games opt for the much easier and predictable method of scripting their AI, or use noise for terrain/content generation. Most games tend to avoid evolutionary/genetic programming because, frankly, it's often too expensive to implement, or too random for most players to understand.

Outside of a few mostly experimental and niche games like Darwin's Pond or the Creatures series, I really can't think of any games that use EA or GP. Black and White used the Belief-Desire-Intention model as the basis for it's Creature AI, but the game got a lot of negative response due to the Creature's behavior seeming to be random. It's likely that the second Black and White game used scripting for the creature AI.

share|improve this answer
    
So the general conclusion is no, this hasn't been used practically? –  Alex Shepard Oct 25 '11 at 16:42
    
@AlexShepard Correct. There just isn't enough benefit to implementing fairly complex algorithms when hand-made levels or scripted AI work just as well (sometimes, better). Of course, one thing it could be used is in "behind the scenes" tools, where a level is generated using EA or GP overnight, and the result is saved and used in the game (though there would likely be additional tweaking as a result of further testing) –  thedaian Oct 25 '11 at 16:58
add comment

thedaian's answer is a good one since it provides examples.

I think the main problem seen with these approaches is one of control. Once you start dealing with heuristics, which these ultimately rely on, it becomes very hard to evolve a system that does what you want it to do. Quite frankly, it's a matter of project cost and risk. If you have a game idea that you can implement without using these, or using some more direct procedural approach, the better for you.

The problem with even the most elementary AI approaches (take A* pathfinding for example) is that they take some time to first understand, and considerably more time to master. I think this keeps us closer to simpler, more static approaches. It doesn't feed innovation, but a quick return on investment is a hard thing to ignore.

Having said that, I'm definitely on the side of "If Nobody Tries It We'll Never Know". A GP project has been brewing in my mind for some time.

(Another approach you might want to look into is neural networks, it's often grouped with these as being a machine process that mimics natural forms of improvement -- in this case learning -- through elimination.)

share|improve this answer
add comment

This type of programming is generally used, if available, to give AI Agents their 'personalities'. Using the different values that are avaialble you can try and breed the 'best' stats for an agent to survive and thrive within the world but it is not something actively done during game play for one very good reason. Its a game.

You can have the computer learn to constantly defeat the player, but who is going to play a game that you can only lose at? The point is to present a challenge, and using genetic algorithms you can try and find combinations of AI to play in certain ways to represent easy, medium and hard settings. Or, for example in RTS games, play styles like a the rusher or the turtler.

These algorithms are more applied to developers looking to tune their game as opposed to being actively used in the games after launch. If you read the Game Programming Gem books you can find articles in them that give examples of how these are used for RTS games to help balance AI out.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.