This weekend I had some downtime, and started a replay of Oblivion (one of the few games I have ever completed, to the extent that completing Oblivion is possible at all).
The production quality of this game is astounding. From the music to Patrick Stewart’s voice acting, it’s clearly in the top tier of well-polished RPGs.
But when I walk around any of the cities — even the capital city, which should be the most crowded and busy — I can’t shake a feeling of emptiness. I think this arises from a combination of two factors:
Low population. On even the most central of streets, you’ll see maybe 3 or 4 people milling around, plus a town guard or two. There should be hundreds.
Shallow characters. If you talk to any of those 3 or 4 people milling around, they have very little to say. Sure, they’ll give you an overview of the town (each of them providing exactly the same overview), and talk about rumors, but in most cases that’s it. A few of them have about one sentence more of color (“I’m so-and-so’s sister”), and an even smaller few hand out quests, but none of them are believable as people.
This is in an enormous world filled with highly detailed sets — there are probably thousands of individually modeled buildings and rooms, most of which you will never go into, but if you do you’ll find dishes on the table, books by the bedside, and other such homey and appropriate details. It feels like enormous resources were poured into the world, but hardly any into the people who inhabit it.
So. There’s the design challenge: how would you go about making a world (and its people) not feel so empty? How do you make a city, in particular, feel like a real, thriving city?
Focus on the programming / interaction instead of the graphics. I see this as just the same ole issue that has been around a long time. Companies spend way too much of their money and time budgets on the surface and not the heart of games. So just changing the focus is the first step.
It’s really not easy, because a “perfect” case would be simulating the entire population, with jobs, travellers that actually travel, not just pop in and out of existence.
Fable 1 did an ok-ish job for the cities, but it was still only on the surface, because none of the NPC had any substance.
I think the biggest problem is that in RPGs, most people won’t bother too much with the NPC characters, because they are not the meat of the game, and doing too much work on fleshing them all out to make the world into a living one takes away from fleshing out the rest of the game.
There is also the problem of the “uncany valley”, which is basically when you simulate enough to have nearly living character, and this backfires, making the player notice the few points where it is not realistic even more.
I’d have to put some thought into it as far as implementation goes. I don’t see this as something best pulled off the top of our heads… but… pulling it off the top of my head I think I would say focus just needs to be placed on building a better generic NPC model. So, I’d make a sort of generic NPC (GNPC). Not a primary character in the game (PNPC). Just someone who “is there”. A GNPC system would be needed. Consisting of several different properties such as profession / purpose, home location, GNPC interaction model (who do they interact with and how), circle of friends (just a list of other GNPCs they associate with). Profession would need times and activities. With this model in place I can probably make the GNPCs more interesting. They’d go certain places at certain times or not (GoofingOff would be a valid state for them). They may choose to stop on the street and talk to one or more of their associates. Of course, they’d be aware of times so if talking may need to hurry off and get to the shop or wherever they work.
I don’t see it as really a graphics vs. substance issue. For example, there’s a besieged city called Kvatch with some important refugees holed up in the church. I went and advanced the story line a bit, and then on a lark, wandered down into the church basement. There’s a wine cellar, with racks of actual wine, and more rooms leading off of that: a study with pens, paper, and books you can read or take; shelves you can store things on, barrels and boxes you can poke around in, etc. There were more doors off of that, but I decided to get back to the main plotline and quit exploring.
But my point is that all this isn’t mere graphics fluff; those are objects you can take, use, and otherwise interact with, in places you can go and hang out in. And just seeing this sort of thing a few times, in places I really have no reason to go poke my nose in, gives me confidence that all the other buildings in the world are “real” too — they are detailed locations containing usable objects, not just facades. (Contrast this with many open-world games, where you can smash cars into pulp but can’t break a window and enter a shop because the shop is a facade with no interior at all.)
So, you may be right about a need to shift focus, but I don’t think it’s graphics per se that are the problem here, as plenty of effort has been put into other non-graphical aspects of depth.
A fair point. But there could be a bit of a self-reinforcing cycle here: players don’t take interest in the NPCs because they NPCs are trivially shallow, and designers make trivially shallow NPCs because players don’t take interest in them.
I also still think about the analogy of the buildings… some games (including Oblivion) have gone from shallow facades to “real” buildings with depth and detail to them, even though most players won’t bother going into very many of these. But having investigated a few, you quickly become confident that the rest are real, too. I think the same would apply to NPCs: I’d probably only get to know a few of them, but if I find them to have some depth, then I would assume the rest of them have depth, too, and the city (or at least, the inhabitants thereof) wouldn’t feel so empty.
Hah, that’s an interesting point. I hadn’t thought about that.
Interesting thread! This is one of the goals in our game, to make the world feel more alive. While our game is multiplayer, we do not expect to have a large player population so are fleshing out the NPCs to seem more alive.
I have the same problem as Joe. I have played games that have beautiful cities that are completely abandoned, no players, few NPCs, nothing to make the town look alive. However, unlike Joe, I don’t think it would help to be able to get into the buildings. It would simply be more empty graphics that really do not add a lot to the game.
A living, thriving city would be much more interesting than empty buildings.
Yes… I mean, Oblivion has a scheduling system like this; NPCs do have daily routines. But it’s not enough; they’re still pretty much like Koopa Troopas, forever walking back and forth between three or four points (just on a longer timescale — work, home, loitering about).
I still think the real problem is in conversation. Watching half-decent NPCs from a distance, they seem fine: they’re chatting, shopping, walking to/from work, etc. But as soon as you talk to one, it’s so quickly obvious that nobody’s home.
I don’t know what the solution to this is, though. Natural language processing is hard, even if players were willing and able to type, which they’re generally not. Modern speech recognition may offer some new possibilities here. And I think your general idea of a GNPC, with a variety of configurable behaviors, is a good one — they just need to be conversational in nature; background story, ambitions, loves, etc. that you can discover if you care to get to know them well enough.
I just want to be able to walk up to any random NPC, strike up a conversation, offer to buy them an ale at a tavern, hear their story, make their day with some encouraging words, flirt with some other guy’s girl and get into a fistfight over it, etc. Is that too much to ask?
Joe, I don’t think conversation is the answer, honestly. You could add a bunch more conversation options to the NPCs, make them use names, etc. but it will still be the same things over and over. Might be fine in a single player game though.
I think making NPCs more important to the game might help. They don’t just give out quests but also have a big part to play in the game. Maybe have side stories in the city and give NPCs dialogue pertaining to those stories. Use NPCs to give information to players about the world or hints about quests or puzzles. Make it so a player wants to go talk to every NPC so they don’t miss anything.
Well you all should know by now that I see this stuff as just coming down to modeling behaviors primarily. I think for the most part the system could be quite simple as far observable behavior is concerned anyway. Like imagine walking through town and you see a few people on the street and it all feels pretty barren. You enter a large building and there are dozens of people. Ah you never considered it was Sunday morning.
It is all about building a better model of behaviors I think. How detailed you want the model to be is up to you. The hardest part would be the direct interaction. Observable behaviors are easy. Some direct interactive behaviors are easy such as attacking, fleeing or buying and selling. But simply talking is where they break down the most I think. However, having a job to talk about, friends they have knowledge of, hobbies they are aware of and so forth could go at least some way to making conversation more interesting. And as long as they have friends we might as well track which NPCs they do not like and why.
Big city life has led people into thinking that city streets should be crowded at all times, even in small villages.
I’ve typically lived in small towns. When I went ‘downtown’ in those cities, I didn’t bump elbows with people much. The shops typically only had a few customers at a time during the peak times.
Contrast that to big city life where there are people all over the place all the time, everything is crowded and there are actually lines to check out.
A medieval town shouldn’t have tons of people unless it’s a commercial hub for the region or the capital city.
EDIT: And this is a perfect example of what I meant about presentation. I just think there are much more important things GAME developers should be focusing on than “how can I get the lighting perfect?”, “which terrain generation system should I use?”, “I’ve spent months optimizing the rendering pipeline and can now display 4,000 high poly trees instead of only 1,500!” … that sort of thing.
I see a clear focus on things that, to me anyway, are unimportant. I’d be happy if the game looked like legend of zelda on NES if there was a town and NPCs actually seemed real and the rest of the game play had the same attention to detail.
Perhaps you don’t. (I don’t really believe this; I’m just leading into a point.) Fallout 3 is the same game as Oblivion, except in a lifeless, hopeless wasteland. To me, it’s better than Oblivion because the setting complements the limitations of the game system. It’s appropriate that the world is empty. People drag themselves through mindless routines because they have nothing better to do. It all just fits. This skirts the original question, though, about how to actually remedy those limitations. But I think it’s worth acknowledging your game system’s limits and including them in the design.
I hear you. BioWare games are all about the writing. Like a book, the writer shares something personal and human with the reader/player. But books have finite pages. You can’t write enough content to satisfy someone who always wants to keep playing past the “end of the book.”
When I finished playing Mass Effect and started Fallout 3, I was disappointed with its conversations. Apart from a single big-name actor, the other performances were as repetitive and uninspired as the writing. It felt like Bethesda added most conversations only grudgingly because it was expected. But then I came to appreciate how much more dynamic and emergent the world feels. Things seem much less scripted than Mass Effect, for better and worse. I imagine I could follow a caravaneer around the world, mess with his schedule, and he’d adjust appropriately.
Mass Effect does a good job of filling a city (Citadel) with lots of scripted NPCs that make it feel alive with relevant, voice-acted conversations. The AI is simple: when the PC gets close, play a prewritten conversation that the player can eavesdrop on. It feels fleshed out in the way that movies like Star Wars do. But of course the NPCs don’t handle change well. Behavior might be poignant because it’s hand-written, but it’s always a one-off.
Fallout, on the other hand, really does feel like a sandbox simulation to me. Even though the prewritten content was weaker than Mass Effect, I easily put three times as many hours into it.
These approaches – scripted content and emergent simulation – seem mutually exclusive. BioWare claims to have cracked it in the new Dragon Age. I’m curious to see their solution.
As far as design goes for sandbox NPCs, advances need to be made in awareness, not behavior planning. Take a shopkeeper. I don’t care if he does the exact same thing – say, engage in combat – regardless of whether I mess with him by stealing his goods, attacking his livestock, or putting a bucket on his head. He doesn’t need a huge library of actions. But he at least needs to do something if I put a bucket on his head.
Finally, this is relevant to the original question. People are social animals. It’s not important to have elaborate behavior (i.e,. burn a lot of CPU in complex planning algorithms). But it’s critical that they acknowledge the presence and actions of others. Imagine a city where NPCs wave to the PC and each other, or hug, or scowl – the behavior isn’t sophisticated, but it’s socially relevant. More CPU budget needs to go into this kind of dynamic social awareness, especially where lots of NPCs are milling together.
Oh definitely, Tony! NPCs should react to each other and the players. A lot can be said for an NPC who runs away from the big bad guy when he enters the village rather than stands there oblivious to the fact that a notorious, well known villain is standing in the middle of the street.
You mentioned books. We have pages and pages and pages of lore for our game. Our initial plan was to take about three-quarters of that lore and put it into in-game books. But we have since decided to instead put much of that into the NPCs that wander the city and countryside. Not only does this make the world more interesting and alive, but it also gives players who choose to learn more about the world a chance to do so without breaking immersion and in a way that is consistent with the theme of the game.
Of course, the NPCs need to be interesting, the dialogue, even if repeated, needs to be engaging. It needs to be obvious to the player that a particular NPC will give them the information they seek.
One thing I would love to put in the game but am unsure about how to go about it is gossip. I would love for NPCs to gossip about each other and even player characters. It would be easy just to switch names and I suppose one could have tags that trigger specific gossipy dialogue but will that be enough to make it interesting? Players will ignore the same things over and over again although maybe if there were some benefit to collecting gossip, it might be more useful.
I agree with them responding. Interaction is key for games. Awareness is definitely needed although I see it all as part of behavior. Awareness leads to reactive behavior. There can be canned behaviors of course. Patrolling a hallway or path. Running around on a schedule and so forth. But the interactive piece is the most important. The NPC character needs to be aware of what is happening around and to them. Well, as far as how the player is interacting with them. Interaction is the ultimate thing needed. Reactive behaviors are how the interaction is carried out on the NPC side. That is how I view this stuff anyway.
A lot of really interesting points have been raised here. Rather than quote and reply to each one, I’ll just try to hit the highlights.
First, I actually think it’s not a good idea to distribute important information the player needs to random NPCs. If the player feels like they have to run around talking to every NPC, madly clicking through small talk to get to important nuggets of information, it becomes a chore. I also think it does nothing to help the player suspend disbelief that these are real people. Finally, it would drive the design to fewer NPCs, so the player doesn’t have such a hard time finding the relevant information. Both of these effects are going in the wrong direction; we want more believable NPCs, not fewer, less (or at least no more) believable ones.
Second, I fully agree that NPCs reacting appropriately to the situation is important. And yeah, that doesn’t have to mean dialog — sticking a bucket on somebody’s head, or the homicidal maniac walking into town, are both good examples of things NPCs should react to. I think it’s not very hard these days to make NPCs that react to stuff in a reasonable way; it takes some effort, but no more effort than it takes to model and rig a human character, for example.
Last (for now!), I still feel that conversation is the key. It needs to be deep, with lots of things to find out, most of it not terribly important, but there if you care to dig. To make that possible, I think it needs to be generated procedurally, which means no voice acting — either go like Wasteland, with no voice at all, or wait for speech synthesis technology to get good enough to fake it on the fly.
OK, I lied, one more thought: Tony’s point that you can design your game around your limitations is a good one. If your cities are supposed to be ghost towns, then it’s not strange when they are. And I suppose if your world is populated by robots or zombies or dogs, then it wouldn’t be strange if they behave like current NPCs. But I still think it’s worth exploring how far we can push towards numerous, believable characters, and how that might impact the games we design.
However, I was talking about using the NPCs to disseminate information about the lore, that portion of it that would otherwise fill pages on a website that a fraction of the players would read. Important information would be readily available through other means. The fluff and fun stuff would be disseminated through NPCs that live in the world but in a way that is obvious.
For example, a player visits a religious temple and wants to learn more about that particular religion or deity. Inside the temple is an NPC who greets the player when he enters. The player can enter into dialogue with the NPC to learn about the religion or deity worshiped there.
A less obvious example might be the old man who sits in the town square selling stories. The players approach the old man barks out an offer to tell a story for a copper coin. Players can engage him in conversation to learn a bit of lore, maybe a story about an old war or a poem about an epic battle in the past.
Left to the website, most of this wouldn’t be read except by the most serious role players. I argue that if NPCs can give information like this, expand the story and the player’s understanding of the world, it might actually encourage them to talk to more NPCs, not less.
Of course, we are building a niche game for role players and for our player base, this will be fun and popular. If we were creating a WoW game or a game that focused on arenas and battles with little thought to the lore, I would probably do things differently.
Yes! I like that. Just for background lore, of course, as you and Joe pointed out.
If your programmers can get their hands on AI Game Programming Wisdom 4, “Individualized NPC Attitudes with Social Networks” might provide some interesting ideas. It describes (and provides code for) a way to keep track of how NPCs feel about each other and the PC(s). When they see other NPCs they like, they can exchange gossip. This gossip can be facts or their feelings about other NPCs. Similarly, if an NPC sees the player harm one of its friends, the NPC will remember it negatively. But if the player harms an enemy, the NPC will remember it positively. When it hooks up with other NPCs, it can exchange this information, too. This provides an interesting mechanism for gossip to flow realistically.
I completely agree with you. Awareness seems to be the weakest link in behavior right now. As designers and implementors, I think we’d get the best overall behavior results if we spent a lot more time on awareness.
I got sidetracked on one of the machine learning threads when I brought up my procedural quest generator. It’s relevant here because conversations typically need a purpose. The quest generator devises a purpose based on the NPC’s goals and then procedurally generates the necessary conversations. These quests are neat because they’re relevant to the actual state of the sandbox, but they’re nowhere near the artistic caliber of a hand-written quest. A human author gives quests subtext; an AI can simulate morals and values, but a human author can say something about those morals and values in the quest’s subtext. This is frankly why I haven’t released the product. It’s a neat toy, but it doesn’t feel narratively relevant. Any ideas?