IA Logo

IA Information

Dave Mark's books

Post-Play'em - Observations on Game AI

Posts Tagged ‘BioWare’

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.

Dragon Age: Origins – First Look

Monday, February 22nd, 2010

Just sat down with Dragon Age: Origin for a while. I know I won’t get too far into it anytime soon because, for a Bioware game, that usually means a commitment of a few months. I plan on blasting through more soon, but the 360 is on the same 43″ HDTV that the wife wants to watch Olympic stuff on. (I can’t begrudge her that since she usually doesn’t watch enough TV to get in the way of my gaming.)

To give a frame of reference of how far I am, I started as a City Elf and am only just about ready to roll out of town with Duncan. That has, at least, given me plenty of opportunity to go through both peaceful and combative encounters. Also, I haven’t yet dealt with the NPC behavior customization. I imagine that will be more important as I go foward, but for now I just wanted to live by the defaults.
Well Lookie Here!
One of the first things I noticed was when I was in a conversation. While I like fact that people’s eyes move and blink, I would like to see a little more movement. There is so much that can be said by breaking of eye contact, turning the head while still speaking, etc. I have written about this here and there before (and really should write a formal article about it). The point being, what they have done is a start, but it isn’t enough to really sell the character. As an example of dialog scenes that are well done, I point you to Assassin’s Creed (the original at least… haven’t seen AC2 yet). Previously, I wrote about how I liked that, in Assassin’s Creed, not only could you walk around during conversations, but that the NPCs did as well. They looked down, away, etc. I would like to see more of this. The walking around isn’t even quite as important as the head and eye control. Some of those can even be randomized — especially with parameters — so it’s not like it would take a lot of work or resources.

On the subject of head movement, however, one thing I noticed the first time that I was in a conversation with two people was that their head turns are NOT animated by hand but are automated. The reason I know this is that there is a very distinct start and end to the turn and that the turn rate is entirely constant during the whole turn. Put another way, if someone turned from looking at me to the person standing beside them, that 90° turn would go from a rotation rate of 0 straight to n, rotate that 90°, then change rate from n to 0 again. The rate, n, was always the same throughout one turn and on every turn. The overall effect made it look like one of those audio-animatronic characters in a Disneyworld exhibit. It was very mechanical-looking.
While I like the idea behind the technique, I believe a better way would have been to randomize the rate, a rate of change into the turn, and a rate of change out of the turn. This not only changes things up between one turn and the next, but also smooths out the starts and stops so it doesn’t look like little servo motors kicking in.
… one of those audio-animatronic characters in a Disneyworld exhibit.
Also, you don’t always have to look directly at someone. If someone standing next to you is speaking, you can turn your head part of the way and do the rest with your eyes. In fact, it is very common for humans to “split the difference” and look somewhere between the two speakers in that arrangement. Toss in the occasional look at other objects of interest in the environment (especially if you’re nervous, wary, etc.) and you can really sell a conversation without a lot of extra work.
Don’t Mind Me
She never acknowledged that I was even there.
While I appreciate that not every denizen of a place should attack you, I would at least like them to acknowledge my existence. For example, I was a little startled when I was storming the castle. In a couple of the rooms, I came upon a woman scrubbing the floor. She didn’t look up when I entered (if she was a servant, shouldn’t she care to see if it is a boss?), she didn’t look up at I moved around, she didn’t look up as I stood with my boots under her nose. She never acknowledged that I was even there. She didn’t do anything other than scrub the floor. It was a little startling, especially when everyone else in the place (friend or foe) recognized that, as an armed elf, I was seriously out of place. (Incidentally, I got a kick out of the fact that this matched up nicely with the theme of AIGameDev‘s AI Marmelade – their twist on the Global Game Jam. Their coverage of it was sub-titled “on little old cleaning ladies in stealth games.”)
I admit that this is likely a content issue. Developers would love to add more background characters to an area, but then you run into the issue of having them react in meaningful ways. Also, if those reactions are going to involve custom animation or sound, the expense goes up significantly. It would be nice to have a general list of generalized actions and interactions, however. Put people in there moving from place to place, carrying things, tending things, etc. When I come in, at least have them look at me. If I try to engage them, make them politely dismiss me. If I do something flashy like attack people, make them run. That much, at least, puts a little life into the place. Oh well… no one can ever say Bioware skimps on content. They just put it into length of the experience rather than the depth of it, I suppose.
Combat AI – So Far…
I was a little wary going into this first play session because someone I trust on AI commented that he was frustrated with his party members. As I said at the top, I haven’t gotten too deeply into the game and haven’t messed with the customization yet. However, there was nothing that I saw yet that was really “pants-on-head retarded.” I was a fighter as was my buddy. He attacked when I did or when we were attacked. I was too busy trying to do my own gig to see if he used a healing option when he should have. I don’t think he did because he “died” a couple of times during our great castle adventure. I didn’t think to give him a ranged weapon to see if he would switch at appropriate times, though. And now, of course, he is no longer in my party (taking some cool gear into the abyss of retirement with him). My next play session will have me leaving town with Duncan and likely teaming up with some dudes. We’ll see how things go then.
… it looked a lot like a tool that an AI programmer would make for a designer.
I only briefly looked at the customization system. From what I could tell, it looked interesting if you are an AI programmer or a designer. In fact, it looked a lot like a tool that an AI programmer would make for a designer. I would lay money that it’s origin is not too far from that. I can see how it would tend to quell the inevitable gamer uprising that would like more control of the autonomy of their party-members (is there a contradiction in there somewhere?). However, it was said by a few people that you actually have to tweak this system by hand to get people to work together properly. I really don’t like this idea. In my opinion, if it doesn’t work intelligently with the default settings, there is something wrong.
From a technical standpoint, the system looks like it is a parameterized rule-based system of some sort. I’ll have to play with it… for all I know, it is tweaking a behavior tree behind the scenes. Much of my conclusion on what is going on would be based on whether you can sort your rules in a particular order of consideration. Like I said, I only just glanced at it. More on this after I play. In the mean time, I refuse to look up any technical documentation on it just to see if I can figure it out on my own.
The enemies were pretty much standard “fight to the death” fare so far. They were all castle guards and punks, though. That would be right up their alley. I’ll have to see what other types of enemies offer later on.
Anyway, despite their similarities in production, the game is much more enjoyable to me than Mass Effect was — at least for now. I’d be pleased if that stayed the case.
Definitely keep an eye on the rss feed here. I’ll be writing more about this game later in the week.

Mass Effect: First Look

Friday, January 29th, 2010

I’ve had my copy of Mass Effect (yes, the original) from GameFly for a month or so now. My son played it for a few straight weekends when he was visiting and finally finished it. Seeing how long it took him to go through has convinced me that I do not have the time to ever complete the game. However, I did want to get a feel for what it was like specifically for reference purposes. Here’s a few of my first impressions.

Good Dialog Animation

One thing I noticed that was rather pleasant was that the cut scene dialog animation was reasonably well done. This is even more impressive since there are at least a dozen races that I have encountered so far and all of them look believable when they are speaking. I happen to have a soft spot for ol’ Urdnot Wrex who looks particularly compelling when he speaks. Kudos to BioWare for pulling that off well.

Fixed Cut Scenes
On a down side of that is the fact that I now feel really rooted to the ground during those dialogs. Much of this is by an unfair comparison, however. After playing Assassin’s Creed where I could wander around aimlessly during dialogs, I found myself a little restrained during the Mass Effect ones (of which there are plenty). Which brings me to another point…

Odd Disconnects
Having been a veteran of Neverwinter Nights, I am well familiar with the extent that BioWare can take their contextual dialog trees. While I agree that this is still largely a necessary evil in RPG games, there are times when I am a little alarmed by a continuity disconnect.
For example, upon arriving in Noveria, I had a pleasant chat with the lady Gianna. She tells me upstairs at the security station to come see her to have an appointment with Anoleis. It took me less than a minute to get down to her office where she greeted me with the question, “What do you want?” It was rather startling to have just left her and have her forget that she told me to come ask her something specific. Of course, this is something that can be chalked up in part to poor writing. On the other hand, this is also something that could have been added as a trigger flag in the dialog tree itself. That is, if the player gets to you quickly, acknowledge it and say something appropriate. In this case, it would have been “Ah, you are here. Let me announce you to Anoleis.”
On the other hand, the in-dialog flags seem to be well done. Often, they will remember that I have asked about one topic in another branch of the tree entirely. That is well done. Of course, I was tickled when one character told me off by saying we have already discussed something. On the other hand, I can see how that would be annoying if you were distracted by something and didn’t hear what was said.
Another peculiar interaction was when Gianna met me outside a room after I had finished a combat sequence. (I believe it was outside that one dude’s office.) She told me to talk to her in the hotel bar before I spoke to the guy who sent me on the mission. Uh… OK. The problem was, as soon as the cutscene was over, she was gone. We didn’t get to see her walking away or going to the bar, etc. Not having anything else to do, I went to the bar and found her already there (she’s quick!). Again, this effect is a by-product of having the cutscenes be somewhat de-coupled from the actual live action gameplay. It’s mildly annoying.
Not much of that has to do with AI, however. This next bit does.
Combat AI
In a few of the combats that I have been in, I’ve noticed a peculiar combination of tactics. While I praise the design that puts some enemies behind cover for a while. It seems like they also leave cover for no reason, walk some pre-programmed path while still firing at me, then return to cover. If that doesn’t smack of a shooting gallery, I don’t know what does. Additionally, there have been times when an enemy inexplicably leaves cover and runs right up to me in the open. It seems to be a design decision to “mix things up” however. While mixing things up is fine, it doesn’t really make a lot of sense from a combat standpoint. Because of that, it makes the enemy look dumb. If the enemy looks dumb, people think the AI is dumb. It is unwise to intentionally write something into your enemy AI that people will perceive as being broken – either technically or in the “brain” of the enemy.
All in all, the AI seems to alternate between overly scripted or a sequence of randomly strung together actions. There isn’t that cohesive combat flow that I experience in the likes of Halo 3, Gears of War 2, or F.E.A.R. Interestingly, this makes the battles almost as mundane as the incessant walking (jogging) and driving that you have to do in the game. Where I would hope to have the proverbial minutes of terror to break up the hours of boredom, I don’t even get a rise out of the combat. That’s disappointing.
Anyway, while I don’t plan on finishing the game, I will put a few more hours into it and see if I notice anything else.

Add to Google Reader or Homepage

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