Genetic Programming in Games
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)
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.
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.
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!"
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!"
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]