Mass Effect: First Look
Good Dialog Animation
Labels: Assassin's Creed, BioWare, dialogue, Mass Effect
| Feedback and ratings: |
|
|
|
|
IA Information
Communication
Dave Mark's book,
Previous Posts
Archives
|
Post-Play'em - Observations on Game AI Friday, January 29, 2010 Mass Effect: First Look
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. Labels: Assassin's Creed, BioWare, dialogue, Mass Effect
Sunday, April 26, 2009 Assassin's Creed: First Look
In my latest episode of "finally got around to playing", I have had a chance to mess with Assassin's Creed (on X360). As with most people, I was immediately impressed by how visually attractive the game is. However, that has usually been a warning bell in the past. A lot of time "pretty game" has tended to also portend "stupid AI". This doesn't seem to be the case with AC.
While this isn't normally my strong suit, I have to say that the animation model in the game is very well done. Even without the climbing and hoping and dodging, there is a lot of detail that made for convincing depth in the characters. Even just running forward and then rapidly changing to run the other direction prompts a foot plant and skid animation that is really kind of cool. I also like the fact that the transitions between animations are very smooth. Even just something as simple as changing from a walk to run and back to a walk (even on horseback) exposes a gradient of speed that does not have the hard-edged state change feel. Look at me when I'm talkin' to ya! I also like how you can move around during the (long) dialog scenes. You don't have to, but you can. In fact, I found myself wanting to pace during these conversations because it made it more realistic. Additionally, when your character says something while he is facing away from the listener, he will turn slightly towards him... not to directly face him, but to talk in his general direction. Think about it... don't we all do this? How often do we actually look directly at the person we are talking to? It's a nice touch with the animation that makes those plentiful dialog exchanges more livable. Running, Jumping, and Climbing on Things It goes without saying that the advanced animations are very well done. The climbing and running and jumping business is ridiculously well done. There are the occasional quirks but those are more of a problem with the control scheme (on the 360) than anything else. I especially like when I get too close to an edge and my dude has to fight to keep his balance. Excuse me. Pardon me. Move, damnit! There are ways that they incorporated this into the game design other than all of the building stuff, however. It was a very nice touch to have the character stagger or even fall when he runs into people. That makes the chase scenes through cities very realistic in that you do have to pay a little attention to where everyone is. Of course, in order to utilize that mechanic, you have to pack the streets full of people going about their business. This was done very well. There are places where it is next to impossible to run through simply because of the press of people. Even walking through them can get annoying. I haven't bothered to simply watch people to see where they are going, but you don't get that initial impression of "random walk" that you get from a lot of other games. (One recent transgressor in this effort was when I was playing Oblivion where every person in the city just broadcasted "I am so lost!" I will write up my observations on Oblivion later.) An even better touch is how the people react to your passing... not just physically, but verbally. If you bump into one of those jar-toting ladies and get them to drop their burden, they will give you a little lip. The same can be said for running into a dude when you are on a horse. I found myself being more careful moving through people just to avoid what should be relatively innocuous confrontations. The agents in the game, be they friend or foe, do have a pretty obvious state-based behavior pattern. It works for this game, however. I also haven't seen any situations where the FSM is stuck on stupid. The game mechanic has enough depth that the predictability of the guards is acceptable. Now serving #43 I guess the only thing I can fault (although it still works well) is the "ninja fight" rules where the enemies tend to come at you one at a time. They do take turns, however, rather than waiting for the one fighting you to die before the next steps in. Again, this was matched well with the game mechanic of being able to grab people and throw them away. When you toss one dude away, his buddy will step right in. It does make the fight more manageable, however. On the other hand, there have been times when I have had more than one guy beating on me at the same time. I haven't figured out what the difference is in those scenarios, however. All in all, the game looks pretty good from an AI standpoint. I say that based on the fact that I haven't noticed anything horrible about it. That's usually a sign that things are working well. Figure that AI should be like umpires or referees in a sports game. They are necessary for the game to work smoothly, but you shouldn't really notice that they are there. I'm returning AC to GameFly tomorrow (although I will probably buy it because my kids are addicted to it) so it will be a bit before I follow up on this post. You can check to see if I have written anything else by clicking the Assassin's Creed tag below. Make sure you subscribe to the Post-Play'em feed to see more reviews and analysis. Labels: animation, Assassin's Creed, FSM
Wednesday, April 15, 2009 Interview with AIGameDev re Left 4 Dead Back on April 5th, Alex Champandard of AIGameDev interviewed me for about 90 minutes for the Members portion of his site. Our topic was how to use behavioral mathematics (such as I cover in my book) to improve the bots in Left 4 Dead. We cover a lot of interesting information in the interview. Some of the examples refer to things I covered in my columns here on the AI in the game.He has it posted in audio and video formats (although with me rocking back and forth in my office chair, I look like I'm autistic!). I seriously advise that you check it out. (You will need to have access to the members area to view it.) If you are already a member of AIGameDev, you can find the interview here: Labels: AIGameDev, Left 4 Dead
Sunday, March 8, 2009 Fable 2: First Look
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. Labels: Companion AI, dialogue, Fable, Fable 2, Half Life 2, Left 4 Dead, RPG
Gears of War 2: First Look
In preparation for the AI Summit that I am helping put on at the 2009 Game Developers Conference, I am rapidly cranking through some of the key games of the year. So, I signed up for GameFly just so I could putz with some games in the short term. I will likely buy some of these games down the road, but the research budget for IA doesn't cover spending $300 on games in only a few weeks!
Well, the first thing in my queue (along with Fable 2... check back later for that) was Gears of War 2. I had seen a number of the reviews in various places and I was impressed by not only what I saw but by what people were saying about it. Despite having Gears 1 sitting here, I had never really played it. (My son had.) So really, I had no idea what I was getting into. Ok, wow. Obviously, it is a very good looking game... but that's not what this column is about. After watching Yahtzee's take on the game, I was also fully prepared for plenty of "chest high walls". Of course, there's good reason for that given that the cover fire system is an integral part of the game. On the other hand, I have not seen the poor AI quirks that Yahtzee cracks on the same review. (Although I suppose referring to the generally satirical and sarcastic Zero Punctuation blurbs as "reviews" is a bit of a stretch now, isn't it?) So far the AI seems pretty solid. Now note that I have only played the opening level up to just past the epic speech (<- unintentional pun for those of you who actually pay attention to the names of the game studios who crank out your entertainment products) so I haven't experienced too much of it. However, what I have seen has been pretty decent for a shooter. The enemies are frustratingly adept at using cover. I have often found myself flanking them just so I can get a shot around whatever "chest high wall"-like object they are behind. What's more, I have noticed that they will shoot from around different sides of the object. If the baddie is behind a desk, he may pop over it or around the side. This is a nice touch of realism that steps away from the typical method of 1-1 relationships of designer-tagged points. That is, there is no "and at this point, the AI can shoot over the object." There seems to be simply "here's a hiding spot... let him do what he needs to do." My allies seem to be pretty proficient at using the cover as well. Of course, I haven't been paying too much attention to what they are doing since I have been concentrating more on saving my own ass. (Nota bene, I'm playing on the hard difficulty level.) However, as we move from battle to battle, I do notice that they are very conscientious of taking cover as we go... even when they are simply waiting for me to catch up. All of this cover-taking is very refreshing in a shooter. I have (for 15 years?) been so tired of enemies (and allies) that simply stand out in the open and either wait to get shot or are so invincible that cover is unnecessary. (Yahtzee suggests this is possible in GoW2, but maybe he was on a different difficulty level than I am.) For the most part, the animation seems clean. The transitions are pretty decent and any quirks seem to be more a result of the control system than the animation. That's a hard problem to solve, so I don't bitch about it too much. A better example is watching the animation of the AI characters rather than of myself. Everything seems smooth as they move, duck, fire, etc. I will pay more attention to that as I go. I have yet to play enough to see how much of the enemy combat events are scripted and how many are dynamic. For example, early on the Locusts in the hospital are retreating... but that is obviously scripted as I have played through it three times (twice by myself and once in co-op with my son). I understand that. However, as I play on, I would like to see if there are places where the enemy retreats simply because I'm kicking his ass. I saw a lot of this in Halo 3, for example, which was controlled by Damian Isla and Max Dyckhoff's battle management system. Given the impressive use of cover in Gears, the inclusion of a good fall back or retreat system would be cool. We'll see. That about covers it for the moment. More later. If you are jumping into this article, remember to check the Gears tag below to see if I have written anything else about this game. Labels: Epic Games, Gears of War 2, Halo 3, scripting, using cover
Wednesday, February 25, 2009 Left 4 Dead: Companion State Changes
Another interesting observation in Left 4 Dead. In this case, it is about the state machine that the companion AIs are using. First, the observations:
The first clip in the video below shows me getting ready to leave the safe house at the beginning of the level. My companions did their usual "grab some stuff" behaviors and then lapsed into "random wander" idle behaviors (I couldn't hit the screen shot key fast enough to show Louis standing with his nose in the corner like a punished boy.) When I went down the stairs to the door, I was mildly perturbed that they didn't follow. I then opened the door and shot the zombie standing outside. They still had not moved to join me. A zombie rushed me, I leveled him, and my sidekicks were still admiring the walls upstairs. Only when I stepped across the threshold did they move to join me (with Francis doing a completely unnecessary walk on the railing... but that's a future post). Something not shown in the video is something I have experienced before. Usually, when I step across the threshold of the safe house, they are in quite a hurry to leave the room, even to the point of pushing through me to do so. It probably would have happened in this case if we had not been under attack at the time. In the second clip, we were at one of the intermediate buildings on a map. We had run inside, closed the door, stocked up on ammo and health packs, healed ourselves and whatnot. I opened the door and left the building. The video picks up as I look back inside realizing that my pals didn't seem to want to leave. This was different than the first clip in that the trigger was not leaving the room. There was a Boomer behind the building that I could hear. Even when the Boomer came around the corner and started waddling toward me, they didn't move. Only when I fired my weapon did they decide it was time to rush out. Now, for the explanation. It seems that Valve is using an HFSM (Hierarchical Finite State Machine) or another such tiered approach (a behavior tree can cause this as well). There is likely a high-level state that we will call "In Safe House". When in this state, other lower-level states are things like "random wander," and "random comment." The only thing that seems to override it is if they see a zombie outside a door (many of the safe house doors have those barred windows). They will actually engage and kill zombies outside the safe house from inside the door. Therefore, there is an "engage/kill" state that is contained under "In Safe House". On the other hand, another high-level state is "In the World". It is in this state that the AI spends most of its time. Apparently, "stick with the player" and "defend the player" are only included in this high-level state. That is why they would not follow me down the stairs while I was still in the safe house or defend me when I got attacked. However, once I crossed the threshold, a message was sent to them to change states to "In the World" at which point, they were free to analyze their usual parameters such as distance (move to the player) and threats (defend the player). Note that this would not have been a big deal if I had simply stepped out the door. Alternately, in other safe house situations, the random wander location is in sight of the door. Therefore, when I got attacked, they would have likely seen the zombies and fought back. This particular arrangement did not allow for that. Now, I don't know what happened with the building in the second half of the clip. Because that isn't an "beginning/end of level" safe house, I would suspect the above rules don't apply. Why did they not leave, then? I have seen other behaviors where they don't seem to follow me like I would expect, but I have usually found other explanations for that (another post on that later). In this case, it would have made sense for them to leave along with me just like they tend to stick close in other circumstances. That leads me to believe that there was an artificial state in play that led them to believe that they were supposed to be there (or rather had yet to convince them it was time to leave). Regardless, in this case, the obvious trigger was me firing my weapon. This was not the case in the safe house example. Neither of these issues is dreadfully wrong in a gameplay sense. They are only noticeable in certain circumstances. And certainly the companion AI in L4D is better than some we have seen. However, when issues like these happen, they do make us pause and ask "what are you guys thinking?" Therefore, while the logistics of the game may not be affected too much, the perception of the game is. It breaks that coveted suspension of disbelief by making us ask (in typical gamer parlance) "WTF?!?" A simple solution would have been to pay more attention to what was under the HFSM state of "In Safe House". Alternately, have more than one trigger to transition from "In Safe House" to "In the World" would have been better. For example, opening the door is an obvious trigger that it is time to go. Getting attacked certainly is urgent enough to warrant attention as well. Additionally, abandoning the rigidity of a HFSM could be the answer as well. Much of the problem would be solved by using a system of free-floating priorities such as what I describe in my book, "Behavioral Mathematics for Game AI". In that arrangement, you can generally dispense with the state/transition model in favor of one that always has all possible actions in play through a system of calculated utilities and priorities. Something similar to this is probably already in effect in L4D for things like target selection, action selection (fight, heal, reload, etc.) and other actions. Therefore, extending it to cover the situations covered above would not be terribly difficult, in my opinion. Anyway, all in all the companion AI seems to be fairly decent. As we AI programmers know, companion AI is a beast simply because of how involved the companion is with the player. There's more scrutiny, more options of what to do, and far more potential for the "WTF?" moment and the ensuing frustration. I think that companion AI is the next frontier of game AI that we are already in the middle of. L4D is in the vanguard of this movement and doing an admirable job of it. Remember to click the tags below for more Post-Play'em observations on Left 4 Dead and other related subjects! Also, if you liked this article, please take a moment to submit this link to StumbleUpon, Digg, or Reddit. I would appreciate it, as would many other game AI enthusiasts! Labels: AI, Companion AI, FPS, FSM, HFSM, Left 4 Dead
|
![]() |
Looking for the GDC AI Roundtable notes and audio? Content ©2002-2008 by Intrinsic Algorithm L.L.C. |
|
|
|
||