Genetic Programming in Games

Started by
16 comments, last by Ronnie Mado Solbakken 12 years ago
How is genetic programming being applied in modern games? I feel its need for bots, because they are just so damn stupid and having being an avid shooter fan, I have now lost faith through being desensitised by the same type of AI carried over from the last generation (the bots don't appear to be smarter). Which games are currently implementing this if anyway? (I feel like this is the graphics craze generation and it hopefully must be the last since it has ruined games for me).

Anyway I'm currently looking into researching genetic algorithms for my final year project at uni, so any general advice in this area?
(This is largely related to cybernetic(systems with react to difference within an environment), which had in another post here)
Advertisement
I am not sure about the actual implementation of GAs in games but there are quie a few theses about implementing GAs for bots, especially in Quake3 Arena.
Googling "Genetic Algorithm Bots" or "Genetic algorithm Quake 3" will yield some good results. Take this for example:

http://www.ai.rug.nl/~mwiering/thesis_j_g_gerrits.pdf

cheers
I'm not sure if it was in this version of the forums or the old one, but I remember IADaveMark(sp?) having a whole (long) thread about GAs and their use in games.

Beginner in Game Development?  Read here. And read here.

 


I'm not sure if it was in this version of the forums or the old one, but I remember IADaveMark(sp?) having a whole (long) thread about GAs and their use in games.

Seriously? It wasn't me. I can't really think of many examples where GAs are used.

Please note there is a difference between "genetic programming" and a "genetic algorithm". The former assembles commands in certain orders over time whereas the later is mostly used for tuning and tweaking values that are used for calculations. The code stays the same, only the variables that it uses change.

That said, if you have complex calculations with "knobs" that can be turned, you can use a GA to optimize them. Theoretically, it saves on the headache of manually tuning them. My contention (and this is what I lecture on quite a bit -- including at the GDC AI Summit last week) is that if your numbers are that obscure that you can't intuitively grok how to tune them, your design might be sub-optimal. Put your numbers together in such a way that you can intuit how their effect cascades through the whole model.

Dave Mark - President and Lead Designer of Intrinsic Algorithm LLC
Professional consultant on game AI, mathematical modeling, simulation modeling
Co-founder and 10 year advisor of the GDC AI Summit
Author of the book, Behavioral Mathematics for Game AI
Blogs I write:
IA News - What's happening at IA | IA on AI - AI news and notes | Post-Play'em - Observations on AI of games I play

"Reducing the world to mathematical equations!"


[quote name='Alpha_ProgDes' timestamp='1331476990' post='4921119']
I'm not sure if it was in this version of the forums or the old one, but I remember IADaveMark(sp?) having a whole (long) thread about GAs and their use in games.

Seriously? It wasn't me. I can't really think of many examples where GAs are used.[/quote]
Well I believe the thread was more along the lines of "DON'T USE (or STOP ASKING ABOUT) GAs IN GAMES". It was a long thread about people misusing them because they are a fad (or something along those lines). If it wasn't you, then my apologies.

Beginner in Game Development?  Read here. And read here.

 

From a research perspective, you should check out NERO by Ken Stanley: http://nerogame.org/ The premise is evolving neural nets to control bots in a FPS type game. He has done a lot of work on evolving neural nets (see http://www.cs.ucf.edu/~kstanley/), and at the risk of being flamed out of existence, I've incorporated a NEAT implementation for evolving a Pac-Man controller: http://sourceforge.net/projects/aipac/?source=directory

Again, all of this is from a research perspective and doesn't necessariliy apply to a commercial game.

-Kirk

[quote name='IADaveMark' timestamp='1331478504' post='4921128']
[quote name='Alpha_ProgDes' timestamp='1331476990' post='4921119']
I'm not sure if it was in this version of the forums or the old one, but I remember IADaveMark(sp?) having a whole (long) thread about GAs and their use in games.

Seriously? It wasn't me. I can't really think of many examples where GAs are used.[/quote]
Well I believe the thread was more along the lines of "DON'T USE (or STOP ASKING ABOUT) GAs IN GAMES". It was a long thread about people misusing them because they are a fad (or something along those lines). If it wasn't you, then my apologies.
[/quote]

Oh... that was NNs. Similar, however.

Dave Mark - President and Lead Designer of Intrinsic Algorithm LLC
Professional consultant on game AI, mathematical modeling, simulation modeling
Co-founder and 10 year advisor of the GDC AI Summit
Author of the book, Behavioral Mathematics for Game AI
Blogs I write:
IA News - What's happening at IA | IA on AI - AI news and notes | Post-Play'em - Observations on AI of games I play

"Reducing the world to mathematical equations!"

I believe that the premise that FPS AI is stupid-beyond-repair is flawed. There are plenty of good FPS bots out there from companies that decided it was a high priority. Killzone 2's bots, for example, are well-regarded.

The dirty secret is that it is not hard to make a bot that will completely crush people. The hard part is making a bot that feels natural and fun to play against regardless of people's skill levels.

Dave Mark - President and Lead Designer of Intrinsic Algorithm LLC
Professional consultant on game AI, mathematical modeling, simulation modeling
Co-founder and 10 year advisor of the GDC AI Summit
Author of the book, Behavioral Mathematics for Game AI
Blogs I write:
IA News - What's happening at IA | IA on AI - AI news and notes | Post-Play'em - Observations on AI of games I play

"Reducing the world to mathematical equations!"

I don't know Dave. I play BF3 from time to time, and when a fellow human being and I are able to cooperate to cause carnage without verbally communicating I find the experience very rewarding. None of the bots in the game are smart enough to do that.

The linked paper was attempting to build a cooperative team of bots, not an über bot. It was a good example of using machine learning to explore a problem. Im not sure I would have used a neural network, but the evolutionary strategy was a good one. The resulting bots played better as a team, both with and without a human. Aside from the initial experimental setup, i got the impression that building a new bot took very little time.

It would be a nice thing if there were bots who acted so much like people that you didn't know they were bots. The same thing could apply to MineCraft or a number of other games. NPCs are not a solved problem.

None of the bots in the game are smart enough to do that.

I think you will find that they are intentionally not smart enough to do that.

It takes very little effort to make a bot with perfect aim, perfect reflexes, and the ability to share perfect tactical information with fellow bots. That's probably the easiest type of bot to create.

Designing a bot that misses occasionally, doesn't always notice the player hiding in a corner, and sometimes lets its teammate be killed... That takes considerable thought.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

This topic is closed to new replies.

Advertisement