IA Logo

IA Information

Dave Mark's books

Post-Play'em - Observations on Game AI

Posts Tagged ‘RPG’

Skyrim AI Weapon Selection

Saturday, January 14th, 2012

Say what you want about Lydia and her lack of pathfinding prowess, she does do some things right. The problem is (as is the case with all good AI), unless you are looking for it, you might not notice.

Early on in my relationship with her, I had noticed that she would switch between her bow and a sword. Later on, as is part of her duty (which she will remind you of in her sarcastic, resigned drawl), I had given her a bunch of stuff to carry for me. That included a few different weapons and 3 different magical staves with varying abilities.  During a combat, I noticed that she was using a paralysis staff to disable a mage we were fighting. After knocking his ass to the ground in such fashion, she joined me in whacking him into oblivion (not to be confused with “into Oblivion”).

I’ve seen her in other situations use the paralysis staff, switch to using two other more offensive damage staffs, and then pull out an axe in place of one of the staffs… all as the situation warrants and all in the same combat sequence. This is something I’ve  been looking for in games for quite some time.

I haven’t been able to completely discern whether she is using a specific rule-based system or if there is some sort of underlying utility model at work. I would tend to say that it would be at least a portion of the later. That is a model that is far more expandable which is necessary when you include the number of potential weapons (and other objects, I’m sure) and potential factors to consider. If I notice more, I will mention it.

Skyrim: It’s a Free-for-All!

Sunday, January 1st, 2012

Just had a battle out on the plains west of Whiterun. It was bad enough that I got jumped by a dragon. Then, the dragon flew a ways away and started chillin’ a nearby mammoth. Lydia and I continued to take potshots at Mr. Dragon (Mrs. Dragon?) while the mammoth ineffectually stared down its assailant. Eventually, the mammoth started running (right past me and Lydia!) and the dragon seemed to give up on it.

Unfortunately, I soon realized that there were a couple of mages wandering around the area who, for some reason, apparently decided that Lydia and I were far more menacing than the circling beast. And then there was the skeleton — who may or may not have been the product of the mages who started attacking me. By the time I dispatched the skeleton, the dragon had gotten bored with whatever it was he (she?) was fighting nearby and came back to visit. This all came to a rather unfortunate end… but that’s not what I came to tell you…

“There seems to be a serious lack of proper prioritization of targets.”

The point of all of this is that there seems to be a serious lack of proper prioritization of targets. For example, despite the fact that a mammoth might look awful tasty to a dragon, said morsel is not going to be able to attack you. Better to dispatch the pair of annoyances that are pumping arrows into you and come back for the hairy buffet later.

The same can be said for the mages. If there is a dragon cruising around, it seems rather silly to attack two relatively harmless bipeds. In fact, the chances of defeating the dragon (and therefore surviving) would go up considerably if it was attacked by a group rather than by a couple of individuals. An additional bonus would be that the dragon might take such a toll on your secondary opponents that it leaves you an advantage you might not otherwise have.

Obviously the target selection algorithm doesn’t take a lot of this into account. It’s really a matter of mathematical modeling. Ironically, it is the same sort of modeling that goes into non-combat games such as The Sims. The good news is that it is relatively simple to put together and can adapt to pretty much any situation that your NPCs find themselves in. It can also be  tied into the entire combat selection system so that the possible actions could include not attacking anyone at all (even running away, if necessary).

For those that are curious as to how such utility-based systems can be built, it is pretty much the entire point of my book, Behavioral Mathematics for Game AI.

Skyrim: Pardon the Interruption

Saturday, December 31st, 2011

This is a quick one. I have seen this numerous times in my few hours of playing, but I haven’t captured as many of them on video as I would like.

“They neglect to take any sort of context into account.”

People in Skyrim obviously have a proximity trigger with your character. If they have something to say, they will say it either when you get in range of them or vice versa. While this makes for some great immersion at times, they neglect to take any sort of context into account. They don’t observe what is going on and decide whether or not they should talk to you.

I don’t recall anyone doing it while I was in an active dialog tree, but there are certainly times when I am listening to something important — and especially if I am obviously part of a group discussion (such as in the two examples in the video). People doing their random walks will pass close enough to me to trip their trigger (so to speak) and say their piece. It’s horribly distracting.

“Real people have an awareness of unwritten social rules.”

The reason that this breaks immersion is that (real) people have an awareness of unwritten social rules. This is notoriously hard to get right in games. Richard Evans has been working on it for years — most notably with his work in The Sims 3. However, we aren’t solving for behaviors such as “don’t walk in on someone where they are taking a leak.” We are simply saying, “if I’m involved in something important, don’t interrupt me.”

If it is, indeed, the case that there is a boolean to not interrupt when a dialog is active, this is a simple fix. Apply the same boolean flag to when something important is going on that the player must listen to. In the case of the street preacher in Whiterun, this isn’t as big of a deal. By definition of his role, he is going to repeat himself. However, in the cases shown in the video, this is a one-time thing with important information… don’t play your random engagements.

“If I’m not
looking at you,
don’t speak to me.”

Another way of solving this is through a slightly more complicated method of simulating “eye contact”. That is, if I’m not looking at you, don’t speak to me. Let’s face it… that’s a common one that we all use in public anyway. In the case of the examples in the video, the 2nd one would have fallen into this category. The guard just happened to be walking by — behind me — and decided based on proximity to say his line. In the first video, at least I looked at the guy.

In effect, many of these rules can be combined together in some form of rule-based system… even an additive one using cumulative values. By assigning values to the various considerations (including a value on the importance of the message itself) you can define a threshold above which you are allowed to say the line. That solution would be much less brittle than the simplistic one that is being used here, and yet it is still lightweight and easily customizable by designers and programmers.

Skyrim: To Headlook or not to Headlook?

Friday, December 30th, 2011

While playing my initial few hours of Skyrim this week, I’ve noticed an interesting disparity in the way headlook is used by characters. While I enjoy headlook in games for the most part, there are times when it can either be overused (“why is everyone in town staring at me all the time?”) or used in such a way that it looks unnatural to the character. Here’s a video with a few examples. Watch it first because the commentary addresses the scenes within.


Look at Me When I’m Petting You!

First, the dog in Riverwood doesn’t seem to care that I’m there. With nothing else going on in the middle of the night, you would think that he would at least be interested in me. Instead, he just sits there staring at nothing. While that is perfectly acceptable for a dog to do (ours do it rather often), the problem arose when I actually “talked” to the dog. He barked in reponse — but wasn’t looking at me at all when he did so. He looked around randomly — but not towards me.

If you are going to make it so that the dog responds to being addressed, at least make him stand up and face you or turn his head to see you (if possible). You do this with enough other agents in the world, it shouldn’t have been hard to include a line or two of code to do it with the dog. (I have yet to test this with other animals in the world.)

Look at Me When You’re Talking To Me!

When I entered some tavern or other in Whiterun, I was immediately spoken to by the owner of the place. She was standing behind the counter. However, I noticed that she was not looking at me — just staring straight ahead. Ironically, she only looked at me when the server lady spoke to me (and mentioned her name). Then, she wouldn’t stop looking at me at all. One thing I forgot to test was to see if it was proximity based. That is, if I went father across the room, would she have stopped looking at me. All in all, with that sort of incessant tracking, I feel like I’m being targeted by and anti-aircraft gun. At least with the bar there, she had a reason to continue facing that one directly.

Move More than Your Head

Now to this clown Heimskr in Whiterun. As seems to be his job, he runs his mouth out in the town square. When I walked up to him, he started tracking me. (Grateful to have an audience, I suppose.) While it looked OK at first, at one point he raised his hands up… right between my face and his. He was still trying to look at me, but his hands were in the way. As I moved back and forth (after stopping to grab some lavender), he kept his body facing forwards and his hands raised — but his head kept tracking me.

It looked horribly unnatural to have his body pinned to one orientation — especially in a gesture that is meant to be for the audience’s benefit — and yet still move his head so much. Unlike the bartender above, he has nothing holding him to that orientation. I would like to see some pivot to the body as he addresses me that way.

Face Me Once in a While

This one is a little rough. While I commend games for not always having the agent face directly at you, my qualifier is constantly. Sure, orient your body differently as you move around! However, you aren’t being clever (or realistic) if you position your body so that it is facing away for some reason, point your head toward the player, and then leave it that way! In the video you will see 3 clips of people who happened to not be facing me directly when I started speaking to them. They didn’t orient towards me at all when they started speaking to me and didn’t fidget at all during the conversation. The result looked rather uncomfortable.

Not shown in the 3rd clip is that the speaker did reorient himself after we were jostled by someone walking rudely between us (more on that subject later). I thought that was interesting in that it triggered some sort of alignment code in the agent. Therefore, it seems that some such code exists, but just wasn’t being used.

How to Fix it

This really isn’t that difficult to fix. Not only would it look less uncomfortable, but it can be leveraged to make for far more engaging characters. All that needs be done is the following:

  1. If the player moves outside of a particular front-facing zone, pivot the body as well as the head. You don’t need to pivot to face him completely, only enough to get the head into a more natural range. For example, if the zone is 60° on either side of center and the player moves out of it, pivot so that the player is now 30° off-center instead. Try it on yourself and see how natural that feels.
  2. As you are talking to the player, reorient yourself once in a while through various shuffling animations. Again, make it so that your body is always somewhere between +/- 30° off of the centerline to the player.
  3. Don’t always stare at the player. People don’t do this in conversation. Randomize headlook more. Look around occasionally — even while you are talking but then glance back at the player directly. The points where you glance back at the player can actually be marked up with the facial animation so that you glance at the same time as important points you are trying to make. Otherwise, look around either randomly (and not all in the horizontal plane, either… up and down are OK, too!) or at other points of interest in the room. For example, people walking by, the performer in the tavern, windows and doors in the room, etc.

Anyway, these are just minor things that have jumped out at me in my initial few hours with the game. While not really bugs, certainly, the headlook issue breaks immersion for many people if it is not done naturally.

There are far more annoying things I have seen that will be addressed later.

Dragon Age: Origins — Final Thoughts

Wednesday, November 16th, 2011

Well, after messing around with it for over a year, I finally got around to finishing Dragon Age: Origins. I have to admit that the game grew on me after a while. Here are some final thoughts on it. (Note that you can read my earlier posts on the game.)

Custom AI Tactics

“I kind of liked dealing with the AI tactics.”

Once I finally dedicated a little bit of time to looking into it, I kind of liked dealing with the AI tactics. It’s a simple rule-based system, of course, but one that gives you a feeling of control. The reason that I specify “feeling” in this case, is that most of the rules are pretty obvious. For example, a rule for Morrigan might read “When there are 3 or more enemies clustered together, use Fireball.” I’m sorry, but that goes in the “duh” column. Really, that should be a part of the logic for the Fireball spell in the first place. The same goes for the “dual weapons sweep” logic that I used on my main character (for when I wasn’t controlling him). “If there are 2 or more enemies surrounding you, use dual weapon sweep.” (I also found that I used it with one enemy just because it looked cool and did great damage.) Regardless, many of the usage rules just simply made logical sense.

“The solution to this is to build the logic into the abilities themselves.”

The solution to this is to build the logic into the abilities themselves. If you are wounded, use a healing poultice (if you have one). If you are low on lyrium energy and have a potion, use it. If you are strong and have a shield, do a shield bash against your enemy. There really should be no need for the player to construct these manually. Of course, I don’t know what the chicken/egg order was on this mechanism and the “tactics” abilities that were built into the character customization. That is, did they create the AI tweaking mechanism and then decide to add the character abilities that allowed you to unlock more tactics slots or did they create the notion of “has better tactics” and have to come up with a way of expressing that?

“That character has that cool new ability but never uses it!

The unfortunate by-product of this is that I can see how it would be very frustrating for people who didn’t know that the tactics screen was there or didn’t understand how to use it. I’m sure there were more than a few people who would cry, “that character has that cool new ability but never uses it! This AI is stupid!” Of course, there is always the possibility that the reason this mechanism was in place was because they were struggling with how to have the NPCs use their skills intelligently. By putting the onus on the player, they absolve themselves of a little of the responsibility. I don’t buy this line of thinking because, by creating a customizable rule-based system in the first place, the battle is almost won.

Companion Pathfinding

“I usually was pretty pleased with their positioning.”

With Skyrim being out, one of the comments you hear about the companions is that they can do silly things like block doors or passages and be completely clueless about the fact that you want them to move. This is not something that I ever found to be a problem in DA:O. In fact, despite the fact that I usually had 3 other companions along with me, I usually was pretty pleased with their positioning. They followed at respectful distances, they didn’t get trapped behind geometry, they handled it fairly well when I would reverse direction on them, etc. Most of the time their “group” behavior was very believable.

There was only one time that I noticed anything really odd. I was in Dust Town in Orzammar and Zevran (easily my favorite NPC, by the way) managed to get up on a pedestal of some sort and was unable to get down. After some examination, I realized that it was an extension on either side of some stairs. He had somehow managed to enter it from the top of the stairs but couldn’t exit that way. Likely there was navmesh geometry on the pedestal (why, I don’t know) but no link to the rest of the mesh. For some reason, when my back was turned, he skipped a mesh boundary by being nudged off the main mesh. I’m just speculating here. Anyway, I had to actually exit the zone without him and come back.

Enemy Targeting

In an earlier missive on DA:O, I had complained about how the target selection seemed to be a bit nonsensical at times. Perhaps I got used to it or perhaps it wasn’t as bad as I initially thought… but this issue didn’t seem as bad as I had commented on earlier. There were times when I thought it was a bit odd, but it wasn’t altogether unreasonable. That, of course, has been one of my mantras for some time and, in fact, is something that I stress in my book: “Not always perfectly rational, but at least reasonable.” I don’t know if that was the goal here or if their targeting was simply sub-optimal.

Of course, with regard to my companions, some of it had to do with the tactics selection and aggressiveness settings. If I had them set wonky, they would act wonky. However, I can’t use that excuse with the enemies. On the fly, it is hard to determine what sort of logic they are using… e.g. “nearest visible” vs. “strongest”. This would be something I would have to record and slow down to decipher. However, since it doesn’t seem to be that weighty of an issue, simply “knowing” wouldn’t really change much.

Again, though, some of this is mitigated by the fact that you can control each character in turn. Is this a bandage, though? Are we at another chicken/egg moment? Did they allow you to control the character targeting because they felt people would be frustrated by the target selection? Probably not… it’s not that bad to force them to build a whole huge mechanism (character control) around it.

Scripted “Random” Conversations

I found the seemingly random chit-chat between companions as one of the most amusing parts of the game. I have to admit that it was so endearing, that it made me want to replay the entire game with different companion combinations just to see what all these conversations were. (The combination of Zevran and Morrigan was a riot!)

“You begin to get used to the fact that riiiighhhtt here someone is going to start talking.”

The initial impression is that these asides simply take place “whenever”. Conveniently, they would also take place when you really weren’t doing much else. It didn’t take long, however, to realize that there were “hot spots” in the terrain that triggered these conversations. Not to the extent that Place A triggered Exchange A; they were randomly selected from the available list. They were obviously placed in areas where you needed to do a bit of walking and, therefore, wouldn’t be interrupted with much else. The long bridge to the Proving Ground in Orzammar has one, for example.

The problem is when you have to walk the stretch more than once — especially in succession. You begin to get used to the fact that riiiighhhtt here someone is going to start talking. It’s even worse when you have to reload because it doesn’t remove the conversation from the potential list… and you may get stuck with the same one over and over. While I like the conversation as a way of both fleshing out the characters and making the scenic walks a little less boring, I have to wonder if there is another way of doing it.

Facial vs. Body Animation

“The lip-syncing is worthy of being looked into by the pop-music industry.”

While this doesn’t necessarily seem to be AI-related, I figure that it probably is. The facial animation in DA:O is great. The lip-syncing is worthy of being looked into by the pop-music industry. With how good the lip-sync is, I found myself staring obsessively at the mouth only while people were talking. Maybe because I was drawn to the only realistic part in the whole face.

The rest of the facial animation is spotty, however. I would love to see more expression in the rest of the face, too. The eyes, eyebrows, and, in fact, the entire head, needed to be more animated. While the head wasn’t “Fallout” creepy, it needs to move more… look around a bit. Same with the eyes. Little tiny twitches are nice, but people do things like glancing at the floor, etc. You’re on the right track, but need to do more.

“People don’t just wave their hands randomly.”

The body animation during conversations was simply horrible, though. I like the whole “hand-wavey” thing that they tried to do. It’s better than standing perfectly still. On the other hand, people don’t just wave their hands randomly — they use them to augment what is being said while it is being said. They use it to punctuate words much the way I used italics in the this paragraph. If I had italicized different words that were obviously not meant to be stressed, I wouldn’t have communicated the same thing or, worse, it would have distracted or even confused the reader. That’s what I felt about the hand motions in DA:O. They seemed vaguely relevant but so imprecise and ill-timed that it made things worse rather than better.

The solution likely lies in a markup of the dialog to map to the animation selection. By tagging the stressed words with the appropriate gestures, you can match them dynamically. The trick, of course, is that you have to back-time the start of animation so that you can finish on-time. The shorter the target animation, the easier this is to pull off.  That would actually require two markers… e.g. “move to position” and “execute”.

For example, if I want to slap the table as I’m saying “now”, I would tag a point 2-3 words ahead of time with the “raise hand” animation and then the word “now” with the “slap table” animation. Imagine the impact (so to speak) of having a character be able to slap that table, point the figure, shrug the shoulders, incline a head, wave something off dismissively, etc. and have it happen right at the precise moment it needs to. Now that would be immersive! (Note that the word “that” would have been a great place for a couple of key animations, eh?) (Note that the word “eh?” in the prior sentence would have been a great place for a… OK… never mind.)

That said, the rest of the animation was spot-on.


“The companions didn’t cause me undue stress… which is a spectacular accomplishment.”

All in all, Dragon Age: Origins was a really well done game. I enjoyed a lot of it and never felt really “constrained” by a specific narrative. I know I left a lot of side-quests on the table, but that’s almost a requirement for a Bioware game these days. You aren’t going to do them all and still manage to be a productive adult.

The companions were, indeed, companionable and didn’t cause me undue stress… which, as far as companion AI goes, is a spectacular accomplishment. The enemies were reasonably intelligent and only some of the more obvious boss monsters were pattern-style scripted (which is a disappointment because pattern-style scripted AI looks less intelligent).

All things considered, I enjoyed the hell out of the game. People have told me that DA2 is well worth the time. I just wish I had more of it to dedicate! I have a feeling that it isn’t a game I can finish in a weekend!


Dragon Age: Origins: Why pick on me?

Wednesday, May 26th, 2010

Another moderate gripe about the AI in Dragon Age: Origins. In the encounters I have had so far, I’ve noticed a peculiar behavior with aggro and targeting.

…the enemy would rush right past my guys and straight toward me.

When I would approach to within aggro range of a target, I was generally in the front of my party (since everyone follows the player). The enemy would aggro, target me, and then rush forward toward us. The problem was, as I stood still—say with a bow, a spell, or because I’m lazy—the initial enemy would continue to rush right at me… in the process running right past my party-members who had moved forward to engage them. That is, the enemy would rush right past my guys and straight toward me. Often this was furthered by the fact that my guys may have selected other targets in the group… meaning that my party-members and the enemy were running right past each other as if they weren’t there. Put another way, it looked like a joust. It even put my pals in the odd-looking situation of having to back-track to get to the fight.

While this wasn’t horribly tragic, it did look silly. It would have been worse had I been a “squishy” like a spell-caster. The expectation that my brutes would rush forward to protect me would have clashed with the idea that they weren’t doing any such thing—really, because they weren’t allowed to do so in time.

While I haven’t played too much with the customizable party AI settings, it really makes me wary of the “charge into battle” selection in that the battle might run right past them.

Suggested Solution?

…the idea should be “I’m attacking those guys over there.”

To me, it would seem that an extra calculation is in order after the initial positioning of the participants. For example, after my guys start to move forward (and likewise for the enemy), re-process who each person is targeting. After all, it is unreasonable for them to initially say “I’m attacking enemy XYZ” when the idea should be more along the lines of “I’m attacking those guys over there.”

This calculation can be repeated at intervals so that targets of opportunity are selected. Instead, it seems that a target is selected and fought “to the death” regardless of whatever else is happening nearby. This doesn’t need to be run terribly often. Perhaps every second or two and then event-based as well (e.g. “my opponent is dead“).

Again, this is a minor issue, but it does break that suspension of disbelief because it just looks wrong. As I mentioned, given the expectations of behavior, in some circumstances it can be frustrating as well. Thankfully, this is something that is fairly easy to fix.

Dragon Age: Origins – Don’t Crowd!

Tuesday, May 25th, 2010

OK, so it has been a little longer than “later this week” for getting to Dragon Age: Origins commentary. I can’t believe I wrote my first look post back in late February. Of course what that really means is that I’m burning some serious GameFly time on this one title… and it’s not like I’m playing it much. My son has managed to get all the way through it, however.

Still, there are some things I noticed as I was going through (which, admittedly, is not all that far yet). One was an odd happening in the Ostagar camp. I was cruising around looking at things and talking to people. As I was standing there talking to Duncan (and a couple of others), a camp soldier of some sort came and stood near us. From the looks of it, he was supposed to be dealing with another person there, if I recall correctly. This didn’t really catch my notice until a 2nd soldier came up and attempted to stand in the same spot and talk to the same person. They jostled each other for a bit until the first one walked away – apparently on a random patrol route.

…a 2nd soldier came up and attempted to stand in the same spot…

I believe that it was the random patrol routes that caused this issue in the first place. My guess is that the guard logic simply selects a new destination and heads out in that direction. If, for some reason, there is someone already there, it doesn’t detect this or care… it simply continues to try to get to the node.

There are a few ways to either avoid that or fix it. First, the goal nodes could be reserved and released as they are selected and then left. The problem with this solution is that a goal node would be “out of commission” from the moment someone reserved it to the time they left it. If they were coming from all the way across the map, that node would be off the market for quite some time without actually being used. Additionally, it would prevent someone from heading in that direction until the original occupant actually left.

A lot of work to make the camp “feel alive” went down the drain…

A more realistic solution would be to simply be aware of other people. If there is someone on your “spot”, don’t actually try to move onto it. This could be done by simply stopping short of your intended goal (e.g. stand next to him) or by using some local avoidance. The later is probably better because collision avoidance should be part of the movement scheme anyway for other reasons.

Anyway, the result of this was that it was a jarring cancellation of my suspension of disbelief. Because it was right next to me and in view, I couldn’t help but notice that these two dolts were climbing all over each other. A lot of work to make the camp “feel alive” went down the drain right there.

Fable 2: First Look

Sunday, March 8th, 2009

Continuing with my pre-GDC blitz of “must at least look at” games, I have just putzed around with Fable 2 for about 90 minutes. I had a look at some of this material back at the 2008 GDC when Peter Molyneux was going through his pre-release hype. (Isn’t he always?) Therefore, I knew some of the things to look for.

Most importantly, on the AI front, is the inclusion of the almost legendary “dog” AI. To hear Peter talk, you would have thought this game was a bigger and better “Nintendogs” game… that the entire purpose of buying it was to play with your doggie and bond with him. While that isn’t exactly the case, I have to admit that the dog is a good point of interest. The dog certainly is convincing in many ways.

My Dog Runs Rings around Me!

I think one of the things that was startling to me was how it moves in a general area around you. Most companion AI tends to lag behind you. For example, my recent mucking about with the companion AI of Left 4 Dead has me convinced that I am the only person in the entire world with any initiative. This is obviously a logistic issue because very rarely can the AI know where you want to go or when. This is sometimes mitigated in linear games where there is only one place to go. In my short experience with Gears of War 2 today, I saw that exact phenomenon. My companions were able to move ahead of me and take up positions specifically because there was no other way to go.

In Fable 2 this is done via the “breadcrumbs” trail. Despite being far more “open world” than other games, if you have selected (or the game has selected) a destination, by extension, the dog knows where you are headed. Of course, if you turn around and backtrack or go off to one side for some reason, the dog has to react and come back to you… but this is what happens in real life anyway.

The result of all this is that the dog will playfully romp or explore ahead, behind, of off to one side or the other in a general “halo” around you. If you stop traveling for a period of time, he will come back and see what’s up. If you stand still for very long, he may even lie down for a bit… all the while keeping an expectant eye on you as if to say “now what?” It’s all very convincing.

I really noticed one particular aspect of the dog’s animation after I put the controller down and switched off the 360. I went to go feed our own dogs and, as I was walking from the food bin to the bowl, one of our dogs was walking a few feet ahead of me. However, he had his head turned slightly back toward me, keeping an excited eye on me and the cup of food that I was carrying. He did that very dog-like routine of glancing forward and then back at me over and over all the way to his bowl. It struck me that this is exactly what the dog in Fable 2 was doing as I walked. As he would criss-cross in front of me, he would keep glancing back as if to make sure that I was coming along with him. It was this sort of attention to detail both on the behavior and the animation AI that really sold me on this dog. I’m looking forward to experimenting more with it soon.

Look at Me When I’m Talking to Ya!

Interestingly, there were times with the villager AI that I felt that the eye-contact issue was the problem rather than a feature. I’m not talking about how, while in conversation, people will glance away or past you. This was a problem with where they were facing in general. If they started their spiel while I was in one place, and then I moved to one side or the other, they would continue to face the spot where I was. Only after a moment (usually after finishing a line of dialog), would they turn to face me again. It was all rather disconcerting. Compare this to how well games like Half Life 2 continued to address you throughout a conversation… even to the point of turning and walking backwards if necessary.

Dialog Pauses

Another problem I had with the villager AI was how many of the scripted dialogs had very unnatural pauses between lines. There was an awkward silence between many of their sentences that left me wondering for a moment if they were finished or not. It was one thing when it was in response to something I had selected. However, when they paused in conversation with each other, it was odd. When they paused between their own lines, it was horrific and very distracting. I have to imagine that this is because each line of dialog needed to be loaded and accessed separately, but I can’t see why this would be a problem.

Both the facing issue and the dialog pause issue may be related to the same root cause, however. It may be a result of waiting for an associated animation to finish and report back that it is done. If a line of dialog (and the code to “face the player”) are associated with a particular animation, they would each have to wait for the other to finish before they both advanced to the next segment. If the animation finishes first, it isn’t as tragic because the animation can sit in idle for that extra second. However, if the voice finishes first, the next line must wait until the animation is done — causing the unnatural pause. This is just speculation on my part for the moment. I figure that if I analyze it a little further I can make the determination down the road.

Individual Individuals

One thing that jumped out at me during the initial city quests was how the group of kids all reacted slightly different to my various gestures, poses, and flatulation. I would get more “love points” (or whatever) from some than I would from others in the group. Upon a little examination, I found that each person had their own likes and dislikes — that is, things that they were more impressed by or didn’t like. It’s one thing to have different “respect ratings” from different people. It’s quite another to have different models of what causes respect on an individual basis.

I found this rather amusing since I am doing a co-lecture on this very subject at GDC in a few weeks. (“Breaking the Cookie Cutter: Modeling Individual Personality, Mood, and Emotion in Characters“) It’s something I would like to see more of in games in the future — although maybe not in quite as transparent a fashion as what appeared on-screen in Fable 2.

Will You Treat Me Different When I’m Famous?

I think it will remain to be seen what happens when I’m more renowned than I am so early in the game. In the original Fable, it got rather annoying that everyone, everywhere wouldn’t shut up about you. The comments that they heaped upon you were not as many in number as there needed to be. (You can only hear “chicken chaser” so many times before you want to crack someone’s head.) With a nod to my friend and colleague, Adam Russell, who did the villager AI for Fable, that isn’t an AI problem as much as it is a content problem. (This is another bit that I will bring up at the AI Summit panel, “Characters Welcome: Next Steps Towards Human AI“… it doesn’t matter how many decisions our AI can generate if we don’t have enough art and sound assets to express it.)

Anyway, this is a bit long for a first look. I will tag on some more as I experience more of the game. On the other hand, I will be shipping this back to GameFly in the next day or so. I need to check out a couple more titles before GDC in a couple of weeks.

If you are just jumping into this one article, make sure you click the tag(s) below to see if I have written anything else about Fable 2.

Add to Google Reader or Homepage

Content 2002-2015 by Intrinsic Algorithm L.L.C.