27
Feb

Having just recently finished Assassin’s Creed, I was quite looking forward to the talk on crowd AI in Assassin’s Creed. The talk was mostly given by Sylvain Bernard, the Animation Director for NPC & Cinematics. James Therien, the Technical Lead for crowd gameplay, chimed in with technical details here in there, but it was a mostly high level talk. Which was good, talking about their goals and design for the crowd, with a little of how they accomplished it.

They started out talking about measuring their expectations. Sylvain joined the company 3 1/2 years ago. At the time, they were looking at GTA since they were doing an open world game. But their focus would be much more on the crowds. The new consoles weren’t out yet so they didn’t know what they were capable of. They recalled watching the trailer for Dead Rising and using that as a benchmark for how many rendered characters the Xbox 360 was capable of that the player could interact with in some way. They also got reference from movies about how people interact with crowds. Some key ideas they took were that in a dense crowd, people form two aisles of traffic, looked at how the crowd reacts to threats, ways the crowd can be an obstacle for the player (showed some footage from Indiana Jones, yeah!) and can make the player trip and fall. They really wanted to incorporate the crowd into gameplay.

High level goals
Rich NPCs: There is no actual notion of a crowd in Assassin’s Creed. Every NPC is an individual. The crowd is emergent from the behaviors of the individuals.
Realistic Art Direction: The art direction was going for a realistic style, which meant they needed to give the player character realistic capabilities. Compared to the Prince of Persia, where the player could run 10 meters along a wall, the assassin can only run a short distance along a wall. They do cheat where needed, however, to make gameplay more fun. The player can survive a 20 meter fall, for instance.
Animation Style: Tried to make it more realistic. They showed the Prince and the Assassin’s wall climb animations side by side and there was much more movement in the assassin’s animation. Ultimately, they felt their animation style was “stylized realistic.”
Shared Skeleton: All NPCs share the same skeleton. Some characters are just scaled down or scaled up. It was a bit of a challenge to fit all the meshes onto that same skeleton, but ultimately it was worth it because any character could play any animation.

They then went on to talk about some of the specifics of bone count and their animation system. One point I found really interesting was that they said they started with an animation system that was more realistic but the controls weren’t responsive. The player would let go of the stick and his character would take a few steps to stop, sometimes running off a roof. NPCs couldn’t stop on a point. They ultimately went back to a more traditional system to allow for more precise control. This was really interesting to me because we run into the same question, trying to balance really smooth locomotion animations with really precise player control.

Unlike in Uncharted: Drake’s Fortune, NPCs and the Assassin share the same animation system. In fact, you could control every character as the player. They would just switch to using Assassin animations if you tried to do something that character didn’t have the capability of doing.

There are two layers to the AI. The first is the behavior layer, and this is shared with the assassin. These are fine-grained environment interactions. The other layer is for the decisions. There is behavior environment data that acts as guidance for runtime interpretation. These guidelines are used only in specific cases, like when the assassin is climbing. NPCs following him in a chase behavior use the exact same code as the player and do the same environment detection tests to achieve their goals.

The AI decision environment data consists of a navmesh. On top of that they generate a waypoint network for A* pathplanning. On top of that they have metalinks. The waypoint links are simple connectivity info, the metalinks encode complex connectivity such as jumps, ladders and beams. They use steering to move the NPCs and communicate with the decision layer when they’re in trouble (something is blocking it should they stop and wait or what).

Since the game is about crowds, they want the designers to be able to specify in general where they want the crowds to go. Level design placed road segments down in the level. Then the NPCs only had to make decisions about which branch to take as they wandered. This made wandering very cheap. They also used this system when NPCs decided to flee from the player - it was just a different decision on which branch to take.

They specifically called out their lack of a technology like Euphoria (something I know a bit about given the project I’m working on), meaning they had to make a ton of different animations. They only wanted to activate rag doll at the last possible moment because they wanted the limbs to have weight to them. So they then showed an example of a character running into a wall. Many many times. All different heights of walls, running into it forwards, backwards, all every which way. That’s how you get to 15,000 animations, they said. 15,000! That’s a lot, wow.

Next they discussed how the spawned in the crowds. They wanted the city to feel like it was full of people but they had I think 120 NPCs at a time. They first tried just spawning them in a radius around the player, but they ended up wasting spawns in places you couldn’t see. They tried changing the radius of the circle, but if they made it too big they just ended up with a sparse smattering of NPCs in any one place. They called their solution “the blob.” They’d pick the closest triangle to the player on a 2d mesh and then do a flood fill outwards to all the connected places the player could go. They’d spawn NPCs on random triangles within that blob out of sight. They didn’t try to bias the blob in any one direction because the player is so mobile, they couldn’t guess where he was going. They just made sure all the connected streets were full of NPCs.

They had a cool system for creating variety on the NPCs. They could vary the head structure, facial texture, skin color, body texture, gender, height, accessories, AI category, reactions, voice and more on spawn. Beyond just looking different, the crowd was composed of people with different duties. First, there was the base walking crowd, which was made up of bench sitters, monks, beggars, military patrols, trouble makers, etc. Then they had people with specific duties, of which they only ended up with the kiosk workers and the orators. These were to give structure to the flow of the crowd. They had wanted more, like people sweeping or drinking from fountains but ultimately these were all really just aesthetic and didn’t make it in.

At one point they had a big system to do simulation and have people change tasks, but they realized they didn’t need it. The lifespan of an NPC is very short, you don’t care if someone just walks off and despawns.

The reaction system was how the crowd would respond to the player. They talked about how it important it was for design to communicate what they wanted to the programmers. They made some animated videos (what we call pre-visualizations) of what they wanted. Showed us a few, they conveyed the basics of how the crowd should move.

They showed some in-game footage of a player hanging on to a world. NPCs that wander close enough and are facing the player will stop and ask what he’s doing. If more than one stops next to each other they’ll start a fake conversation. Reactions are composed of an individual reaction, the sound that actually comes out of that NPC, and over 100 possible body gestures.

Reactions are much more than a visual system. They have “reaction packs” designed by the level designer so they can have special responses to specific events in the level. Alert was a reaction used to draw guards into a fight. Guard awareness levels were done by switching out the current reaction pack based on when a guard saw a body.

How do you get lots of NPCs at 30 frames per second? They didn’t want to have a level of detail system on the decision or behavior layers because they wanted reactions to be consistent. They do get a little bit simpler as the NPCs get farther from the player though - they don’t do much when they are out of sight of the player. But they did a lot of LOD on animation. The bone counts drop quickly, there’s no more IK, simpler look at, simpler procedural rigs. They focused on making common NPCs as cheap as possible - cheap pathfinding, environment tests, steering, etc. They also made use of multi-threading to take advantage of the X360 and PS3 platforms.

Ultimately, they felt they met their goals of creating a believable crowd. They had a quality focused team with good support from management. They felt they fell somewhat short in incorporating the crowd into gameplay. Blocking the player and reacting to the player was there, but they player couldn’t really use the crowd in interesting ways.

Their team size was around 150-180 people, 1/3 programmers, 1/3 animators, and 1/3 artists. Well, I think that’s what he said, but then were are the designers? Must have took that down wrong.

11
Feb

I finished Assassin’s Creed this weekend. Everyone keeps asking me if it was fun. Things didn’t change much from what I wrote when I wrote my first post about the game last week. It was a mixture of cool and repetitiveness, moments of grace broken up by vast tracks of the same old stuff.

The end of the game was a total setup for a sequel. And I’ll definitely want to give the sequel a try, so I guess I liked the game. But of course, there were things that drove me nuts about the game, so I’m going to complain about them for you!

Harassers
There are several types of civilians in the game who basically just impede your progress. The first and least troublesome are the beggar women. They run around after you and get in your way. If you get two on you it can be hard to move. They’re just irritating, plus they’re accompanied by constant voice telling you “I’m poor and sick and hungry! You don’t understand! Just a few coins, sir!” Well, I have no money so I can’t give you any coins. Leave me alone!
Next category are the crazy men. These guys mutter to themselves and shove you when you try to walk by. These guys drove me totally nuts. If you are under the watchful eye of some informed guards you have to walk slowly - “blend”. If you are doing your slow blend and get shoved into the wrong person, BAM! the guards all notice you! Even worse, you can’t swim and a few times I had these jerks push me into the water where I drowned. This is not fun!
Neither of these harassers are fun. I don’t think they add to the positive experience of the game. They make the streets a bit more alive but the gameplay they instill is frustrating, not enjoyable.

Climbing
Ok, for the most part climbing is great. You can scale buildings, run up walls, and generally get to the top of huge peaks with ease. Maybe it was bugs, maybe it was my lack of skills but there were times when I could *not* get up a building. I knew it was climbable because there was a goal point on the top but I would just keep pushing up and not move. One time I just kept coming at it from different angles for about 5 minutes before it finally just worked for no reason. Argh.

Interface
To select a target you hit the left trigger. This keeps the target selected until you toggle it off. However, the shortcut to bring up the map is to hold left trigger and push select. I can’t tell you how many times I picked up a timed quest from a quest giver, they’d give me some spiel about what I should do, the clock would start and I’d bring up the map. When I came out of the map I’d selected the guy and he was giving me some long line about how I hadn’t finished his quest yet and come back. Meanwhile the countdown timer was running. Argh!

Also, the buttons do different things when you’re in combat or not. If you lock on to a guard while you’re detected you enter combat mode. You always face your target, you can’t run, and you have attacks available to you. My problem with this was sometimes I would be trying to run and somehow I would end up in lock on mode and not understand why I couldn’t run. There’s no clear indication of what mode you’re in. Well, there’s some buttons in the upper left that tell you what pushing them does, so I guess that was an indicator. But it’s so subtle. A big colorful indicator somewhere really would have helped.

Which leads to the last comment

Color palette
The game is beautiful, I’ll start with that. But everything is the same muted colors. The only shocks of color is the red on the occasional Knight Templar you stumble across. But otherwise my memory of the game is beige and tan. It was probably realistic to the period, but my eyes become starved for color.

I got 835/1000 achievement points on the game so I guess you could say I was pretty thorough. I definitely feel like I saw everything important there was to see. I’m curious to see what they do next. I heard they spent most of their time building the technology on this game. It shows, the tech is amazing, the world is vibrant and alive with people. They’re not the smartest of people but they’re interesting and reactive. And the ability to run from one side of a city to another with only a minor loading hitch is pretty darn impressive. So I’m looking forward to what they’ll do when they’re spending their time refining gameplay in this world, rather than building it.

05
Feb

Continuing to play last year’s games, I’ve been pouring a lot of time into Assassin’s Creed. This isn’t necessarily a game I would have played before I started working on The Force Unleashed, but I’ve really been trying to play more genres of games. Though maybe that’s not true, I did play Prince of Persia when it came out, though I gave up on that game pretty quickly.

Regardless, I’m pretty determined to get all the way through Assassin’s Creed (once again, I think I blame Xbox 360 achievements). I change my mind constantly on how I feel about the game. The core mechanics of the game are stellar. You’re an assassin roaming the cities of the Holy Land in the 12th century (well, most of the time you are, the rest of the time you’re stuck in sorta-interactive sequences that are just questionable). You have some of the Prince of Persia type skills, you can run on roof tops and leap from ledge to ledge, you can climb up tall buildings and anything with the tiniest handhold. You have 3 weapons, a sword, some throwing daggers, and your assassin’s blade that you can use to kill someone silently in a crowd.

The more I play, the more I get to really cool moments where I’ve scaled a building to find a clueless guardsman wandering around on top. I position myself careful, then make a flying leap attack and he’s dead before he knew what hit him. I’m rewarded with a really cool animation and custom camera zoom. Next I bounce from building to building and try to see how far I can get without ever touching the ground. It’s just super cool how open the environment is and how gorgeous it all is as well.

But. Of course there’s a but. The core gameplay is the same thing over and over again. Go to a new area of a city, scale all the tallest buildings, save all the citizens being harassed by guards, gather all the intel on your assassination target, then kill kill kill. I’m not sure what more there is to experience, to be honest. I think I’m about 1/2 way through the game and there’s just a lot of repetitiveness. Without the lure of impending achievement gain I think I’d probably stop playing around now. But I have an assassination to complete and citizens to save! Gotta catch ‘em all.

As to the other part of the game, they seemed to want to explain the whys of gaming. Why do I control a character by pushing buttons? Why do I have a health bar? Why can I fail a mission and repeat it over and over again? To be honest, I don’t care why! It’s a game, we accept standard gaming conventions. But maybe I’m the wrong person to be saying that, since I’m what you might call a hardcore gamer. Maybe just a little. Anyways, there’s this meta-story about you being a modern guy put into this machine called the Animus to relive the memories of an ancient ancestor of yours. They explain the health bar as how “synchronized” you are with the memory. But come on, it’s such a thin explanation to begin with, so why even bother.

One more major gripe is that all the cutscenes are interactive. But the interaction serves no purpose! You can move around, within limits. You can turn the camera. You can end up with terrible shots were a citizen is obscuring your view because he’s wandered in between your camera and the target. I frequently just end up moving my character around spastically because I’m waiting for control to return. This ruins the feel of the cutscene and diminishes the game overall. If there’s nothing of import to do, don’t give me control. I’ll just try to figure out what I can do and get disappointed when the answer is “nothing”.

Oh, and I guess I should be a tester or something, because I keep finding bugs in the game. Yesterday it was actually a progression blocker where I ended up having to reset the game because I had completely lost control of my character. My movement inputs just stopped working. It was just awesome.

But all these gripes aside, the game is beautiful, the main character moves so smooth (like buttah!), and I’m just going to keep on playing until I can’t play no mores!