Well, I'm back and somewhat recovered from GDC. (It always helps to have a day of downtime built into the end of the week.)
From the comments that I and the rest of the participants received, the inaugural AI Summit was well received. I know that all of us were very pleased in not only the presentations that we each delivered but in all of the other ones as well. Apart from a false start at the beginning due to my laptop being under the proverbial weather with a virus, the rest of the two days went off smoothly.
I will post more on my reflections on each of the Summit sessions throughout the week. I did want to touch on a couple of high notes, however. We were very proud (as a group) to be able to deliver such a wide variety of topics. From animation to pathfinding to behavior to knowledge representation to layered goals and multi-threaded architecture, we hit a lot of the key topics. I think this was one of the comments that I heard the most... that there was a little bit of everything. Additionally, many people commented on how we mixed some past techniques with cutting edge stuff and then even some blue sky ponderings ("Human AI" and "Photoshop of AI". Additionally, people liked the sessions that weren't specifically technical such as the one on how to get along with designers.
For those that want to take a look at one man's views on it, Dan Kline did another of his "live blogging" exercises over at his pad, Game of Design. (Day 1 | Day 2)
In other GDC news, After the Summit, much of the week was anti-climactic. There were the 3 normal AI roundtables as well as one run by Alexander Nareyek. I will be posting pictures and audio from the roundtables on this page. You can also check out last year's stuff here. Eventually, I will have the pictures up from the AI Game Programmers Guild dinner (Sunday) and the regular annual AI Programmers Dinner (Friday) up as well. (Once I saw how dedicated to taking photos Petra Champandard of AIGameDev was, I figured I would let her do most of the shooting. I will link to those pictures as they become available.
Other than that, I only went to three sessions - one of which could actually be co-opted into an AI session. It was on balancing multi-player games. I figure this is an important facet of constructing AI as well for obvious reasons. I went to a roundtable hosted by Ben Sawyer about exploring emerging markets in games.
Peter Molyneux's lecture on how Lionhead explores experimental stuff was surprisingly lame for a Molyneux talk. I was just really hoping to see more of where they were going right now. I thought it was going to be a sneak peak session. (I should have suspected something when his PR handler was nowhere to be seen.) The only amusing moment was when he almost let out the name of the project... although it is likely no one would have gotten much out of simply a name. Oh well.
I did spend a lot of time on the Expo floor. Much of that time was spent nosing around my publisher's booth. I guess I sold quite a few books. The GDC store sold out of the 12 that they brought. Additionally, my publisher sold quite a few from their booth. Many of those sales happened while I was there. It took me by surprise to have people ask me to sign their copies. To be honest, it was more of an honor for me to be asked than I figure it was for them to receive a little of my ink. All I asked of them was to post a review out on Amazon when they got done. That would mean a lot to me (and the other people who might be interested in buying it).
Anyway, I plan on writing a bit more after I finally get my laptop cleared up. (Not looking good right now.) If you are coming into this post directly, you may want to check the tags below to see if I have written anything further about the Summit or GDC 2009.
As the week of GDC rolls out, I will be posting observations both here and on this page. Additionally, any files or pictures related to the AI Summit, will appear on this page. It's going to be a hectic week so I might not get stuff up daily. Be patient with me.
For those of you looking to find the stuff from last year, you can find it here.
I have been busily preparing all sorts of stuff at the last minute for the upcoming AI Summit at GDC. Having been involved since the initial discussions started at the last GDC, it has been interesting watching it grow.
The Summit is being put on by the newly formed AI Game Programmers Guild. As such, there are plenty of really sharp people involved. What was very striking, however, was how many times we all made comments expressing how interested we were in going to each others' sessions! Theoretically, we would put this Summit on for our own benefit even if there were no attendees at all! (Although I believe that the GDC folks would not be terribly pleased by that prospect.) Seriously, we could easily have filled the entire week with the information that we wanted to exchange I, for one, know that I will be at every single AI Summit session with rapt attention. I am even looking forward to hearing what my own co-lecturers, Phil Carlisle and Richard Evans, have to say in our session, "Breaking the Cookie-Cutter: Modeling Individual Personality, Mood, and Emotion in Characters"... and I have already looked at their slides!Â
One takeaway from that observation is that we will be talking about a lot of really nifty AI stuff. That much is obvious. Another takeaway, however, is that none of us... even the alleged "experts"... knows everything there is to know about AI. We all want to experience, learn, and expand. That desire comes from the somewhat discomforting awareness that there is a vast expanse of potential laid out before us. As the saying goes, "the more I learn, the more I learn how much I have to learn!"Â
I think that will be the underlying theme next week... not just at the AI Summit, but at the entire conference. Sure, there are students and... *ahem*... n00bs at the conference, but there are plenty of seasoned veterans sitting in the audience rather than standing behind the podium or sitting at a panel table. Why? There is plenty more we can do to advance ourselves and, by association, our trade.
Today I was invited to begin writing as an "Expert Blogger" for Gamasutra, the game industry's #1 news and information source. This is apparently something they have started recently. There are "member blogs" and "expert ones". It seems like anyone can start a member blog on the site, but the "expert" ones are invite only. Anyway, I'm in some good company. Some of the other experts that are blogging there include Mark DeLoura, Brenda Brathwaite, and Noah Falstein. Not bad company!
Anyway, I was encouraged to cross-post some of my material from IA on AI and Post-Play'em so if you follow those, you will see some duplication at times.
Anyway, mosey on over to my new blog at Gamasutra. I'm very honored to be included in that family.
In the first chapter of my book, "Behavioral Mathematics for Game AI," I actually use Poker as a sort of "jumping off point" for a discussion on why decision-making in AI is an important part of the game design. I compare it to games such as Tic-Tac-Toe where the only decision is "if you want to not lose, move here," Rock-Paper-Scissors where (for most people) the decision is essentially random, and Blackjack where your opponent (the dealer) has specific rules that he has to play by (i.e. < 17 hit, > 17 stand).
Poker, on the other hand (<- that's a joke), is interesting because your intelligent decisions have to incorporate the simple fact that the other player(s) is making intelligent decisions as well. It's not enough to look at your own hand and your own odds and make a decision from that. You have to take into account what the other player is doing and attempt to ferret out what he might be thinking. Conversely, your opponent must have the same perceptions of you and what it is you might be thinking and, therefore, holding in your hand.
Thankfully, there is no "perfect solution" that a Poker player can follow due to the imperfect information. However, in other games, there are "best options" that can be selected. If our agents always select the best options, not only do we run the risk of making them too difficult ("Boom! Head shot!) but they also all tend to look exactly the same. After all, put 100 people in the exact same complex situation and there will be plenty of different reactions. In fact, very few of them will choose what might be "the best" option. (I cover this extensively in Chapter 6 of my book, "Rational vs. Irrational Behavior."
Our computerized AI algorithms, however, excel greatly at determining "the best" something. Whether it be an angle for a snooker shot (the author's other example), a head shot, or the "shortest path" as determined by A*. After all, that is A*'s selling point... "it is guaranteed to return the shortest path if one exists." Congratulations... you inhumanly perfect. Therefore, as the author points out in his article, generating intelligent-looking mistakes is a necessary challenge. Thankfully, in later chapters of "Behavioral Mathematics..." I propose a number of solutions to this problem that can be easily implemented.
Anyway, I find it an interesting quandary that we have to approach behavior from both sides. That is, how do we make our AI more intelligent... and, how do we make our AI less accurate? Kind of an odd position to be in, isn't it?
It's sometimes interesting the places you can find nuggets that can be applied to game development. The Wall Street Journal has a regular column called "The Numbers Guy". I have often been interested or amused at what appears there. After all, having just finished a book entitled, "Behavioral Mathematics for Game AI", I am obviously sort of a "numbers guy" myself.
Anyway, today's column was titled Scrabble and Other Games -- on Boards, Fields, Courts and Ice -- Have Overvalued Points; Vermont Avenue Is a Steal. For the most part, the author is talking about how, with the addition of more words containing z, x, and q to the Scrabble Dictionary, it has thrown the carefully crafted point balance out of whack. Anyone who has played Scrabble has noticed that there are more of the common letters (e, a...) and only one each of the rare letters. Additionally, the point values are significantly higher for them to reward you for the difficulty in finding words to use them in. However, there are now more of those ostensibly rare words than were originally used... making it easier to use those letters... thereby making it easier to seriously cash in on those high value tiles. The contention by some players is that it has thrown the balance of the game off.
Or has it?
There are others that have pointed out that anyone can use those new words. Therefore, the balance isn't off at all. My follow-up comment would be that the scale of the scoring is different. When I played fairly high-level Scrabble for a while a number of years ago, a good round of 1-on-1 would be up in the 400s. We were using those words such as xi and suq and qat. After all, they are in the Scrabble Dictionary so why not? Now, if we had not been using those words and simply been using... well... simple words. Netting those 400+ points would have been marginally more difficult. The rounds may have been in the 350+ range instead. For both players.
However, this is when we view games as an aggregate. In a single game, reaching into the bag and pulling out the only letter x or the only letter z is, for all intents and purposes, a random event. If you pull out one of those singletons, by definition your opponent cannot. Therefore, the simple (random) act of pulling out a high-value letter gives you a significant advantage.
And that's the rub... novice players who don't know those letters look at the z and q and x as a handicap. ("What am I going to do with this damn thing?!?") Experienced people who fall asleep with the Scrabble Dictionary look at those letters as a fortuitous occurrence... and possibly a clinching one as well. The response is going to be more along the lines of "Ha! I got it and he didn't!"
So... while one could make the claim that it is only the scale of the scores that has increased, the actual result is that it has put more weight on the random factor of what is otherwise not supposed to be a random-centric game. And that I do have a problem with.
Football and Basketball
In other parts of the article, he mentions how other scores and probabilities have change. Football field goals. Basketball 3-point shots, etc. Looking at the latter, if you typically hit 50% on 2-point shots, then all you need to do is hit 33%+ on 3-point shots to make the decision to always go for them. After all, making 1 in 3 3-pointers is the same as 1 in 2 2-point shots. His comment was that, in college basketball especially where the 3-point range was shorter, many players could do that.
This is an interesting item to note as a game developer. If you were designing a game and deciding how far back to place the 3-point arc, you would specifically want to look at those very statistics. That is, at what distance does the probability of success merit increasing the payoff? If it is too close, most people will shoot from beyond it and it will take away the inside game. If it is too far away, no one will bother and will, instead, try to get as close as possible. It's a delicate balance.
Never Mind Boardwalk...
Another quick mention in the article is Monopoly. This one amused me. Back in about 1993, I whipped up a monster spreadsheet that determined that the best bet for buying and building was the light blue properties... the 2nd set on the 1st leg. This article confirmed that some dude did the same math and determined the same thing. Big deal. The difference was, I based mine on the probabilities of landing on various squares, various monopolies, etc., the cost to buy, the cost to build, and the income that you would receive. Apparently this other guy used a Monte Carlo method (32 billion random rolls) to come up with his answer. Wimp. Anyone can run a Monte Carlo simulation and get the right answer. However, you learn a lot more about the "why" of the situation by looking at the relationships of the various components. This is a form of multi-attribute utility theory that I cover extensively in my book.
Anyway, many of us think of game balance in the realm of RTS, TBS, or RPG games. However, even games where every unit is the same (e.g. checkers) can be an excercise in mathematical balancing. How much weight do I put on a given option? How important is it? Especially compared to other types of factors that might not be easily relatable? Again, this is something that I address in great detail in my book. It has always been something that is of interest to me and, thankfully, I seem to have a knack for it.
Go buy the book and you can have a knack for it too! :-)
I got steered to yet another new blog that I hadn't seen before, A Games Design Blog. (Not a terribly cryptic title, is it?) While the author, Rob Hale, writes more about game design in general than AI, his latest post, 7 Ways to Make your AI Smarter was, as you would suspect, about AI.
There's nothing terribly earth-shattering about what he says, but there are some good points embedded in the article. For example, I do like this bit:
You can have the most inteligent goal-oriented perfect-pathfinding AI enemies in the world but it doesn’t count for anything if the Player is killing them before they get to do any of that clever stuff.
The only difference in Halo between the AI in Easy mode and Legendary mode is that in legendary the AI has more health. This meant they lived longer and as a result did more cool clever things making them appear more inteligent. They were also more accurate and did more damage which supports my previous point.
I truly think that we need to break players from the mentality that you can just wade through enemies without a fight. That is a relic of a time when our AI sucked so badly we didn't WANT them to survive very long. Now, we have so many cool things we can do, it's a shame for enemies to not be able to show it off. I have sensed that change in some of the games that I have been toying with lately. This is a good thing. (e.g. see my Post-Play'em write up on Gears of War 2)
Another good quote is:
If I had to choose between Very Clever buggy AI and Very Simple Bug-Free AI I will always pick the Simpler choice.
Every time an AI gets a Path wrong or does something slightly unpredictable (in a bad way) is another notch against your AI appearing smart.
In a previous life, when I was an engineer in a recording studio, I would tell the bands I worked with, "No one will know if you leave that hard lick out... but they will know if you put it in and it doesn't work well." This is the same suggestion in a different world.
I believe a corollary to this would be, "don't fall in love with one cool feature so much that you leave the other mundane stuff behind." I've seen plenty of AI that has some nifty thing they are trying to show off and they end up leaving the normal, relatively easy stuff so rough that it drags the whole show down. I don't care if your AI does "Nifty Feature A" if the rest of it is garbage.
Anyway, take a look at the article. I'm definitely adding this blog to my subscription list.
Well, I guess my book has finally arrived on Amazon's loading dock. They have managed to scan it so that it shows the "look inside" logo and stuff. So those of you who would like to peruse the table of contents, the index and the first 5 or 6 pages may do so. Of course, if you really want to have some fun, you can do the whole "surprise me" bit. Keep at it long enough and you could read the entire book... although it might not make quite as much sense all jumbled up like that!
I also like that you can now see the cover art much better. (I did the cover artwork myself.) Incidentally, the faces on the blocks are, from left to right, Blaise Pascal, John von Neumann, and Jeremy Bentham... all of whom are referenced in the book. A big thanks goes out to my colleague, Richard Evans, for his review blurb that appears on the front cover as well. On the back cover is a blurb by Alex Champandard of AIGameDev.com who was nice enough to provide a review as well.
All in all, I'm quite pleased with how the sales have been going. I've been averaging anywhere between 5th and 15th on the "Hot New Releases of Game Programming" list and have actually been in the top 5 a few times in the past 6 weeks. I've also made it as high as #2 in game programming books overall -- although most of the time I'm in the middle of that very large pack. (e.g. 34th right now)
I'm looking forward to meeting many of you at the Charles River Media booth at GDC next week. (Remember, I charge 25 cents for autographs!)
Ok... this goes in the "Amen, brother!" category. Kris Erickson at PS3Informer.com wrote a column entitled Why Procedural AI is the Next Big Milestone in Gaming. In it, he smacks on the problem of ostensibly large-scale world with very repetitive content. He sums it up with one question:
How can we create realistic open world games where people that we meet in the street repeat more than the same 3 phrases over and over ad infinitum?
Can that be any more accurate?
At the upcoming AI Summit at the Game Developers Conference, I am on a panel "Characters Welcome: Next Steps Towards Human AI" where I hope to bring up this very notion. My observation is that, until we can solve the natural bottleneck of content creation, in-depth AI is going to be hamstrung. It doesn't matter that we can create 100's of subtle behaviors and interactions if our characters only have the voice acting and animations for 20.
With the reasonable success at procedural animation for Spore's creatures, I feel that we may be able to leverage that for human character animation. Many games are already using varieties of automatic animation creation (which, not being my speciality, is completely beyond me). However, we are definitely up against a wall with regard to voice assets. Until we can do realistic generation of speech, we are going to be hurting for a way to accomplish dialog interaction without pre-written lines for voice actors.
Even if we could pull of natural-sounding speech, automatically generating content is a bit of a quandary as well. If you have time to read 200 pages, I've started muddling through my colleague Rob Zubek's PhD thesis, Hierarchical Parallel Markov Models for Interactive Social Agents (pdf). I am only about a quarter of the way through, but I like where he's going with it. By applying rational reasoning to interactive speech patterns, we are taking a big step forward in being able to process input speech as well as generate responses. Combine that with natural-sounding speech synthesis and our games will take a massive leap forward.
In the mean time, I believe we have to apply procedural concepts wherever necessary to be able to bypass the content generation pipeline such as it exists now. After all, GTA 4 had a $100 million budget and people still thought that the content was limited. Can we, as an industry, even afford to continue down this route?
Ok... it was one thing to listen to Ray Kurzweil's vision of the next 10 years during his Keynote last year at GDC. It is quite another to see a video from Microsoft of what they think 2019 will look like. Ray suggested that the game developers (and mostly we AI folks) would have a lot to do with the future. I believe that MS would agree with that suggestion.