Game Theory

As I mentioned on Twitter (and probably Facebook), I have been studying game theory lately in the hopes of finding a use for game theory concepts in AI.I picked up a couple of books from my local library on the subject of game theory. The first book wasn't very useful at all. It would have been helpful if I had no idea what game theory was, but since I had a basic understanding of it the entire book was basically a review of things I already knew. I didn't get very far into the second book before another book I had ordered from Amazon arrived at the office.

After mentioning my interest in game theory as it relates to AI on twitter Dave Mark (@IADaveMark - President and Lead Designer, Intrinsic Algorithms) said I would find a lot of useful information. He suggested that I view his slides from his GDC talk last year and to see if I could gain access to the GDC vault to view his presentation. I was able to view the slides, but was unable to find anyone I knew with access to the GDC vault (No matter, I got the gist of it from the slides). He also suggested I grab a copy of his book. Now, I know how that looks, but seriously, his is the only book I can find that covers the topic of game theory in AI.

The book arrived last Monday and I just finished this afternoon and I have to say, I am glad someone else out there gets it. His entire book is dedicated to to creating dynamic behaviors in game AI where the AI reacts to situations and events as humanly as possible. Most, if not all, of the other AI books I have looked at simply go over the various tools you can use to get a functioning AI (decision trees, state machines, and such), but fail to mention how to get the AI to behave in a believable fashion.

All of that being said, I'm not sure I am 100% sold on some of the methodology. One of Dave's comments to me was that after reading the info I may decide that neural networks are no longer worth the trouble. And, while I do see the appeal, I would have to disagree. Dave and I are out to achieve the same thing; feed the AI with various info so that it can make an informed intelligent decision. Dave achieves this by creating a series of complex formulas designed to assign priorities to a number of choices the AI can make. The problem with this approach is that you have to create the formulas. With neural networks those associations are made for you. Once you have neural network code that works it is relatively simple to create new networks that take in available information and returns an action to take.

I am not saying my ideas on AI design are better than Dave's or even that his ideas are better than mine, in fact, a good mix of both is probably the best solution. One thing is for certain, though, I certainly have a lot more ideas about how to create even better AI systems.

For those interested, Dave Mark's book can be found here:


M Farzzezin zenin bden said... / May 8, 2011 at 8:26 PM  

i smell skynet in progress...

Dave Mark said... / May 8, 2011 at 8:43 PM  

I'm honored, Mike. Thank you for the mention.

Regarding the NN debate, however. The main difference is that, when my designer comes to me and says "I like what you have... but could you make this one behavior happen a little more often when these criteria are in place?"... what do you have to do to a NN? I can usually make a 5-minute fix of turning the right knob a little bit and re-running the game. With a NN, on the other hand, you have to retrain the data with the new behaviors and hope for the best. Other than that, we are both operating with weighted sums. I just know what my coefficients and weights represent... to you they are all perceptrons. *shrug*

Definitely a conversation for us to have over a beer at the next GDC, don't you think? ;-)

Sorian said... / May 8, 2011 at 8:47 PM  

That sounds like a plan. I have GDC 2012 already marked on my calendar.

As to your comment, I agree that for behaviors like that your method is probably better (I certainly can't think of an easy neural net fix off the top of my head). Luckily I didn't answer to anyone when I worked on the SupCom 2 AI, so if I had to retrain the AI it was because I wanted to do it.

CasualSax said... / May 14, 2011 at 11:24 AM  

I like that I only have to google Sorian to get here. :)

How hard would it be to have trained formulas? I have not read up on Mr. Mark's method, but, for example, to determine whether an archer attacks or retreats, have a (simplified) formula:
Outcome = X*ObjectiveValue - Y*DeathChance

And then have a learning session to find out what X and Y should be. Albeit more work, you could nest a Neural Network ontop of this more rigid structure, giving the AI a chance to learn without rigid variables. Then you could still go in and tweak the hardcoded formula. The main problem I see is that if the Neural Network is re-trained after the formula is adjusted, you risk having the AI unlearning those adjustments.

EdWood said... / June 1, 2011 at 7:18 PM  
This comment has been removed by the author.
EdWood said... / June 1, 2011 at 7:22 PM  

I am totally not a game-developer or programmer but it sounds reasonable about the it is in nature...experience mixed with your genes. Obviously this is the best mix...

Maybe the AI should be pre-defined but still capable of learning and improving. So maybe you really should drink a beer with that guy and come up with an uber-AI for the next games. :)

Dr Rehan said... / November 19, 2015 at 10:54 AM  

We just provide game theory problems and solutions for students who have problems in their subjects. We make sure their best success.

Post a Comment