Jump to content
  • Advertisement
Sign in to follow this  
BlessmanTsanga

Genetic Programming in Games

This topic is 2394 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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)

Share this post


Link to post
Share on other sites
Advertisement
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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!