7
\$\begingroup\$

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

\$\endgroup\$
1
  • \$\begingroup\$ A really good paper on the topic, although it's more theoretical than technical: researchgate.net/publication/220061075/download It covers a lot on terrain generation with GP and EA. \$\endgroup\$
    – Nick
    Commented Aug 16, 2018 at 23:21

3 Answers 3

5
\$\begingroup\$

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.

\$\endgroup\$
2
  • \$\begingroup\$ So the general conclusion is no, this hasn't been used practically? \$\endgroup\$ Commented Oct 25, 2011 at 16:42
  • \$\begingroup\$ @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) \$\endgroup\$
    – thedaian
    Commented Oct 25, 2011 at 16:58
4
\$\begingroup\$

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.)

\$\endgroup\$
1
\$\begingroup\$

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.

\$\endgroup\$

Not the answer you're looking for? Browse other questions tagged .