I've come to have very strong opinions about how characters should be written in CRPGs.
Here's the rule: the character needs to engage with the player.
This is a funny thing about a CRPG. The game can have terrible writing and unbelievably poorly written characters... as long as the characters properly engage with the player. Similarly, even if you have wonderfully written characters voice acted by legends, if they don't properly engage with the player, they're background noise.
So here's the exercise:
Don't write a backstory. None of your characters have any backstory.
Now your writing will radically improve.
----
In order for a character to feel real, they have to exist in the same time and place as the player character. They have to talk to the player character. Negotiate, exchange ideas, come to a shared understanding of the world they exist in and their places within it. Their relationship has to evolve.
Backstories are poison to this, because a backstory exists in another time and place. Dripping a backstory into the player's ears as they earn relationship points doesn't establish a shared reality, doesn't involve negotiation or an exchange of ideas, doesn't improve the character's understanding of anything, and rather than evolve the relationship, it happens after the relationship evolved!
Some games try to bring the backstory into the present. This is possible, but it's more likely that you'll screw it up.
The basic rule is that you should never close loose ends without opening at least as many.
Most character backstories come into the present to close off loose ends - essentially ending the backstory and closing out the character. I have no idea why this is common, but it's just the worst approach.
Since I've been playing Pathfinder: Kingmaker, let me give some examples.
(Keep in mind that this game is written abominably.)
There's a warrior you'll use as your primary tank. I think every player uses her. Her backstory is that she's just so gosh-darn pretty that she was adopted by the religious order of beauty. She got angry with everyone telling her she was pretty, and quit.
Seriously.
Her "loyalty mission" is a character from her backstory showing up, fighting her, and scarring her face. The end. She's apparently no longer pretty and apparently the church no longer cares about her. All the loose ends are tied up and her character is now in limbo. No more interests, no more goals, no more looming threats, no more opinions.
There's another character that's undead. Her loyalty mission involves figuring out who killed her and, again, tying all the loose threads up so she has no more plot.
There's a character that's a ranger. His loyalty mission? Murdering innocent trolls because a troll killed his family. Again, it's tying the loose ends and closing the story of his life.
There is one character that qualifies, that passes the "loose threads" test. That would be the dumbass barbarian poseur.
Her backstory is that she ran away from her tribe because they didn't respect her. Her loyalty mission? Earning your respect and her self-respect at the same time by hunting a monster and taking the lead against it.
That's how you do it.
You and her are in the same time and place, discussing something happening in this time and place. It's not a monster from her past, it's just some random monster-of-the-week threatening your kingdom.
You and her are negotiating and exchanging ideas, finding a good balance between her heritage, her need to prove herself, her desire to belong, and the very blunt threat of a giant monster.
She grows as a person, having proven herself to herself. She's a little less of a poseur, and has found a place that accepts her.
You and she have an evolving relationship: you're no longer just 'a baron of some land I happen to be on', but her adopted tribe leader. A more fun and unusual relationship than the normal "strangers->friends->lovers" route!
I won't say her character is good or interesting. It's written with all the subtlety of a freight train... falling on another freight train...
But the structure of her character beats is solid, and therefore her character seems to exist and be a part of my story. She didn't close any loose threads off, she just joined my story as a living, growing person.
Could you adapt the other character beats the same way?
Sure. If the fighter's beauty is so great, let her lure in an ever-increasing volume of ever-richer and ever-more-aggressive suitors. Eventually it gets out of hand, and you have to choose: do the two of you get married in name only just to keep the suitors off, or does she carve a scar into her own face to stop them from coming?
It's not great writing, because the premise is dumb, but it's a situation that exists in the present and evolves your relationship to each other.
---
If we look at other characters from other games, we can see the same basic premise.
Did you, like everyone, like Garrus? Well, guess what? He's the one that followed these rules. His character beats were always about something happening right now, he grew as a character, you negotiated and exchanged views with him, and your relationship steadily evolved.
Did you like Aeris? Well, guess what? She followed these rules.
Did you like Celes? Well, guess what? She followed these rules.
Even characters like Solas, weighed down by a ponderous backstory, are popular not because of their backstory, but because of how they bring their backstory into the present. How their backstory creates more problems, more loose threads... rather than resolving any.
I think there may even be some compelling characters whose names don't end with S. Try to find some, and see whether they follow these rules. I think they will.
So, my take:
1) Character beats should take place here and now, about things that matter here and now.
2) Character beats should involve debating, exchanging ideas or opinions, not just listening.
3) Character beats should evolve the character. Remember that weakness is strength, and that their place in the world is changing.
4) Character beats should evolve your PC's relationship with the character.
If you follow these guidelines, even if you write terribly, you'll at least have a compelling character!
At least, I think so. Let me know what you think.
Showing posts with label characters. Show all posts
Showing posts with label characters. Show all posts
Monday, September 16, 2019
Monday, September 10, 2018
Character-Driven Game Design
Well, another day, another trailer.
These days, a lot of video game teasers and trailers are animated shorts with no relation to the gameplay. Today, League of Legends posted a teaser about an energetic, funny space ship crew and asked you to join up.
Of course, it's not an energetic, funny space ship crew game. It's League of Legends, meaning it's a MOBA - a plodding arena combat genre known mostly for toxic team play. In short, not energetic, not funny, not character-driven.
This is not a one-off. Virtually every major action game has been releasing character-driven shorts of extremely high quality and pretending it has something to do with the game in question.
It reminds me of the old days, when the cover art sold the video game. Except, of course, the cover art would be some Vallejo painting and the game would be eight pixel high sprites jumping from platform to platform.
Given the response I and many others have to these teasers, it's clear there is an interest in high-energy, cinematic, character-driven experiences.
But no games like that ever seem to come out.
Let's talk about it!
There are games where you can hang out. For example, open world RPGs. However, while you can hang out in the world, you can't really hang out with the characters. They're programmed to only really respond to specific world events. Worse, semi-open RPGs like FFXV or Dragon Age often ruin the hangingoutness with dull filler and melodrama in equal measure.
But I mod games. A lot.
A modded party member has the disadvantage of not being in the core event structure. They aren't introduced in some blazing cinematic, and they don't have loyalty quests.
This means that the modded party member has to make their presence known during normal play.
A lot of modded party members tell stories, crack jokes, sing songs, and randomly comment on anything and everything the game has to offer. This ends up making them feel more real than the core party members, at least if you're the kind of player that randomly wanders the world and never bothers progressing the plot.
We script characters to respond to world events. When we have control over the world events, we script them to perfectly match the specific events we've created... but that's a flaw. We need to get out of that habit if we want to let the player hang out with them. Because hanging out isn't specific.
There are lots of games with "specific hangouts". For example, chatting at the camp fire in Dragon Age, or private actions in Star Ocean. But these are tightly scripted events that are a facsimile of hanging out rather than actual hanging out. They're expensive to make and limited to play, and I think we can do better.
In order to interact with a character, you need a medium of interaction. A task, basically. Most tasks have a set of progressions that can be used to move the hangout along a fun path.
For example, if you're drinking in the bar with a fictional friend, what happens? Maybe they get drunk. Maybe you get drunk. Maybe they start a bar fight. Maybe someone at the bar recognizes them, and then something unfolds. Maybe they get hungry for real food and you change locations. Maybe someone else you know walks through the door and the dynamic changes. Maybe you look for dates.
Alternately, if you're playing video games, there's a lot of flexibility as to what game you play, whether you switch games, who tries hard or not, who wins or not, whether you start betting, whether people start getting way too into it, etc.
These progressions are at the heart of "hanging out", and they are also at the heart of how a character can express themselves.
Each character in the game can prefer different progressions. They don't need to be completely unique: a lot of characters can get drunk at the bar. But if the progressions go on for several elements, you'll see their uniqueness start to manifest: person A gets drunk and starts a fight, person B gets drunk and hits on everyone, etc. These are small, simple things to talk about, but this is the heart of how hanging out has to be approached: there's a task, and different characters want to progress or change the task depending on their personality, mood, etc.
This spectrum of progressions allows the characters to contextualize the event as they see fit, and to recontextualize a generic event ("at the bar") with a specific in-character event ("picking up guys" or "getting shit-faced") based on what progression they want to see.
Skyrim has progressions built into its systems and maps. If you're wandering outside picking flowers, you'll run into options to fight monsters, go into dungeons, see wonders, change biomes, get rained on, go from day to night, find an ore resource, find a town... these are all perfectly valid progressions.
By understanding what progression Lydia wants to see while on the world map, she can make comments about what's going on. For example, if she sees a bear, she might say "that bear might threaten travelers, maybe we should drive it away."
This would be different if she saw a monster in a dungeon, where it's not a threat to a city. She might say "some skeletons ahead, I wonder if we can get around them." Or, if she sees a monster in a town, she might flat-out rush to attack, to protect the people of the city.
By allowing her to decide what the current context is, she can choose what progressions she'd like to see. This gives her dialog a lot more vitality than simply yelling "yahhh!" and charging at any monster you find.
However, this is still very shallow. Since Lydia has only dialog and the player has only action, it's a lopsided mess where it's difficult for the situation to progress in any meaningful way. In the end, it boils down to Lydia making comments on what the player chooses to do, just like in later games such as Dragon Age.
The simple fact of the matter is that hanging out is collaborative. Lydia can't really collaborate with the player in the gameplay as it exists.
Instead, I would prefer to do the opposite: let the NPC offer action plans.
When Lydia says "that bear might threaten travelers..." two action plans might pop up and be selectable. "Take it out, I'll support you" and "let's ambush it, follow my lead" might be the two options (with the third 'ignore' option implicit). These are represented as dialog, but they're not simply dialog: they're functional plans. Not only do they determine Lydia's behavior, they can also embed bonuses: Lydia gets an attack boost if you tell her to take it out, and a stealth boost if you say you'll ambush it.
Moreover, these plans are excellent at advancing several progressions at once. Not only is Lydia advancing from "outdoors" to "defending the roadways", but she's also advancing along her "Lydia, stealthy supporter" or "Lydia, front line knight" character progressions. She may also progress on her personal opinion of you if you do particularly well or poorly, although remember that all such progressions are temporary. You'll hang out again some other time, and things will unfold differently.
These action plans can offer things the player literally can't do without the NPC, as well. For example, Lydia might say "oh, this is such a rich iron vein. Let's claim it for the city!" at which point you'll have the plan to claim it for the city: something you cannot do on your own, or with another character. Other housecarls might also be able to do it... but for other cities.
This combination of factors will hopefully make the player want to participate in these collaborative plans.
Our instinct might be that Lydia following us around is Lydia hanging out with us, and the whole day is one "hangout session". But that leads to problems, because the context might not progress at all. The player might literally gather plants for three hours straight, and Lydia's constant talk about what she'd like to do will get repetitive and futile.
Instead, she can simply shelve an intended progression when it falls through.
So if Lydia says "that bear might threaten travelers..." and the player doesn't engage, Lydia won't follow that up with "that skeleton might threaten travelers" and "that treant might threaten travelers". Instead, that progression is on hold.
However, if the player does engage an enemy on the world map - pretty much any enemy - Lydia will be able to instantly pick up the progression. "You'll never threaten another traveler!" she barks as you smash down a mudcrab or whatever. From there, she's in her "cleaning up the wilderness" context, which can be built any way the devs want. Maybe one progression is to attack stronger monsters. Another, less preferred branch is to attack weaker monsters. Monsters in another biome. Monsters marked as 'evil'.
This context is active, so Lydia won't say "that bear might threaten travelers..." because she's not in that context any more. Instead, she might see a bear and say "let's clean up this forest a bit!" in an attempt to progress along the biome path of her "cleaning up the wilderness" context.
Of course, once the hangout period ends (spending a certain amount of time in another major context, like in a city or a dungeon), the contexts can reset and she can start over.
This isn't an ideal solution, but it effectively allows you to script character events that unfold naturally and opportunistically as the player plays, rather than being segregated into their own quest lines.
We can choose to anchor the banter to contextualized progressions, instead. As an example, if you're wandering Fallout 4 accompanied by both Piper (reporter) and Curie (science robot), they'll both contextualize the wandering and have directions they want it to go. You get a sense of this in Fallout 4 as it stands: they have a variety of generic comments on situations you might encounter.
But by allowing them to comment to each other, you can build up a sense of progression even if the player ignores their preferences.
For example, if you find a few talkative ghouls, Piper might say "hey, we should get their story!"
If the player chooses not to do that and walks away, rather than something like "PIPER -2 FRIENDSHIP", Curie can disarm the situation with an excuse like "We cannot be distracted by such tings, we have important tings to do!"
Of course, the player avatar could theoretically also say that kind of dialog, but the player might not be thinking the same thing. The player might be thinking "sure, give me a second to raid this treasure chest first", which is very different from the dialog claiming it's something that won't happen.
If a third party says the dialog, being wrong is acceptable and can give rise to more complex lines of progression.
For example, if you do go back and talk to them, it's relatively easy to have remembered the original dialog, and now have different dialog. This can be quite generic. For example, as you approach, Curie might say "I remember zees people", then Piper can say "Now do we have time?" Or, if you're now just adventuring with Piper, she might say "hah, now that Curie's not around, we can do some snooping and scooping!" These are fairly generic dialog lines that can be deployed in a lot of different situations.
If we consider hanging out to be a task with a variety of progressions, then we can again run multiple contexts at the same time. We're progressing this specific subquest. We're progressing Piper's "search the wasteland for news" context, which may lead to her wanting to go home and write about it. We're progressing Piper and Curie's relationship with each other - again, it must be stressed that it's a hangout context, not a permanent progression. We're progressing Curie's "focus on the science" context.
By having many contexts which can be progressed, shelved, and activated at the same time, we can make the experience as character-cohesive as possible. From the player's perspective, it doesn't matter which context gets progressed next: they all have Piper acting like Piper or Curie acting like Curie, and for reasons that make sense.
It will require a bit of effort to create the engine to do this, though. You'll need to figure out the right generic dialog to switch or resurrect contexts, just for starters. It's not something I've seen done before.
If they're intended to allow for this kind of thing right from the start, there's no struggle to make sure all the metadata you need exists or all the conversations have to work within some specific fiction: it's all designed from the ground up to work.
Moreover, it allows us to radically reduce the amount of content and gameplay we need to support, because this context-centric approach can use much smaller amounts of gameplay to accomplish the same thing. Rather than gameplay strongly relating us to the world, the gameplay is more about collaborating with a friend.
For example, you could decide to hang out with someone and spend the afternoon assembling ships in bottles. It's basically a minigame, but it's made much more interesting because there's a character-driven progression in play. The actions you take affect what the other people do, and what they want to have happen. Doing well at the minigame may be a bad idea... or, rather, doing well at the minigame may not involve actually building the ship in a bottle.
Hanging out and making ships in a bottle is not just about the progression of the task of ships in a bottle.
We've already talked about longer-term contexts like "Lydia's stealthy follower progression". Well, the whole point now is that the event progression is more about the personal contexts and progressions that our friends are going through. Rather than having one preferred contextual progression, the progression they want from this event is influenced by the progressions they want from their other, personal contexts.
You've going to have very different "ship in a bottle" minigames depending on whether your friend is drunk, angry at her parents, mourning the loss of a friend, nervous about a piloting test, or embarrassed that you found out she likes a terrible TV show. The progression of the minigame is not the point: the point is the progression of her personal contexts, as expressed through the progression of the minigame. Hell, she might even play the minigame without the player's input at all - the player can just watch.
We can spread this idea even further, into the world's overall state. Her personal context affects how well she can fly the ship, or how aggressively she fights. Whether or not there's actual gameplay involved with those or if it's just some flavor dialog, it will convince the player that there's a world and stuff happening.
One possible example leading towards this would be Dragon Age 3, just the parts where you decide who to send where, and for what purpose. You could hang out with someone, and then when you send them on a mission, they get better or worse results depending on how they feel. Their personal context will then be altered by the mission they just went on, so it's a good time to hang out with them again...
Anyway, those are some of my thoughts.
What do you think?
These days, a lot of video game teasers and trailers are animated shorts with no relation to the gameplay. Today, League of Legends posted a teaser about an energetic, funny space ship crew and asked you to join up.
Of course, it's not an energetic, funny space ship crew game. It's League of Legends, meaning it's a MOBA - a plodding arena combat genre known mostly for toxic team play. In short, not energetic, not funny, not character-driven.
This is not a one-off. Virtually every major action game has been releasing character-driven shorts of extremely high quality and pretending it has something to do with the game in question.
It reminds me of the old days, when the cover art sold the video game. Except, of course, the cover art would be some Vallejo painting and the game would be eight pixel high sprites jumping from platform to platform.
Given the response I and many others have to these teasers, it's clear there is an interest in high-energy, cinematic, character-driven experiences.
But no games like that ever seem to come out.
Let's talk about it!
Hangin' Out, Havin' Ourselves a Parrrrtaaay
There are games with strong characters. For example, Telltale-style adventures. However, you can't really "hang out" in those games. The narratives are character-driven, but the games are narrative-driven. This is a bad fit for me: I care a whole lot about the characters I'm hanging out with, and the distraction of being told to uncover some ancient secret while fighting off invading ninjas just weakens the experience.There are games where you can hang out. For example, open world RPGs. However, while you can hang out in the world, you can't really hang out with the characters. They're programmed to only really respond to specific world events. Worse, semi-open RPGs like FFXV or Dragon Age often ruin the hangingoutness with dull filler and melodrama in equal measure.
But I mod games. A lot.
A modded party member has the disadvantage of not being in the core event structure. They aren't introduced in some blazing cinematic, and they don't have loyalty quests.
This means that the modded party member has to make their presence known during normal play.
A lot of modded party members tell stories, crack jokes, sing songs, and randomly comment on anything and everything the game has to offer. This ends up making them feel more real than the core party members, at least if you're the kind of player that randomly wanders the world and never bothers progressing the plot.
We script characters to respond to world events. When we have control over the world events, we script them to perfectly match the specific events we've created... but that's a flaw. We need to get out of that habit if we want to let the player hang out with them. Because hanging out isn't specific.
There are lots of games with "specific hangouts". For example, chatting at the camp fire in Dragon Age, or private actions in Star Ocean. But these are tightly scripted events that are a facsimile of hanging out rather than actual hanging out. They're expensive to make and limited to play, and I think we can do better.
Structural Issues
We think about hanging out as being unstructured, but the truth is that it is very structured.In order to interact with a character, you need a medium of interaction. A task, basically. Most tasks have a set of progressions that can be used to move the hangout along a fun path.
For example, if you're drinking in the bar with a fictional friend, what happens? Maybe they get drunk. Maybe you get drunk. Maybe they start a bar fight. Maybe someone at the bar recognizes them, and then something unfolds. Maybe they get hungry for real food and you change locations. Maybe someone else you know walks through the door and the dynamic changes. Maybe you look for dates.
Alternately, if you're playing video games, there's a lot of flexibility as to what game you play, whether you switch games, who tries hard or not, who wins or not, whether you start betting, whether people start getting way too into it, etc.
These progressions are at the heart of "hanging out", and they are also at the heart of how a character can express themselves.
Each character in the game can prefer different progressions. They don't need to be completely unique: a lot of characters can get drunk at the bar. But if the progressions go on for several elements, you'll see their uniqueness start to manifest: person A gets drunk and starts a fight, person B gets drunk and hits on everyone, etc. These are small, simple things to talk about, but this is the heart of how hanging out has to be approached: there's a task, and different characters want to progress or change the task depending on their personality, mood, etc.
This spectrum of progressions allows the characters to contextualize the event as they see fit, and to recontextualize a generic event ("at the bar") with a specific in-character event ("picking up guys" or "getting shit-faced") based on what progression they want to see.
Adapting to Existing Games
For example, in Skyrim you might be wandering the world map with Lydia, your dull, dutybound housecarl.Skyrim has progressions built into its systems and maps. If you're wandering outside picking flowers, you'll run into options to fight monsters, go into dungeons, see wonders, change biomes, get rained on, go from day to night, find an ore resource, find a town... these are all perfectly valid progressions.
By understanding what progression Lydia wants to see while on the world map, she can make comments about what's going on. For example, if she sees a bear, she might say "that bear might threaten travelers, maybe we should drive it away."
This would be different if she saw a monster in a dungeon, where it's not a threat to a city. She might say "some skeletons ahead, I wonder if we can get around them." Or, if she sees a monster in a town, she might flat-out rush to attack, to protect the people of the city.
By allowing her to decide what the current context is, she can choose what progressions she'd like to see. This gives her dialog a lot more vitality than simply yelling "yahhh!" and charging at any monster you find.
However, this is still very shallow. Since Lydia has only dialog and the player has only action, it's a lopsided mess where it's difficult for the situation to progress in any meaningful way. In the end, it boils down to Lydia making comments on what the player chooses to do, just like in later games such as Dragon Age.
The simple fact of the matter is that hanging out is collaborative. Lydia can't really collaborate with the player in the gameplay as it exists.
Stop, Collaborate and Listen
One thing we can do to make this more collaborative is to let the player give dialog responses. However, I don't think that's a good approach, as it will lead to very repetitive interactions as you hang out over and over.Instead, I would prefer to do the opposite: let the NPC offer action plans.
When Lydia says "that bear might threaten travelers..." two action plans might pop up and be selectable. "Take it out, I'll support you" and "let's ambush it, follow my lead" might be the two options (with the third 'ignore' option implicit). These are represented as dialog, but they're not simply dialog: they're functional plans. Not only do they determine Lydia's behavior, they can also embed bonuses: Lydia gets an attack boost if you tell her to take it out, and a stealth boost if you say you'll ambush it.
Moreover, these plans are excellent at advancing several progressions at once. Not only is Lydia advancing from "outdoors" to "defending the roadways", but she's also advancing along her "Lydia, stealthy supporter" or "Lydia, front line knight" character progressions. She may also progress on her personal opinion of you if you do particularly well or poorly, although remember that all such progressions are temporary. You'll hang out again some other time, and things will unfold differently.
These action plans can offer things the player literally can't do without the NPC, as well. For example, Lydia might say "oh, this is such a rich iron vein. Let's claim it for the city!" at which point you'll have the plan to claim it for the city: something you cannot do on your own, or with another character. Other housecarls might also be able to do it... but for other cities.
This combination of factors will hopefully make the player want to participate in these collaborative plans.
Save and Load Contexts
One technique that can help us add depth to the characters is to allow contexts to be shelved and readopted as necessary.Our instinct might be that Lydia following us around is Lydia hanging out with us, and the whole day is one "hangout session". But that leads to problems, because the context might not progress at all. The player might literally gather plants for three hours straight, and Lydia's constant talk about what she'd like to do will get repetitive and futile.
Instead, she can simply shelve an intended progression when it falls through.
So if Lydia says "that bear might threaten travelers..." and the player doesn't engage, Lydia won't follow that up with "that skeleton might threaten travelers" and "that treant might threaten travelers". Instead, that progression is on hold.
However, if the player does engage an enemy on the world map - pretty much any enemy - Lydia will be able to instantly pick up the progression. "You'll never threaten another traveler!" she barks as you smash down a mudcrab or whatever. From there, she's in her "cleaning up the wilderness" context, which can be built any way the devs want. Maybe one progression is to attack stronger monsters. Another, less preferred branch is to attack weaker monsters. Monsters in another biome. Monsters marked as 'evil'.
This context is active, so Lydia won't say "that bear might threaten travelers..." because she's not in that context any more. Instead, she might see a bear and say "let's clean up this forest a bit!" in an attempt to progress along the biome path of her "cleaning up the wilderness" context.
Of course, once the hangout period ends (spending a certain amount of time in another major context, like in a city or a dungeon), the contexts can reset and she can start over.
This isn't an ideal solution, but it effectively allows you to script character events that unfold naturally and opportunistically as the player plays, rather than being segregated into their own quest lines.
Parties, not Companions
Probably the easiest way around the collaboration difficulties is to have more than one companion. If there are several NPCs, they can discuss and banter. This is something Dragon Age does well, but primarily by using random snippets.We can choose to anchor the banter to contextualized progressions, instead. As an example, if you're wandering Fallout 4 accompanied by both Piper (reporter) and Curie (science robot), they'll both contextualize the wandering and have directions they want it to go. You get a sense of this in Fallout 4 as it stands: they have a variety of generic comments on situations you might encounter.
But by allowing them to comment to each other, you can build up a sense of progression even if the player ignores their preferences.
For example, if you find a few talkative ghouls, Piper might say "hey, we should get their story!"
If the player chooses not to do that and walks away, rather than something like "PIPER -2 FRIENDSHIP", Curie can disarm the situation with an excuse like "We cannot be distracted by such tings, we have important tings to do!"
Of course, the player avatar could theoretically also say that kind of dialog, but the player might not be thinking the same thing. The player might be thinking "sure, give me a second to raid this treasure chest first", which is very different from the dialog claiming it's something that won't happen.
If a third party says the dialog, being wrong is acceptable and can give rise to more complex lines of progression.
For example, if you do go back and talk to them, it's relatively easy to have remembered the original dialog, and now have different dialog. This can be quite generic. For example, as you approach, Curie might say "I remember zees people", then Piper can say "Now do we have time?" Or, if you're now just adventuring with Piper, she might say "hah, now that Curie's not around, we can do some snooping and scooping!" These are fairly generic dialog lines that can be deployed in a lot of different situations.
If we consider hanging out to be a task with a variety of progressions, then we can again run multiple contexts at the same time. We're progressing this specific subquest. We're progressing Piper's "search the wasteland for news" context, which may lead to her wanting to go home and write about it. We're progressing Piper and Curie's relationship with each other - again, it must be stressed that it's a hangout context, not a permanent progression. We're progressing Curie's "focus on the science" context.
By having many contexts which can be progressed, shelved, and activated at the same time, we can make the experience as character-cohesive as possible. From the player's perspective, it doesn't matter which context gets progressed next: they all have Piper acting like Piper or Curie acting like Curie, and for reasons that make sense.
It will require a bit of effort to create the engine to do this, though. You'll need to figure out the right generic dialog to switch or resurrect contexts, just for starters. It's not something I've seen done before.
New Hangouts
This is all about adapting the concept to existing games, but the truth is that we don't need to do that. We can make new games.If they're intended to allow for this kind of thing right from the start, there's no struggle to make sure all the metadata you need exists or all the conversations have to work within some specific fiction: it's all designed from the ground up to work.
Moreover, it allows us to radically reduce the amount of content and gameplay we need to support, because this context-centric approach can use much smaller amounts of gameplay to accomplish the same thing. Rather than gameplay strongly relating us to the world, the gameplay is more about collaborating with a friend.
For example, you could decide to hang out with someone and spend the afternoon assembling ships in bottles. It's basically a minigame, but it's made much more interesting because there's a character-driven progression in play. The actions you take affect what the other people do, and what they want to have happen. Doing well at the minigame may be a bad idea... or, rather, doing well at the minigame may not involve actually building the ship in a bottle.
Hanging out and making ships in a bottle is not just about the progression of the task of ships in a bottle.
We've already talked about longer-term contexts like "Lydia's stealthy follower progression". Well, the whole point now is that the event progression is more about the personal contexts and progressions that our friends are going through. Rather than having one preferred contextual progression, the progression they want from this event is influenced by the progressions they want from their other, personal contexts.
You've going to have very different "ship in a bottle" minigames depending on whether your friend is drunk, angry at her parents, mourning the loss of a friend, nervous about a piloting test, or embarrassed that you found out she likes a terrible TV show. The progression of the minigame is not the point: the point is the progression of her personal contexts, as expressed through the progression of the minigame. Hell, she might even play the minigame without the player's input at all - the player can just watch.
We can spread this idea even further, into the world's overall state. Her personal context affects how well she can fly the ship, or how aggressively she fights. Whether or not there's actual gameplay involved with those or if it's just some flavor dialog, it will convince the player that there's a world and stuff happening.
One possible example leading towards this would be Dragon Age 3, just the parts where you decide who to send where, and for what purpose. You could hang out with someone, and then when you send them on a mission, they get better or worse results depending on how they feel. Their personal context will then be altered by the mission they just went on, so it's a good time to hang out with them again...
Anyway, those are some of my thoughts.
What do you think?
Tuesday, January 09, 2018
The Sims vs Rimworld
There's a new genre hiding in plain sight. A genre about people.
Base building games are including more and more "personal simulations" about the people in those bases. For example, in Rimworld each member of your crew is simulated in great detail. Not only their stats and skills, but also their moods, personalities, traits, and so on.
But it's difficult to feel the "story" of these people. Despite getting sad over losing their dog, or having a bad case of the plague, or dating someone, the character stories don't really have a strong impact on the player.
This is because those events are framed in terms of how they affect the facility rather than how they affect the person.
If someone loses a pet and goes into a long mourning slump, the player has to try and keep them from going berserk or spending days just wandering around. It doesn't even really feel like "the story of that person", it just feels like one of the cogs in your machine is wobbly.
Because it is.
A base building game like Rimworld is about building bases. It's about creating an ever-more-complex self-sufficient machine. The inhabitants, no matter how diligently simulated, are cogs in that machine.
In contrast, consider The Sims.
It's a different setting, but The Sims has most of the same kind of setup as Rimworld when it comes to people. Each sim has specific traits and skills and goals, they tend to have specific jobs, things can go wrong - it's very similar to Rimworld in that regard.
But the house they live in is not a complex machine.
Although you can build your house with astonishing attention to detail, it is not self-sufficient and doesn't need to be. As long as there's some source of money, everything else is optional, and there's no real need to optimize your performance.
The role of "day job" is less about optimally making money and more about providing a scaffold for life experiences - it shapes both the character that goes to work and everyone they share the house with. If things go wrong or get delayed, the house will not collapse just because the day job person is being suboptimal.
Compare this to Rimworld, where it's very likely that half your base will catch sleeping sickness and then whoever is awake will get too moody and start lighting things on fire, at which point a crowd of monsters will attack. Rimworld is about creating a base that can survive all these bumps in the road, even if they pile up. So anything that goes wrong is a bump to your base, even if on paper it's the story of how Anna is depressed and Bob is sick.
The Sims is just the opposite. If something in the house goes wrong, like a sink exploding, the player will naturally contextualize it as part of Anna's crappy day rather than a systemic setback. Even death isn't a sign that the house is doing badly, it's a sign that someone's particular story has come to an end. That may be very upsetting, but it's contextualized as that person dying, not your overall facility degrading.
I think nearly all of the difference in this contextualization is simply because the 'facility' in The Sims is not a high-stress facility. You don't have to worry about droughts or animal attacks or hurricanes. It's pretty easy to establish a baseline habitability, and then everything else is just improving things more or having fun with side tasks.
The lifestyle options for Sims characters are all side options. Some are very dense, some are not, but they are all optional. They provide a stable, steadily-progressing scaffold for the characters' life stories while also providing a steady diet of life events. For example, gardening: you don't have to garden, but if you choose to, it's a steady task that moves forward day after day. Your garden will never be attacked, and even if your whole garden was destroyed, your sims would not die: the baseline habitability would not degrade that far.
If we want to make a game that focuses on the lives of the characters, it's critical that their support system is straightforward and robust, so that setbacks can be judged as affecting the characters rather than the support system. Similarly, the progression system needs to be character-centric rather than facility-centric.
As an example, Rimworld's research system unlocks construction options for the whole base once someone researches how to build it. A character-centric approach would be to allow only that character to build it.
In addition to being character-centric, a character's chosen lifestyle/career/hobby needs to provide a stable, steadily-advancing scaffold, needs to exert pressure on their life and the life of those around them, needs to provide small random events and schedule burps, and needs to respond to a character's own personality/pressure/situation outside of the lifestyle.
For example, rather than the farming system Rimworld currently has (identical to other games such as Dwarf Fortress and Minecraft), we would instead have the farmer work fields on a schedule. The more fields, the more hours of the day are required, and time spikes at harvest and planting. The result is a nice, predictable, slowly-changing curve as to how much time they have to work and how much time is available for other pursuits. Their early-morning schedule would bump up nicely against someone who gets up later - for example, a researcher or carpenter.
In theory, the fully-simulated fields work this way. But in practice, there are too many variables. For example, just walking from point A to point B can take a lot of extra time. Also, the characters aren't great at schedules, and frequently get distracted by their overwhelming need to pick up a meal halfway across the map or whatever.
By reducing the simulation fidelity, we can allow for a more 'readable' character lifestyle. This will help the player to 'feel' the character's life, personality, needs, and so on.
And I think that is where a genre is hiding.
Right in there.
Base building games are including more and more "personal simulations" about the people in those bases. For example, in Rimworld each member of your crew is simulated in great detail. Not only their stats and skills, but also their moods, personalities, traits, and so on.
But it's difficult to feel the "story" of these people. Despite getting sad over losing their dog, or having a bad case of the plague, or dating someone, the character stories don't really have a strong impact on the player.
This is because those events are framed in terms of how they affect the facility rather than how they affect the person.
If someone loses a pet and goes into a long mourning slump, the player has to try and keep them from going berserk or spending days just wandering around. It doesn't even really feel like "the story of that person", it just feels like one of the cogs in your machine is wobbly.
Because it is.
A base building game like Rimworld is about building bases. It's about creating an ever-more-complex self-sufficient machine. The inhabitants, no matter how diligently simulated, are cogs in that machine.
In contrast, consider The Sims.
It's a different setting, but The Sims has most of the same kind of setup as Rimworld when it comes to people. Each sim has specific traits and skills and goals, they tend to have specific jobs, things can go wrong - it's very similar to Rimworld in that regard.
But the house they live in is not a complex machine.
Although you can build your house with astonishing attention to detail, it is not self-sufficient and doesn't need to be. As long as there's some source of money, everything else is optional, and there's no real need to optimize your performance.
The role of "day job" is less about optimally making money and more about providing a scaffold for life experiences - it shapes both the character that goes to work and everyone they share the house with. If things go wrong or get delayed, the house will not collapse just because the day job person is being suboptimal.
Compare this to Rimworld, where it's very likely that half your base will catch sleeping sickness and then whoever is awake will get too moody and start lighting things on fire, at which point a crowd of monsters will attack. Rimworld is about creating a base that can survive all these bumps in the road, even if they pile up. So anything that goes wrong is a bump to your base, even if on paper it's the story of how Anna is depressed and Bob is sick.
The Sims is just the opposite. If something in the house goes wrong, like a sink exploding, the player will naturally contextualize it as part of Anna's crappy day rather than a systemic setback. Even death isn't a sign that the house is doing badly, it's a sign that someone's particular story has come to an end. That may be very upsetting, but it's contextualized as that person dying, not your overall facility degrading.
I think nearly all of the difference in this contextualization is simply because the 'facility' in The Sims is not a high-stress facility. You don't have to worry about droughts or animal attacks or hurricanes. It's pretty easy to establish a baseline habitability, and then everything else is just improving things more or having fun with side tasks.
The lifestyle options for Sims characters are all side options. Some are very dense, some are not, but they are all optional. They provide a stable, steadily-progressing scaffold for the characters' life stories while also providing a steady diet of life events. For example, gardening: you don't have to garden, but if you choose to, it's a steady task that moves forward day after day. Your garden will never be attacked, and even if your whole garden was destroyed, your sims would not die: the baseline habitability would not degrade that far.
If we want to make a game that focuses on the lives of the characters, it's critical that their support system is straightforward and robust, so that setbacks can be judged as affecting the characters rather than the support system. Similarly, the progression system needs to be character-centric rather than facility-centric.
As an example, Rimworld's research system unlocks construction options for the whole base once someone researches how to build it. A character-centric approach would be to allow only that character to build it.
In addition to being character-centric, a character's chosen lifestyle/career/hobby needs to provide a stable, steadily-advancing scaffold, needs to exert pressure on their life and the life of those around them, needs to provide small random events and schedule burps, and needs to respond to a character's own personality/pressure/situation outside of the lifestyle.
For example, rather than the farming system Rimworld currently has (identical to other games such as Dwarf Fortress and Minecraft), we would instead have the farmer work fields on a schedule. The more fields, the more hours of the day are required, and time spikes at harvest and planting. The result is a nice, predictable, slowly-changing curve as to how much time they have to work and how much time is available for other pursuits. Their early-morning schedule would bump up nicely against someone who gets up later - for example, a researcher or carpenter.
In theory, the fully-simulated fields work this way. But in practice, there are too many variables. For example, just walking from point A to point B can take a lot of extra time. Also, the characters aren't great at schedules, and frequently get distracted by their overwhelming need to pick up a meal halfway across the map or whatever.
By reducing the simulation fidelity, we can allow for a more 'readable' character lifestyle. This will help the player to 'feel' the character's life, personality, needs, and so on.
And I think that is where a genre is hiding.
Right in there.
Labels:
characters,
game design,
simulation,
social simulation
Wednesday, December 13, 2017
Generating Screen Time
The most underestimated element of characterization is screen time. How much time a character has in front of audience eyeballs.
The reason it's underestimated is because it's usually mostly automatic. You write characters for a story, you give them traits to help tell the story, you let them help tell the story. Even a first draft will have a fairly suitable amount of screen time for the various characters.
When generating characters randomly, this doesn't happen.
There's an urge to generate characters similar to the ones you might write. Similar traits, visual features, and so on. But this is 'cargo cult' character design: you're emulating the sizzle of a character without understanding the meat.
The meat is screen time. You have to generate screen time.
In fact, I'd wager generating screen time is cheaper and more powerful than generating characters. I bet you can radically extend and punch up a game by adding in generative screen time without any generative characters.
Let's show some quick examples:
In Mass Effect, all of the characters are designed to support the fiction of the universe. As such, even if they aren't chosen to be in your party, their plot arcs still play out. Their roles in the universe are distinct (at least in ME1 & 2), and therefore it's easy to remember who someone is even if you don't pay any attention to them after their introduction. In addition, they are frequently given 'tidbits' of screen time even when not in the main party.
We can break these methods into a few specific types, each of which can be generated algorithmically. I'll use Liara T'soni from Mass Effect One as an example: she's not a very good character but lots of people love her anyway. Thanks to screen time.
Concerns
The first, biggest mistake is to think about character traits.
Traits are not what you need, and never have been. Instead, you need concerns that create screen time.
The two are very similar, but thinking about "concerns" instead of "traits" should help to drive your planning. Concerns can be things the character is concerned about or things the universe is concerned about, or both.
For example, Liara has a lot of very dull, stereotypical traits: she's cute, inexperienced, has a crush on you, likes Benezia, Spocky, a pureblood Asari, is clumsy, etc.
Converting these traits over into 'concerns' instantly helps us give her screen time related to them.
The concern version of that list might be: doesn't realize she's cute, very nervous about her inexperience, nervous about her crush, respects Benezia, wants to use logic to help, is both proud of and ashamed of being pureblood Asari, gets stuck in a lot of awkward physical situations.
By restating her traits in this way, we can quickly see a lot of scenes suggesting themselves. You can inject 'very nervous about her inexperience' into almost any scene she's in, turning her from a background character into a foreground character - giving her screen time. Any scene. You could be fighting monsters, and you could find some way to use it. "I've... I've never seen mufflebats in person before! They didn't seem quite so... vicious... in the holotapes!"
In more focused scenes, you'd probably want to use multiple concerns simultaneously - for example, she can be nervous about her crush on you and her inexperience at the same time. Or you can use contrasting concerns - she respects Benezia, but Benezia no longer respects anyone. She wants to use logic, but she has a crush on you. Etc.
Core Concerns
Notice I didn't mention Liara's core character trait: she's a nerd.
Core concerns are concerns like any other, but they're unique because they exist specifically to drive the story forward, to draw the player into the universe.
Liara's core concern is her obsession with the ancients. This is a many-pronged concern which allows her to help the player understand the ancient psychic visions, drive the player to explore new ruins, and just generally try to get the player enthusiastic about the plot by being enthusiastic about the plot.
Unlike more personal concerns, core concerns might be too hard to really generate or embed in scenes on the fly. They're too deeply tied to the story or the universe. It's probably best to simply assign them rather than generate them.
For example, if you randomly generate some royalty for your fantasy game, you can give them the core concern to pull the player into the world. King or queen, good or evil, old or young, they give the player an excuse to go various places and give the player an introductory letter to important locals. They drive the player's experience regardless of their other concerns.
Screen Time Types
Once you have concerns figured out, you need to convert them into screen time. Keep in mind that screen time requires that a character have the attention of the player. Being in a crowd shot doesn't count, nor does just randomly standing around in a room without having any interactability.
In-party commentary is probably the most subtle and reliable approach. The character simply has something to say over the course of the player's normal adventuring, without interrupting the player's normal adventuring. For example, they might comment on the place, or an enemy, or banter with another party member. These can be injected seamlessly or they can be queued up by interaction spots - for example, a nice view, or a burned-down house.
Radio commentary is a more aggressive version: the character has something to say about something, regardless of whether they're in the party or not. This is typically reserved for core concern stuff - Liara will chime in to tell you that the obelisk has been moved even if she's not in your party. Particularly good radio commentary might involve having the out-of-party NPCs doing their own, parallel thing, then radioing to report their own conclusions to their similarly-paced adventure.
Third-party commentary is when the character isn't necessarily around, but is being discussed anyway. It could be other NPCs talking about them, or a wanted poster of them, or an interview of them, or a note they left, or even just finding a relic and saying "hey, I bet Liara would like this."
Downtime commentary is a powerful and relatively new technique: between adventures, there's a base of operations, and the NPCs are scattered around in it. You can chat with any number of them before moving on with the story. This is a powerful approach because it allows you to remove most of the rest of the world's context: the chatting can progress the same way regardless of which sector of space you're in, regardless of which planet you just visited, regardless of who's in the party, regardless of who the player likes.
Fuzzy focus scenes are scenes where an NPC is obviously tangentially involved, but it's not really about them. For example, whenever you meet another Asari in ME1, it will remind you of Liara, since she was the representative of her race at the time. Or when you step in to help a doctor, Liara might step forward with good advice and back-pats, perhaps even have some scene-specific sub-branch such as manufacturing extra medicine. The focus is still on helping a doctor, but Liara is getting some screen time.
Focused scenes are when the NPC is the focus. Downtime commentary is the most common place to trigger these. It's not necessarily them solo, but they're the focus. For example, Liara might chat with you about your newfound psychic memories, or about her crush, or about the nature of the Asari... or maybe she has a scene where she and Tali are laughing at a technical joke nobody else understands, or she's helping Dr. Chakwas with some basic medical duties. As always, these scenes are built out of the concerns of the characters.
Arcs are when a series of interconnected events happen which focus on the character. Typically these are contiguous. Liara's introduction is an obvious example - most introductions are arcs. You spend some time chasing her around a facility while learning what's going on, and then you team up with her to finish the facility off. This extremely typical example is something that can be generated (or at least customized) for nearly any character, but make sure their concerns show.
Rogue Arcs are when an NPC switches sides, usually temporarily. For example, a hero might become a villain for a short while, or a villain could join the hero's side. Or maybe someone just takes some personal time and things get out of control. Because of the impact of this, the focus is usually on the rogue character. It has no other special features, though, and can be treated as an ordinary arc in every other regard.
Schedule Elements... well, a lot of generative games aren't so big on having a central plot arc, and instead focus on cyclic challenges. A character should have a distinct schedule during these cycles, making it possible to run into them in specific high-context ways. Also, they may choose to change their schedule to react to player activities. The two things to keep in mind are that their schedule should reflect their concerns, and participating in their schedule with them should result in progression, not just repetition.
Anyway, those are my thoughts:
When generating random characters, you should put a lot of effort into generating how they get in front of the player's eyeballs. Just giving them traits won't make the player care about them.
Your thoughts?
The reason it's underestimated is because it's usually mostly automatic. You write characters for a story, you give them traits to help tell the story, you let them help tell the story. Even a first draft will have a fairly suitable amount of screen time for the various characters.
When generating characters randomly, this doesn't happen.
There's an urge to generate characters similar to the ones you might write. Similar traits, visual features, and so on. But this is 'cargo cult' character design: you're emulating the sizzle of a character without understanding the meat.
The meat is screen time. You have to generate screen time.
In fact, I'd wager generating screen time is cheaper and more powerful than generating characters. I bet you can radically extend and punch up a game by adding in generative screen time without any generative characters.
Let's show some quick examples:
In Mass Effect, all of the characters are designed to support the fiction of the universe. As such, even if they aren't chosen to be in your party, their plot arcs still play out. Their roles in the universe are distinct (at least in ME1 & 2), and therefore it's easy to remember who someone is even if you don't pay any attention to them after their introduction. In addition, they are frequently given 'tidbits' of screen time even when not in the main party.
We can break these methods into a few specific types, each of which can be generated algorithmically. I'll use Liara T'soni from Mass Effect One as an example: she's not a very good character but lots of people love her anyway. Thanks to screen time.
Concerns
The first, biggest mistake is to think about character traits.
Traits are not what you need, and never have been. Instead, you need concerns that create screen time.
The two are very similar, but thinking about "concerns" instead of "traits" should help to drive your planning. Concerns can be things the character is concerned about or things the universe is concerned about, or both.
For example, Liara has a lot of very dull, stereotypical traits: she's cute, inexperienced, has a crush on you, likes Benezia, Spocky, a pureblood Asari, is clumsy, etc.
Converting these traits over into 'concerns' instantly helps us give her screen time related to them.
The concern version of that list might be: doesn't realize she's cute, very nervous about her inexperience, nervous about her crush, respects Benezia, wants to use logic to help, is both proud of and ashamed of being pureblood Asari, gets stuck in a lot of awkward physical situations.
By restating her traits in this way, we can quickly see a lot of scenes suggesting themselves. You can inject 'very nervous about her inexperience' into almost any scene she's in, turning her from a background character into a foreground character - giving her screen time. Any scene. You could be fighting monsters, and you could find some way to use it. "I've... I've never seen mufflebats in person before! They didn't seem quite so... vicious... in the holotapes!"
In more focused scenes, you'd probably want to use multiple concerns simultaneously - for example, she can be nervous about her crush on you and her inexperience at the same time. Or you can use contrasting concerns - she respects Benezia, but Benezia no longer respects anyone. She wants to use logic, but she has a crush on you. Etc.
Core Concerns
Notice I didn't mention Liara's core character trait: she's a nerd.
Core concerns are concerns like any other, but they're unique because they exist specifically to drive the story forward, to draw the player into the universe.
Liara's core concern is her obsession with the ancients. This is a many-pronged concern which allows her to help the player understand the ancient psychic visions, drive the player to explore new ruins, and just generally try to get the player enthusiastic about the plot by being enthusiastic about the plot.
Unlike more personal concerns, core concerns might be too hard to really generate or embed in scenes on the fly. They're too deeply tied to the story or the universe. It's probably best to simply assign them rather than generate them.
For example, if you randomly generate some royalty for your fantasy game, you can give them the core concern to pull the player into the world. King or queen, good or evil, old or young, they give the player an excuse to go various places and give the player an introductory letter to important locals. They drive the player's experience regardless of their other concerns.
Screen Time Types
Once you have concerns figured out, you need to convert them into screen time. Keep in mind that screen time requires that a character have the attention of the player. Being in a crowd shot doesn't count, nor does just randomly standing around in a room without having any interactability.
In-party commentary is probably the most subtle and reliable approach. The character simply has something to say over the course of the player's normal adventuring, without interrupting the player's normal adventuring. For example, they might comment on the place, or an enemy, or banter with another party member. These can be injected seamlessly or they can be queued up by interaction spots - for example, a nice view, or a burned-down house.
Radio commentary is a more aggressive version: the character has something to say about something, regardless of whether they're in the party or not. This is typically reserved for core concern stuff - Liara will chime in to tell you that the obelisk has been moved even if she's not in your party. Particularly good radio commentary might involve having the out-of-party NPCs doing their own, parallel thing, then radioing to report their own conclusions to their similarly-paced adventure.
Third-party commentary is when the character isn't necessarily around, but is being discussed anyway. It could be other NPCs talking about them, or a wanted poster of them, or an interview of them, or a note they left, or even just finding a relic and saying "hey, I bet Liara would like this."
Downtime commentary is a powerful and relatively new technique: between adventures, there's a base of operations, and the NPCs are scattered around in it. You can chat with any number of them before moving on with the story. This is a powerful approach because it allows you to remove most of the rest of the world's context: the chatting can progress the same way regardless of which sector of space you're in, regardless of which planet you just visited, regardless of who's in the party, regardless of who the player likes.
Fuzzy focus scenes are scenes where an NPC is obviously tangentially involved, but it's not really about them. For example, whenever you meet another Asari in ME1, it will remind you of Liara, since she was the representative of her race at the time. Or when you step in to help a doctor, Liara might step forward with good advice and back-pats, perhaps even have some scene-specific sub-branch such as manufacturing extra medicine. The focus is still on helping a doctor, but Liara is getting some screen time.
Focused scenes are when the NPC is the focus. Downtime commentary is the most common place to trigger these. It's not necessarily them solo, but they're the focus. For example, Liara might chat with you about your newfound psychic memories, or about her crush, or about the nature of the Asari... or maybe she has a scene where she and Tali are laughing at a technical joke nobody else understands, or she's helping Dr. Chakwas with some basic medical duties. As always, these scenes are built out of the concerns of the characters.
Arcs are when a series of interconnected events happen which focus on the character. Typically these are contiguous. Liara's introduction is an obvious example - most introductions are arcs. You spend some time chasing her around a facility while learning what's going on, and then you team up with her to finish the facility off. This extremely typical example is something that can be generated (or at least customized) for nearly any character, but make sure their concerns show.
Rogue Arcs are when an NPC switches sides, usually temporarily. For example, a hero might become a villain for a short while, or a villain could join the hero's side. Or maybe someone just takes some personal time and things get out of control. Because of the impact of this, the focus is usually on the rogue character. It has no other special features, though, and can be treated as an ordinary arc in every other regard.
Schedule Elements... well, a lot of generative games aren't so big on having a central plot arc, and instead focus on cyclic challenges. A character should have a distinct schedule during these cycles, making it possible to run into them in specific high-context ways. Also, they may choose to change their schedule to react to player activities. The two things to keep in mind are that their schedule should reflect their concerns, and participating in their schedule with them should result in progression, not just repetition.
Anyway, those are my thoughts:
When generating random characters, you should put a lot of effort into generating how they get in front of the player's eyeballs. Just giving them traits won't make the player care about them.
Your thoughts?
Tuesday, March 28, 2017
What Plot Would You Write?
I'm playing Mass Effect: Andromeda, and I've been slightly disappointed by the writing. Putting aside the dialog, I'd like to talk about the wider elements.
Spoilers, but only vague ones.
The game is about a large group of colonists leaping from the Milky Way to Andromeda in vast arks, targeting a few specific worlds that seem inhabitable. They cryosleep for 600 years, and awake when they arrive.
There are some holes here that need some Unobtainium patching, but it's not a bad idea. It sets up a massive project, seals the path backwards, and isolates us from the extensive (and problematic) pre-existing lore.
However, that's not the full setup. There's a million things going on, and they all need to be explained before the story can even get started. That's not a great idea: any one of the setup elements could easily have supported the whole game without making it super-complex, and that would have made the writing easier.
Talking about how writing can be "made easier" might seem a little odd, but the simple truth is that if the scenario is set up well, writing flows well and needs less forcing. This is especially true of characters.
In a game where the player can do a huge number of different sub-plots in a variety of orders, it's critical that they feel some connection to the places and things going on. The easiest way to do this is to have the party members have some connection to nearly every subplot.
If they care, we'll care.
This is a pretty typical approach. In fact, it's the classic Mass Effect approach: in ME1 and ME2, that's how it was done. The characters resonated with nearly every scenario.
For example, Garrus was all about the nature of vigilantism. Well, so was the plot of Mass Effect! The subplots naturally had the concept come up all the time, and therefore Garrus always had something to do or say. Naturally this culminated in him trying to clean up that hellhole asteroid as Archangel, a microcosm of your whole adventure.
Wrex was the same, but about war instead of vigilantism. War was a core theme, and kept coming up. When was it good? Bad? Necessary? Out of control? Tired? Heroic? Desperate? What are we willing to fight for - no, not just fight, but go to war for? And when do we stop?
Both war and vigilantism were threaded into nearly every scenario in the game because the game was built on a single foundation, a simple setup that allowed the writers to easily explore those concepts in a lot of different ways. Although simpler, the setup for the earlier Mass Effect games was not smaller. It could support just as much play, story, and depth... just focused on deeply exploring a few themes instead of shallowly exploring a lot of them.
To put it another way: it's impossible to tell where Garrus ends and the story begins.
A good character flows everywhere they need to be, naturally, unforced.
A bad character stands to the side and watched the story go by. Even if they have good writing or voice acting or are compelling, if they just stand there, they're bad.
This is a big failure in Mass Effect: Andromeda's writing.
For example, Cora. She's a human psychic that worked as an Asari commando. This is a really interesting idea that has really powerful themes.
The actual in-game writing of Cora is clearly "Asari ark contact + conflicts with Peebee". She doesn't flow into the wider story - she's simply wedged into "her place" as a representative of a specific story element. This is probably because there's a lot of specific story elements and they don't have much thematic connection.
Cora's history working with a group of weird alien commandos and desperately trying to earn their trust? Well, that's literally what you do with the Angara. You literally work with Angaran commandos and try to earn their trust. But Cora has nothing to say about it. She's not involved.
The fact that Cora cannot live long enough to complete Asari commando training? That's fascinating, and could easily connect to things like our 600 year cryosleep, or to the Angaran elders that cannot seem to find any fresh new students. Again, Cora has no comment.
This is easily explained: the Angaran stuff is Jaal's place. Jaal does that stuff. Cora isn't involved, except for some minor flavor commentary.
This goes for every character. Jaal's thing is imposter syndrome, but he has no connection to Nexus and its leaders? Even though the thematic connection is clear? Jaal doesn't even have any connection to an Angaran port world conquered by pirates!
The lines drawn around what each character is involved in are sharp and clear.
Unfortunately, that means that for 99% of the story, Cora and Jaal just stand there. They aren't involved.
This is true of all the characters in ME:A, and I think it's why we just don't feel as much connection to them as we did to ME1 and ME2 characters. Those characters went through an adventure with us. These characters just stand nearby while we go through an adventure.
It also makes it difficult for us to care about our adventure!
In ME2, visiting the hellhole asteroid was interesting because two of our characters were deeply involved in trying to fix the place in their own way.
But in ME:A, visiting a similar hellhole is dull. There's no major characters with any significant ties to the world. They don't even get involved in local affairs - just some flavor text. Instead, your contact is some boring smuggler and a woman with a dirty face, neither of whom anyone cares about.
Even characters that should have a history with either the smuggler or the pirate queen... don't. Vetra apparently has no comment on this smuggler, despite using smugglers extensively. Peebee has no particular comment on the pirate queen, despite them both living through the same civil war on the same tiny space station!
This is because Vetra's story is Vetra's story and doesn't interact with the rest of the world. And so neither does Vetra. Peebee, too: lock her up in her own little room, no contact with the rest of the world.
Unfortunately, this means that I don't care about the pirate base. Moreover, the writers missed a chance to make me care more about the crewmembers. If Vetra was the smuggler trying to fix up the pirate world, Vetra would have a chance to impress me and spend meaningful time with me, as well as giving me a reason to care about the pirate world. But... nope. Some boring Han Solo wannabee that is also nicely cordoned off into his own little room.
Writing characters that thread through the game is not terribly hard. The fact that the ME:A characters don't even try makes me think that the writers came up with a plan to partition these elements specifically to reduce complexity - otherwise, they would have written some involvement on accident, I would think.
Whether on purpose or on accident, ME:A's partitioned storylines are a huge disservice to the world and the characters. It starves our critical crewmembers of screentime, and leaves each world feeling uninteresting and pointless.
On a writing level, there are some techniques you can use to make it easier to make the characters flow through your scenarios. A key factor is choosing a simple foundation so you have more repeating themes. IE, vigilantism explored in a hundred variations means a hundred chances for Garrus to have something to do/say.
If ME:A didn't have such a complex setup, a lot of these things would have flowed naturally as the writers searched for interesting ideas in the simpler story space.
But... the fact that they didn't do it at all, not even on accident, implies they wrote it like this on purpose. In which case simplifying the setup would not have helped.
At least, that's my theory. What's yours?
Spoilers, but only vague ones.
The game is about a large group of colonists leaping from the Milky Way to Andromeda in vast arks, targeting a few specific worlds that seem inhabitable. They cryosleep for 600 years, and awake when they arrive.
There are some holes here that need some Unobtainium patching, but it's not a bad idea. It sets up a massive project, seals the path backwards, and isolates us from the extensive (and problematic) pre-existing lore.
However, that's not the full setup. There's a million things going on, and they all need to be explained before the story can even get started. That's not a great idea: any one of the setup elements could easily have supported the whole game without making it super-complex, and that would have made the writing easier.
Talking about how writing can be "made easier" might seem a little odd, but the simple truth is that if the scenario is set up well, writing flows well and needs less forcing. This is especially true of characters.
In a game where the player can do a huge number of different sub-plots in a variety of orders, it's critical that they feel some connection to the places and things going on. The easiest way to do this is to have the party members have some connection to nearly every subplot.
If they care, we'll care.
This is a pretty typical approach. In fact, it's the classic Mass Effect approach: in ME1 and ME2, that's how it was done. The characters resonated with nearly every scenario.
For example, Garrus was all about the nature of vigilantism. Well, so was the plot of Mass Effect! The subplots naturally had the concept come up all the time, and therefore Garrus always had something to do or say. Naturally this culminated in him trying to clean up that hellhole asteroid as Archangel, a microcosm of your whole adventure.
Wrex was the same, but about war instead of vigilantism. War was a core theme, and kept coming up. When was it good? Bad? Necessary? Out of control? Tired? Heroic? Desperate? What are we willing to fight for - no, not just fight, but go to war for? And when do we stop?
Both war and vigilantism were threaded into nearly every scenario in the game because the game was built on a single foundation, a simple setup that allowed the writers to easily explore those concepts in a lot of different ways. Although simpler, the setup for the earlier Mass Effect games was not smaller. It could support just as much play, story, and depth... just focused on deeply exploring a few themes instead of shallowly exploring a lot of them.
To put it another way: it's impossible to tell where Garrus ends and the story begins.
A good character flows everywhere they need to be, naturally, unforced.
A bad character stands to the side and watched the story go by. Even if they have good writing or voice acting or are compelling, if they just stand there, they're bad.
This is a big failure in Mass Effect: Andromeda's writing.
For example, Cora. She's a human psychic that worked as an Asari commando. This is a really interesting idea that has really powerful themes.
The actual in-game writing of Cora is clearly "Asari ark contact + conflicts with Peebee". She doesn't flow into the wider story - she's simply wedged into "her place" as a representative of a specific story element. This is probably because there's a lot of specific story elements and they don't have much thematic connection.
Cora's history working with a group of weird alien commandos and desperately trying to earn their trust? Well, that's literally what you do with the Angara. You literally work with Angaran commandos and try to earn their trust. But Cora has nothing to say about it. She's not involved.
The fact that Cora cannot live long enough to complete Asari commando training? That's fascinating, and could easily connect to things like our 600 year cryosleep, or to the Angaran elders that cannot seem to find any fresh new students. Again, Cora has no comment.
This is easily explained: the Angaran stuff is Jaal's place. Jaal does that stuff. Cora isn't involved, except for some minor flavor commentary.
This goes for every character. Jaal's thing is imposter syndrome, but he has no connection to Nexus and its leaders? Even though the thematic connection is clear? Jaal doesn't even have any connection to an Angaran port world conquered by pirates!
The lines drawn around what each character is involved in are sharp and clear.
Unfortunately, that means that for 99% of the story, Cora and Jaal just stand there. They aren't involved.
This is true of all the characters in ME:A, and I think it's why we just don't feel as much connection to them as we did to ME1 and ME2 characters. Those characters went through an adventure with us. These characters just stand nearby while we go through an adventure.
It also makes it difficult for us to care about our adventure!
In ME2, visiting the hellhole asteroid was interesting because two of our characters were deeply involved in trying to fix the place in their own way.
But in ME:A, visiting a similar hellhole is dull. There's no major characters with any significant ties to the world. They don't even get involved in local affairs - just some flavor text. Instead, your contact is some boring smuggler and a woman with a dirty face, neither of whom anyone cares about.
Even characters that should have a history with either the smuggler or the pirate queen... don't. Vetra apparently has no comment on this smuggler, despite using smugglers extensively. Peebee has no particular comment on the pirate queen, despite them both living through the same civil war on the same tiny space station!
This is because Vetra's story is Vetra's story and doesn't interact with the rest of the world. And so neither does Vetra. Peebee, too: lock her up in her own little room, no contact with the rest of the world.
Unfortunately, this means that I don't care about the pirate base. Moreover, the writers missed a chance to make me care more about the crewmembers. If Vetra was the smuggler trying to fix up the pirate world, Vetra would have a chance to impress me and spend meaningful time with me, as well as giving me a reason to care about the pirate world. But... nope. Some boring Han Solo wannabee that is also nicely cordoned off into his own little room.
Writing characters that thread through the game is not terribly hard. The fact that the ME:A characters don't even try makes me think that the writers came up with a plan to partition these elements specifically to reduce complexity - otherwise, they would have written some involvement on accident, I would think.
Whether on purpose or on accident, ME:A's partitioned storylines are a huge disservice to the world and the characters. It starves our critical crewmembers of screentime, and leaves each world feeling uninteresting and pointless.
On a writing level, there are some techniques you can use to make it easier to make the characters flow through your scenarios. A key factor is choosing a simple foundation so you have more repeating themes. IE, vigilantism explored in a hundred variations means a hundred chances for Garrus to have something to do/say.
If ME:A didn't have such a complex setup, a lot of these things would have flowed naturally as the writers searched for interesting ideas in the simpler story space.
But... the fact that they didn't do it at all, not even on accident, implies they wrote it like this on purpose. In which case simplifying the setup would not have helped.
At least, that's my theory. What's yours?
Thursday, June 09, 2016
A Scaffold That Grinds Away
Last essay I talked about grinding. I did that to set up this essay, in which we talk about "writing" for open world games, especially RPGs.
In classic oldschool RPGs, there's a whirl of four kinds of gameplay, but each kind is very dull. Talking to folks, exploring maps, managing powerups, and fighting: individually, each of these elements is weak. Even combined, they're pretty weak.
A lot of RPGs have tried to become more interesting by changing out one or two of those elements for more interesting variants. That never seems to work. Why?
Look, RPGs are about the grind. There's no way around it. Even when you decide to stop grinding and fight a boss, you're still doing the exact same play, just with a different goal.
And that's the secret.
The power of an RPG isn't in the gameplay, it's in the pacing. You can grind as you like, and then when you're done grinding, you can easily prod the sleepy storyline into feeding you the next bit of content, the new grist for your grinder. New monsters, new target numbers, new setting, new people, new party dynamics.
All our effort has been spent on more realistic characters, lusher settings, better gameplay, adaptive music... but we've never really talked about new ways to feed the player.
We need to talk about grist.
How to make it, how and when to feed it to the player, how to tell how well they're absorbing it.
The term "roguelike" comes to mind. The computer generates the dungeons, and you walk endlessly through them. That is a roguelike's "grist": the neverending parade of dungeons. At first glance, you may think that's a linear RPG's grist, too. Maybe even an open-world RPG's grist. But it's not.
An RPG lives or dies based on the experience of spending time in that world. If we think like that, we can see that our grist isn't dungeons or random quests or generated characters: our grist is experiences in the world.
These are the things the game feeds us as we move forward in linear RPGs. A new town, new people, new plot elements, new character dynamics, new monsters, new world map, new dungeon, new background music, new spells, new equipment, new boss at a new level.
The difficulty is that grist has a flavor. If you deploy this stuff randomly, the player will get a mouthful of garbage. Arranging plots and characters and places and dungeons and monsters and bosses can't be done randomly. It has to be done sensibly.
I think there are three simple ways to choose sensible grist.
One is content packs. If you go to an icy place, you get an icy town, icy people, icy monsters, icy plots... the downside is: the more you do this, the less replayability and variation there is.
Two is arcs. By creating a progression across several grist packs, you can build a sense of permanence. IE, being chased by an imperial task force across three planets will give each planet's grist pack a connection to your experience, even though the planets are individually quite random.
Three is player response grist.
This one is important.
A big part of my enjoyment of old RPGs is having an "understanding" of how the major party members and NPCs "felt" about any given thing. The canon responses were limited, but I would fill in the gaps on my own. Essentially, I could write fan-fiction in my head as I played the game, imagining the characters responding to the random crap the game threw in my way. "Oh man, are you kidding? Another group of ten zombies?" grumps Lucca. "I will handle this group," Robo bleeps.
These stupid internal vignettes were a big part of how I enjoyed these games. My personal response as a player could be mirrored into the game world by the characters, discussed and properly contextualized.
I don't know how many players are like this, but it's important to me, so I'd like to talk about how to let the game help me do those things.
Dragon Age is an example of how to do this explicitly. The characters will frequently comment on random happenings, they banter among themselves, it feels very organic. However, in the end, this actually limits how freely I can shape the story of these characters.
None of the characters can have bad days, because their banter clearly shows them not having a bad day. None of them can have romantic relationships with each other, since their banter shatters that idea, too. None of them can become jealous, angry, happy, sad. None of them can find something interesting, or repellent, or confusing, unless the devs programmed them to.
Back in ye old days, the characters were unchanging, but they were blurry little pixel people who said maybe three lines outside of their personal arc events. You could imagine them doing or feeling anything you like, because they were too small and blurry to prove you wrong.
As our tech improved, we brought the characters into focus, but we left them as unchanging marionettes, simply increasing the number of personal arc events. When I drag Liara and Garrus around a starship for an hour, they never have any opinions or emotions, never feel anything, and I can see it very clearly due to the high quality of their modeling and voice acting.
Sure, games like Dragon Age try to get around this by filling the game with more voice acting and emotions, scripted by the devs. But that works against my enjoyment in many situations. I can't evolve the story as I grind the gameplay, because the devs don't know which direction I'm trying to take it.
There is a way to improve this situation. A surprisingly straightforward way.
We can see it in relatively mainstream games like Fire Emblem. Fire Emblem's devs don't know what sort of people we'll want to hook up with what sort of people, but they give us a mechanic where people that talk to each other in battle will advance their personal arcs. Not everyone has an arc with everyone, but it still allows the game to reflect the player's storytelling impulses.
As an even more mainstream game, we could use the recent Saints' Row or GTA games, where you can always just call people up on your phone to hang out with them. While they don't have programmed emotions while they hang out with you, you can drag them around into pretty diverse situations and they'll react interestingly - both due to their personality and due to their screwy AI that makes them freak out at random moments.
It's not hard to imagine scaling this up by offering more methods to guide the NPCs to behave in specific ways, either long-term or short-term, to reflect the player's personal story.
For example, a version of the GTA framework where the two people you call over will have an event together after they've left, and you'll get notified of the new social situation. A quick text with a picture of the two of them standing on top of a boat, for example. The event can be determined by how much money you made while they were following you around, or how much adrenaline you spawned, or how much damage they took, or where it left off...
Or let them get drunk or high as you pass them various inventory items. Or you can bring up something from their past by showing them a photo or taking them to their old house. Or you could just let the player freaking select how they want the NPCs to feel from a menu.
Wedding this kind of shaping into the grist of an RPG should allow-
Oh, yeah, grist. We're still talking about grist.
The player selects how the characters evolve. That can easily be limited so the characters stay "in character" and/or lined up for their long-term arc. Even with that limitation it's a powerful way to let the player trigger tasty grist.
When the player pushes a character to act in a particular way, why not have that character drag in a bunch of other content based on that? You get the berserker drunk and leave him stumbling around the rooftops, you're going to have a story event where he's caused trouble. It's a good excuse to introduce local law enforcement, a rich person whose roof got broke, people chatting about the weird, shadowy figure which must have been a werewolf stalking through the city at night, and several options as to how to break your buddy out of jail.
This is "piecemeal" content. It can be injected into almost any setting. If the town is big enough to drunkenly jump from roof to roof, it's big enough to support the subplot. It doesn't mean anything in the long run, although the NPCs you introduce here might recur later in other contexts. You can just throw it in and have fun.
Of course, the subplot should have variable long-term results - change the opinion of the town, change your karma rating, etc, who knows.
Fundamentally, this kind of random content is not too hard. Certainly not as hard as generating a good dungeon for a roguelike. The difficulty lies in making sure the actions the player can choose in order to reflect their personal take on the story can spawn these events without seeming overly random.
All of the moments that introduce grist in existing RPGs are already like this. You get new grist when you step on a trigger, and normally you can tell what is a trigger and what isn't. We're talking about the same exact situation, except that the content we introduce is generated instead of scripted.
The challenge is whether we can make that generated content "flow" from the player's situation. That applies for this piecemeal personal response content, but it also applies for arc content and content packs.
...
Well, in the end, I'd like to talk about how to set up the grist properly.
In my mind, we can radically improve RPG design by spitting grist in based on content pack chunks, arcs through multiple chunks, and introducing grist based on the actions of the player... as measured by actions we allow specifically to let the player choose how they want characters to develop.
What do you think?
In classic oldschool RPGs, there's a whirl of four kinds of gameplay, but each kind is very dull. Talking to folks, exploring maps, managing powerups, and fighting: individually, each of these elements is weak. Even combined, they're pretty weak.
A lot of RPGs have tried to become more interesting by changing out one or two of those elements for more interesting variants. That never seems to work. Why?
Look, RPGs are about the grind. There's no way around it. Even when you decide to stop grinding and fight a boss, you're still doing the exact same play, just with a different goal.
And that's the secret.
The power of an RPG isn't in the gameplay, it's in the pacing. You can grind as you like, and then when you're done grinding, you can easily prod the sleepy storyline into feeding you the next bit of content, the new grist for your grinder. New monsters, new target numbers, new setting, new people, new party dynamics.
All our effort has been spent on more realistic characters, lusher settings, better gameplay, adaptive music... but we've never really talked about new ways to feed the player.
We need to talk about grist.
How to make it, how and when to feed it to the player, how to tell how well they're absorbing it.
The term "roguelike" comes to mind. The computer generates the dungeons, and you walk endlessly through them. That is a roguelike's "grist": the neverending parade of dungeons. At first glance, you may think that's a linear RPG's grist, too. Maybe even an open-world RPG's grist. But it's not.
An RPG lives or dies based on the experience of spending time in that world. If we think like that, we can see that our grist isn't dungeons or random quests or generated characters: our grist is experiences in the world.
These are the things the game feeds us as we move forward in linear RPGs. A new town, new people, new plot elements, new character dynamics, new monsters, new world map, new dungeon, new background music, new spells, new equipment, new boss at a new level.
The difficulty is that grist has a flavor. If you deploy this stuff randomly, the player will get a mouthful of garbage. Arranging plots and characters and places and dungeons and monsters and bosses can't be done randomly. It has to be done sensibly.
I think there are three simple ways to choose sensible grist.
One is content packs. If you go to an icy place, you get an icy town, icy people, icy monsters, icy plots... the downside is: the more you do this, the less replayability and variation there is.
Two is arcs. By creating a progression across several grist packs, you can build a sense of permanence. IE, being chased by an imperial task force across three planets will give each planet's grist pack a connection to your experience, even though the planets are individually quite random.
Three is player response grist.
This one is important.
A big part of my enjoyment of old RPGs is having an "understanding" of how the major party members and NPCs "felt" about any given thing. The canon responses were limited, but I would fill in the gaps on my own. Essentially, I could write fan-fiction in my head as I played the game, imagining the characters responding to the random crap the game threw in my way. "Oh man, are you kidding? Another group of ten zombies?" grumps Lucca. "I will handle this group," Robo bleeps.
These stupid internal vignettes were a big part of how I enjoyed these games. My personal response as a player could be mirrored into the game world by the characters, discussed and properly contextualized.
I don't know how many players are like this, but it's important to me, so I'd like to talk about how to let the game help me do those things.
Dragon Age is an example of how to do this explicitly. The characters will frequently comment on random happenings, they banter among themselves, it feels very organic. However, in the end, this actually limits how freely I can shape the story of these characters.
None of the characters can have bad days, because their banter clearly shows them not having a bad day. None of them can have romantic relationships with each other, since their banter shatters that idea, too. None of them can become jealous, angry, happy, sad. None of them can find something interesting, or repellent, or confusing, unless the devs programmed them to.
Back in ye old days, the characters were unchanging, but they were blurry little pixel people who said maybe three lines outside of their personal arc events. You could imagine them doing or feeling anything you like, because they were too small and blurry to prove you wrong.
As our tech improved, we brought the characters into focus, but we left them as unchanging marionettes, simply increasing the number of personal arc events. When I drag Liara and Garrus around a starship for an hour, they never have any opinions or emotions, never feel anything, and I can see it very clearly due to the high quality of their modeling and voice acting.
Sure, games like Dragon Age try to get around this by filling the game with more voice acting and emotions, scripted by the devs. But that works against my enjoyment in many situations. I can't evolve the story as I grind the gameplay, because the devs don't know which direction I'm trying to take it.
There is a way to improve this situation. A surprisingly straightforward way.
We can see it in relatively mainstream games like Fire Emblem. Fire Emblem's devs don't know what sort of people we'll want to hook up with what sort of people, but they give us a mechanic where people that talk to each other in battle will advance their personal arcs. Not everyone has an arc with everyone, but it still allows the game to reflect the player's storytelling impulses.
As an even more mainstream game, we could use the recent Saints' Row or GTA games, where you can always just call people up on your phone to hang out with them. While they don't have programmed emotions while they hang out with you, you can drag them around into pretty diverse situations and they'll react interestingly - both due to their personality and due to their screwy AI that makes them freak out at random moments.
It's not hard to imagine scaling this up by offering more methods to guide the NPCs to behave in specific ways, either long-term or short-term, to reflect the player's personal story.
For example, a version of the GTA framework where the two people you call over will have an event together after they've left, and you'll get notified of the new social situation. A quick text with a picture of the two of them standing on top of a boat, for example. The event can be determined by how much money you made while they were following you around, or how much adrenaline you spawned, or how much damage they took, or where it left off...
Or let them get drunk or high as you pass them various inventory items. Or you can bring up something from their past by showing them a photo or taking them to their old house. Or you could just let the player freaking select how they want the NPCs to feel from a menu.
Wedding this kind of shaping into the grist of an RPG should allow-
Oh, yeah, grist. We're still talking about grist.
The player selects how the characters evolve. That can easily be limited so the characters stay "in character" and/or lined up for their long-term arc. Even with that limitation it's a powerful way to let the player trigger tasty grist.
When the player pushes a character to act in a particular way, why not have that character drag in a bunch of other content based on that? You get the berserker drunk and leave him stumbling around the rooftops, you're going to have a story event where he's caused trouble. It's a good excuse to introduce local law enforcement, a rich person whose roof got broke, people chatting about the weird, shadowy figure which must have been a werewolf stalking through the city at night, and several options as to how to break your buddy out of jail.
This is "piecemeal" content. It can be injected into almost any setting. If the town is big enough to drunkenly jump from roof to roof, it's big enough to support the subplot. It doesn't mean anything in the long run, although the NPCs you introduce here might recur later in other contexts. You can just throw it in and have fun.
Of course, the subplot should have variable long-term results - change the opinion of the town, change your karma rating, etc, who knows.
Fundamentally, this kind of random content is not too hard. Certainly not as hard as generating a good dungeon for a roguelike. The difficulty lies in making sure the actions the player can choose in order to reflect their personal take on the story can spawn these events without seeming overly random.
All of the moments that introduce grist in existing RPGs are already like this. You get new grist when you step on a trigger, and normally you can tell what is a trigger and what isn't. We're talking about the same exact situation, except that the content we introduce is generated instead of scripted.
The challenge is whether we can make that generated content "flow" from the player's situation. That applies for this piecemeal personal response content, but it also applies for arc content and content packs.
...
Well, in the end, I'd like to talk about how to set up the grist properly.
In my mind, we can radically improve RPG design by spitting grist in based on content pack chunks, arcs through multiple chunks, and introducing grist based on the actions of the player... as measured by actions we allow specifically to let the player choose how they want characters to develop.
What do you think?
Tuesday, August 11, 2015
Good Bad Game Design
Skyrim is designed really badly. It's also designed really well.
For an RPG, Skyrim is hilariously bad. The characters are incredibly dull, the places are bland, the voice acting is generic to a hilarious extent, the graphics are uninteresting, the fighting is uninteresting.
Compared to non-open-world RPGs such as the Mass Effect series, Skyrim falls short on every measure.
Despite that, more people still play Skyrim than still play Mass Effect 3.
See, in that dry, generic, empty world, there is space for the player. Even in vanilla Skyrim, there is an endless variety of options. You can go in any direction, stumble across any number of little challenges, see any number of sights.
Yes, all the directions are boring. All the challenges are boring. All the sights are boring.
So why is it fun?
Something about a Role Playing Game that most people seem to forget is that the player gets out what they put in. Most RPGs have very generic protagonists. The game may offer you good and evil options, but even they are quite generic. Closed-world games like Mass Effect or Dragon Age supplement this with interesting characters: Shepard and, uh... Medieval Shepard... have no personality on their own. But you define a personality by surrounding them with characters that do. You build the personality of your hero by choosing their companions. Even if you just choose the companions you happen to like best, you are defining your Shepard as someone with a very similar personality to you.
If you offer enough secondary characters and constrain the number you can choose, you can allow a player some freedom to "put in" their personality and "get" role play out of it. Shepard has a character because you mentally justify why these party members are her favorite. You also get some characterization out of the choices you're presented with in the game, but I'd argue that the party member choice is the most compelling. At the very least, it's continuous and ongoing, rather than a one-off, so it wriggles in your brain and forces you to continually imagine how Shepard feels about how things are going.
In an open-world RPG, parties are rarer. Games like Fallout and Skyrim technically have a party mechanic, but it's very vague, and the characters you can add to your party have almost no impact, personality-wise. Is this a weakness?
No, not at all. In an open-world RPG, you "put in" actions rather than choices. Sure, there may still be choices. Maybe those choices are critical for planting the seed of personality.
But the continuous actions of play are where the character grows and blooms. Trying to sneak through a house or barracks. Deciding to shoot from afar. Deciding to rely on your dull party member to defend you. Looking for a secret inside the waterfall. Opening a creaking chest in the dark. Reacting to the sudden appearance of a pack of wolves.
Unlike a closed-world game, these events are all contiguous. Sometimes they move faster or slower, but they are almost never The Event You Should Be Having. Your avatar is living every second of this adventure, and it is developing in tandem with your actions. You are free to do anything and, in doing anything, you are free to be anyone.
Compound this with mods that change the world, and now you have even more options.
I think these ideas are important.
"Role play" requires the player to feel like the avatar exists. One way to do that is with pieces you painstakingly create for that purpose - a bitter choice, an amazing sight, an interesting companion. Another way to do that is to simply provide a world for the player to live in.
Anyway, I was going to go on and talk about the same "bad vs good" design in other kinds of games (comparing Space Engineers and Kerbal), but I think that's more than enough for today. Let me know what you think.
For an RPG, Skyrim is hilariously bad. The characters are incredibly dull, the places are bland, the voice acting is generic to a hilarious extent, the graphics are uninteresting, the fighting is uninteresting.
Compared to non-open-world RPGs such as the Mass Effect series, Skyrim falls short on every measure.
Despite that, more people still play Skyrim than still play Mass Effect 3.
See, in that dry, generic, empty world, there is space for the player. Even in vanilla Skyrim, there is an endless variety of options. You can go in any direction, stumble across any number of little challenges, see any number of sights.
Yes, all the directions are boring. All the challenges are boring. All the sights are boring.
So why is it fun?
Something about a Role Playing Game that most people seem to forget is that the player gets out what they put in. Most RPGs have very generic protagonists. The game may offer you good and evil options, but even they are quite generic. Closed-world games like Mass Effect or Dragon Age supplement this with interesting characters: Shepard and, uh... Medieval Shepard... have no personality on their own. But you define a personality by surrounding them with characters that do. You build the personality of your hero by choosing their companions. Even if you just choose the companions you happen to like best, you are defining your Shepard as someone with a very similar personality to you.
If you offer enough secondary characters and constrain the number you can choose, you can allow a player some freedom to "put in" their personality and "get" role play out of it. Shepard has a character because you mentally justify why these party members are her favorite. You also get some characterization out of the choices you're presented with in the game, but I'd argue that the party member choice is the most compelling. At the very least, it's continuous and ongoing, rather than a one-off, so it wriggles in your brain and forces you to continually imagine how Shepard feels about how things are going.
In an open-world RPG, parties are rarer. Games like Fallout and Skyrim technically have a party mechanic, but it's very vague, and the characters you can add to your party have almost no impact, personality-wise. Is this a weakness?
No, not at all. In an open-world RPG, you "put in" actions rather than choices. Sure, there may still be choices. Maybe those choices are critical for planting the seed of personality.
But the continuous actions of play are where the character grows and blooms. Trying to sneak through a house or barracks. Deciding to shoot from afar. Deciding to rely on your dull party member to defend you. Looking for a secret inside the waterfall. Opening a creaking chest in the dark. Reacting to the sudden appearance of a pack of wolves.
Unlike a closed-world game, these events are all contiguous. Sometimes they move faster or slower, but they are almost never The Event You Should Be Having. Your avatar is living every second of this adventure, and it is developing in tandem with your actions. You are free to do anything and, in doing anything, you are free to be anyone.
Compound this with mods that change the world, and now you have even more options.
I think these ideas are important.
"Role play" requires the player to feel like the avatar exists. One way to do that is with pieces you painstakingly create for that purpose - a bitter choice, an amazing sight, an interesting companion. Another way to do that is to simply provide a world for the player to live in.
Anyway, I was going to go on and talk about the same "bad vs good" design in other kinds of games (comparing Space Engineers and Kerbal), but I think that's more than enough for today. Let me know what you think.
Monday, July 20, 2015
Life in a Game
So, after Space Engineer's recent disastrous update, I switched back to Rimworld for a while.
Rimworld is coming along nicely. You can build complex bases, set up your citizens in complex ways. There's a lot of fun to be had, especially when you start laying on the mods. But there is a big weakness. I can't blame it on Rimworld: it's a weakness in all base-building games.
The problem with these games is that nobody lives in your bases.
OK, I know there's, like, 30 people living in the base according to the game. They wander around, have their little tasks. In Rimworld they even goof off or chat. Still, none of them actually feel alive. They don't form relationships. They don't have hobbies. They don't do things with each other, have friends, have enemies. They don't have lifestyles or emotions, at least none that are differentiated in any significant way from anyone else. They have a lot of stats, but who cares?
As the number of people in your team goes up, their individual stats matter less and less. Instead, how they contribute to the operation of the team is what matters. It doesn't matter whether person A is marginally better or worse at farming, it matters whether they can play the farming role, and whether they should be a focused farmer or someone who helps farm when the workload gets rough but has other jobs the rest of the time.
What's the alternative?
There's a reason the Sims was popular: it allowed players to feel like their little avatars were living a life. The tools used to do this were simple: a familiar scenario (working and cohabitating) with clearly defined roles, lifestyles, relationships, optional goals (having kids, ranking up, collecting meteors, etc), attention retention (everyone needs to be clicked on sometimes), and personality proxies (appearance, clothing sets, certain personality traits).
Let's talk about each of the techniques individually, and then let's talk about how to shape your game to allow for them.
Personality proxies are the most problematic, because they bring in the most from outside the game world. We'll have to talk about them in detail later, but the short version is that you have to be able to tell who is who. If you have more than four team members, having slightly different names and icons isn't going to cut it: you need a dense representation of who is who, along as many axes as possible. Not just physical appearance, but voice, animations, fashion, mannerisms, personal possessions, and room decoration.
Lifestyles are technically a personality proxie, but it's worth mentioning them as a distinct group because these interact with the world, or at least the timing of things. Lifestyles are specific habits, inhibitions, and judgments not shared by the rest of the group - for example, one person might obsessively collect statues, one person might be the only person on base that smokes weed, one person might only work at night, one person might dress in finery get offended if someone else looks shlubby.
Lifestyles are powerful because they are behavioral elements. However, these should not be chosen willy-nilly. When we talk about how to do personality proxies, we'll be bringing these up again.
Evocative scenario: A familiar scenario is a way to allow the player to hook into the game world. Almost everyone has struggled to work a day job, had roomies, eaten pizza, invited people over, etc. This familiar setting can have any characters inserted into it, since living with Spock and Captain Kirk in a tiny apartment is hilarious.
But, again, this brings in a lot from outside: "familiar" scenario assumes it is familiar. Similarly, while it allows the player to import characters they already have an attachment to, it isn't very good at differentiating random characters. Everyone has to live, eat, participate in daily life. You can put Spock into an apartment, but someone as interesting and evocative as Spock cannot arise from an apartment. There's no room for his characterization.
Because of that, if we're focusing on random characters, we need the exact opposite. Rather than a familiar scenario, we need an evocative, unfamiliar scenario that will allow characters to establish and continually re-establish a strong personality.
Clearly defined roles are important to allow people to distinguish themselves at the most fundamental level. The wider the disparity of roles, the wider the variation between the characters. In The Sims, you have the breadwinner, the housemaker, the children, the skeezy roomie, and so on. You also have all the details you drag in from your expectations: the annoying roomie, the tidy roomie, the control-freak roomie. It's two axes of roles: one aligned with the core gameplay (time/money), one aligned with personal interactions with shared resources.
If we're generating characters randomly, we need to have roles that offer us powerful differentiation. We slot the character into a role and suddenly they come alive. The green thumb luddite is facility manager? We suddenly have an explosion of expectations about how the facility will function and how they will interact with other characters even if none of that actually happens in the game.
The difficulty is getting a breadth of roles. You can't simply use social status, because a simple numeric rank isn't evocative enough. Instead, think of each role as "which core task do they do, when?"
In The Sims, you don't really have "breadwinner A, B, and C", you have one person that wastes their life working in an office, another one that does arts from home, and maybe a third that works part-time at night but still keeps their days largely free. These roles each interact with the core scenario in a different way, at a different place and time. In addition, the people that don't work aren't simply "not working". Each has a role within the function of the house and life in general. One is a child, one is raising children, one is studying for college, one is a housekeeper, one is a social climber, etc, etc.
It's not that the breadwinner has a higher social rank. It's that everyone has their own approach to some set of core tasks.
If we can somehow break the core tasks into two completely distinct groups, it gives everyone two roles, which is even better.
Optional goals are a powerful tool to pull the player into the game world. These are things which take quite a while to accomplish in full, but have numerous small steps you can take along the way. By choosing to dedicate characters to these goals, the player can set up their own story arc and create numerous opportunities for the other characters to get involved peripherally.
The Sims is full of these. You're always working towards something. Whether it's ranking up your day job, improving your skills, or raising your kid, there's always a task you've chosen to do and it's working towards a long-term goal you've chosen to aim for.
Optional goals are incredibly important for distinguishing randomized characters, because they give the characters a Want. When a character wants something, they come alive. In a randomly-generated team, every character having a Want would get confusing and muddled, which is why I think it's best to allow the player to assign these wants by aiming for specific end goals. Even if the character doesn't understand that they are aiming for a specific end goal, they will continue to perform the step-by-step actions towards that goal at the player's command, and therefore act as if they do understand and are aiming for the end goal.
Relationships are also valuable, but, again, they should be used to help the player differentiate the characters. Rather than randomly forming relationships, it is generally better to allow the player to choose which characters get along in which ways, because the player is forming a personal memory of these characters and relating them on purpose.
Not all relationships are simple vanilla romances. Ideally, a flexible relationship engine will allow the player to create the range of complex human relationships. The game doesn't have to understand exactly what a "rival" is or exactly how a "love triangle" works, but it should allow the player to drive these defined relationships around while creating a pretty reliable framework to hang them on.
A fun option is to create optional complications in exchange for some kind of bonus. Rather than forcing person A to fall in love with person B, you can give the player the option of allowing it in exchange for a level boost to those characters. Let the player choose whether to let that interfere with their carefully-laid plans or not.
Attention Retention is a trick used to keep characters in the player's memory. Once you have more than about four characters, some of them will necessarily become background characters. To prevent them from fading out of the player's mind and become cogs in the game's machinery, you need to draw the player's attention back to them once in a while.
There are a lot of ways to do this, but my favorite is to add a "token" to each player every time period. When a player activates a character for some kind of social interaction, the tokens can be used to level up. Therefore, background characters will sometimes jump into the foreground and level up dramatically, which is a fun way to do it.
...
Now. Let's talk about the first and most important way to make generated characters interesting: personality proxies and lifestyles.
This needs special attention for a lot of reasons, but let's start with the basics.
When we build a character in a game with defined characters, we design the characters to reflect their personalities. Every aspect of their appearance, voice, mannerisms, fashion, animations, possessions, and even room decorations reflect their personality.
However, random characters do not usually have that setup. That's because if you try it, you'll end up with incredibly offensive and limited stereotypes. Instead, most devs use personality traits that aren't related to your physical appearance or fashion choices. It's less limited, but it's also much harder to distinguish your characters. Moreover, the "colorblind" approach is not a whole lot better, as it assumes the universal culture is your own.
The thing to consider is that most games with defined characters have those characters resonate with their life situation. That is, they are who they are because of their own culture. For example, Tali is a really bad stereotype, but she constantly interacts with and resonates with her situation. You are asked to understand why she is who she is, rather than just treating her as a given. Even the blue bisexuals that want to bang you have a lot of culture and society and general baggage that tries to make them more interesting than their stereotype.
Most of the time, rather than having each species stand in for a kind of human, we've started to have each species stand in for a kind of lifestyle or situation. It would have been easy to make the Krogan a literal stand-in for native Americans, and the Qunari as stand-ins for Russians. Instead, they went the other way and carefully made them not stand-ins. Mostly.
It's not a flawless approach, but it's generally pretty good. The idea is to create artificial situations, artificial cultures and societies. Each one represents some core concern in your universe's fiction.
An easy example is Dragon Age, which chose to make its elves a destitute amalgam of every oppressed minority they could think up. The elves don't represent a specific human culture, but they do resonate with the idea of oppression. Dragon Age has a lot to say about oppression and the nature of power, so having a tentpole species represent one corner of that idea was a pretty good idea. We can argue about how it fell short, but it is fundamentally a pretty good idea.
Rimworld doesn't have any deep fiction to it, but the game mechanics suggest specific human concerns. People within a few hundred miles of each other can have radically different technologies and resource levels, meaning that disparity is tremendous. You have the technology to build a fully self-sufficient base in just a few months, except for the waves of attackers that come to steal your things. So disparity is tremendous and violence is common. Life is cheap, technology is cheap, everything is cheap.
It would be relatively easy to come up with cultures that anchor these concepts. Your crew could easily come from those cultures, which would allow them to have a lot of baseline opinions and an easy-to-understand personality. Moreover, you could have each culture be visually distinct.
Not as in "these guys are brown, those guys are pink". Differentiation should be chosen more carefully. If everyone is human, differentiate mostly on things any human could choose to do: fashion, accent, behavior, tattoos, hair dye/cut, equipment, room clutter, etc. The idea is to give the player strong audiovisual clues as to the situation and personality of the characters without implying anything horrible on accident.
Rimworld would have a particularly difficult time of it, though, because the characters are so tiny and indistinct. I would probably add larger portraits to help with that, but another option is to allow the characters to alter their surroundings. For example, a character might have a dominant color scheme, and everything they own (including the things they wear) is automatically recolored to it. They might leave specific kinds of clutter in the places they hang out. They could even have flavored footsteps - different timbre to represent how they move. There are a lot of ways to make the characters more distinct, and you should try them all.
Of course, not all of them should be about distinguishing which fake culture the person is from. A lot of them should be related to that person's personality, instead.
Now, about lifestyles.
Lifestyles are an extension of this idea, but are active. They are habits, inhibitions, and judgments. These allow a character to interact with other characters and with the operation of the group in general.
Personality proxies as discussed above are largely passive, and are intended mostly to help players remember who is who. But lifestyles push. This is when the characters start to come alive a bit: by interacting with things and people in specific ways, you can get a resonance.
Someone's personality is largely defined by how it resonates with their situation. A lot of that will happen in the player's head or in the lore of the universe - "people from faction A have been oppressed for centuries by-" done, we know the basis for their behavior. But sometimes we want to see that resonance come into existence in the game world proper.
This is extra powerful in a base-building game, because you can arrange the base to cause different kinds of situations depending on the lifestyles of the people within it. If someone insists on always wearing the best finery, a dusty, overheated base will be a nightmare for them.
The critical thing about lifestyles to remember is that it is for the player's benefit, not the characters'. Every lifestyle exists to resonate with something else the player controls, whether it's another character or the base itself. Because of that, lifestyles should only resonate with what the character can control, and they should resonate on-camera.
For example, in Rimworld there is a trait that makes a character annoying, and anyone that talks with them gets annoyed. However, there is really no way for the player to control who socializes with who, so it takes a lot of effort to mitigate that lifestyle. If there were more tools for controlling socialization, it would be a more interesting trait.
Ideally, each lifestyle should interact with something the player can control. The more nuanced and constructive that control is, the better. A dusty, hot base can be mitigated with air conditioning, filters, and a dedicated janitor, so it's a pretty good trait... if you allow the player to do those things. But each of those things comes with another side effect, and that's the heart of this.
You ask the player to consider the characters, to work the characters into their core concerns. To choose how far to go for each character. It's a promising approach.
Anyway, those are my thoughts.
Rimworld is coming along nicely. You can build complex bases, set up your citizens in complex ways. There's a lot of fun to be had, especially when you start laying on the mods. But there is a big weakness. I can't blame it on Rimworld: it's a weakness in all base-building games.
The problem with these games is that nobody lives in your bases.
OK, I know there's, like, 30 people living in the base according to the game. They wander around, have their little tasks. In Rimworld they even goof off or chat. Still, none of them actually feel alive. They don't form relationships. They don't have hobbies. They don't do things with each other, have friends, have enemies. They don't have lifestyles or emotions, at least none that are differentiated in any significant way from anyone else. They have a lot of stats, but who cares?
As the number of people in your team goes up, their individual stats matter less and less. Instead, how they contribute to the operation of the team is what matters. It doesn't matter whether person A is marginally better or worse at farming, it matters whether they can play the farming role, and whether they should be a focused farmer or someone who helps farm when the workload gets rough but has other jobs the rest of the time.
What's the alternative?
There's a reason the Sims was popular: it allowed players to feel like their little avatars were living a life. The tools used to do this were simple: a familiar scenario (working and cohabitating) with clearly defined roles, lifestyles, relationships, optional goals (having kids, ranking up, collecting meteors, etc), attention retention (everyone needs to be clicked on sometimes), and personality proxies (appearance, clothing sets, certain personality traits).
Let's talk about each of the techniques individually, and then let's talk about how to shape your game to allow for them.
Personality proxies are the most problematic, because they bring in the most from outside the game world. We'll have to talk about them in detail later, but the short version is that you have to be able to tell who is who. If you have more than four team members, having slightly different names and icons isn't going to cut it: you need a dense representation of who is who, along as many axes as possible. Not just physical appearance, but voice, animations, fashion, mannerisms, personal possessions, and room decoration.
Lifestyles are technically a personality proxie, but it's worth mentioning them as a distinct group because these interact with the world, or at least the timing of things. Lifestyles are specific habits, inhibitions, and judgments not shared by the rest of the group - for example, one person might obsessively collect statues, one person might be the only person on base that smokes weed, one person might only work at night, one person might dress in finery get offended if someone else looks shlubby.
Lifestyles are powerful because they are behavioral elements. However, these should not be chosen willy-nilly. When we talk about how to do personality proxies, we'll be bringing these up again.
Evocative scenario: A familiar scenario is a way to allow the player to hook into the game world. Almost everyone has struggled to work a day job, had roomies, eaten pizza, invited people over, etc. This familiar setting can have any characters inserted into it, since living with Spock and Captain Kirk in a tiny apartment is hilarious.
But, again, this brings in a lot from outside: "familiar" scenario assumes it is familiar. Similarly, while it allows the player to import characters they already have an attachment to, it isn't very good at differentiating random characters. Everyone has to live, eat, participate in daily life. You can put Spock into an apartment, but someone as interesting and evocative as Spock cannot arise from an apartment. There's no room for his characterization.
Because of that, if we're focusing on random characters, we need the exact opposite. Rather than a familiar scenario, we need an evocative, unfamiliar scenario that will allow characters to establish and continually re-establish a strong personality.
Clearly defined roles are important to allow people to distinguish themselves at the most fundamental level. The wider the disparity of roles, the wider the variation between the characters. In The Sims, you have the breadwinner, the housemaker, the children, the skeezy roomie, and so on. You also have all the details you drag in from your expectations: the annoying roomie, the tidy roomie, the control-freak roomie. It's two axes of roles: one aligned with the core gameplay (time/money), one aligned with personal interactions with shared resources.
If we're generating characters randomly, we need to have roles that offer us powerful differentiation. We slot the character into a role and suddenly they come alive. The green thumb luddite is facility manager? We suddenly have an explosion of expectations about how the facility will function and how they will interact with other characters even if none of that actually happens in the game.
The difficulty is getting a breadth of roles. You can't simply use social status, because a simple numeric rank isn't evocative enough. Instead, think of each role as "which core task do they do, when?"
In The Sims, you don't really have "breadwinner A, B, and C", you have one person that wastes their life working in an office, another one that does arts from home, and maybe a third that works part-time at night but still keeps their days largely free. These roles each interact with the core scenario in a different way, at a different place and time. In addition, the people that don't work aren't simply "not working". Each has a role within the function of the house and life in general. One is a child, one is raising children, one is studying for college, one is a housekeeper, one is a social climber, etc, etc.
It's not that the breadwinner has a higher social rank. It's that everyone has their own approach to some set of core tasks.
If we can somehow break the core tasks into two completely distinct groups, it gives everyone two roles, which is even better.
Optional goals are a powerful tool to pull the player into the game world. These are things which take quite a while to accomplish in full, but have numerous small steps you can take along the way. By choosing to dedicate characters to these goals, the player can set up their own story arc and create numerous opportunities for the other characters to get involved peripherally.
The Sims is full of these. You're always working towards something. Whether it's ranking up your day job, improving your skills, or raising your kid, there's always a task you've chosen to do and it's working towards a long-term goal you've chosen to aim for.
Optional goals are incredibly important for distinguishing randomized characters, because they give the characters a Want. When a character wants something, they come alive. In a randomly-generated team, every character having a Want would get confusing and muddled, which is why I think it's best to allow the player to assign these wants by aiming for specific end goals. Even if the character doesn't understand that they are aiming for a specific end goal, they will continue to perform the step-by-step actions towards that goal at the player's command, and therefore act as if they do understand and are aiming for the end goal.
Relationships are also valuable, but, again, they should be used to help the player differentiate the characters. Rather than randomly forming relationships, it is generally better to allow the player to choose which characters get along in which ways, because the player is forming a personal memory of these characters and relating them on purpose.
Not all relationships are simple vanilla romances. Ideally, a flexible relationship engine will allow the player to create the range of complex human relationships. The game doesn't have to understand exactly what a "rival" is or exactly how a "love triangle" works, but it should allow the player to drive these defined relationships around while creating a pretty reliable framework to hang them on.
A fun option is to create optional complications in exchange for some kind of bonus. Rather than forcing person A to fall in love with person B, you can give the player the option of allowing it in exchange for a level boost to those characters. Let the player choose whether to let that interfere with their carefully-laid plans or not.
Attention Retention is a trick used to keep characters in the player's memory. Once you have more than about four characters, some of them will necessarily become background characters. To prevent them from fading out of the player's mind and become cogs in the game's machinery, you need to draw the player's attention back to them once in a while.
There are a lot of ways to do this, but my favorite is to add a "token" to each player every time period. When a player activates a character for some kind of social interaction, the tokens can be used to level up. Therefore, background characters will sometimes jump into the foreground and level up dramatically, which is a fun way to do it.
...
Now. Let's talk about the first and most important way to make generated characters interesting: personality proxies and lifestyles.
This needs special attention for a lot of reasons, but let's start with the basics.
When we build a character in a game with defined characters, we design the characters to reflect their personalities. Every aspect of their appearance, voice, mannerisms, fashion, animations, possessions, and even room decorations reflect their personality.
However, random characters do not usually have that setup. That's because if you try it, you'll end up with incredibly offensive and limited stereotypes. Instead, most devs use personality traits that aren't related to your physical appearance or fashion choices. It's less limited, but it's also much harder to distinguish your characters. Moreover, the "colorblind" approach is not a whole lot better, as it assumes the universal culture is your own.
The thing to consider is that most games with defined characters have those characters resonate with their life situation. That is, they are who they are because of their own culture. For example, Tali is a really bad stereotype, but she constantly interacts with and resonates with her situation. You are asked to understand why she is who she is, rather than just treating her as a given. Even the blue bisexuals that want to bang you have a lot of culture and society and general baggage that tries to make them more interesting than their stereotype.
Most of the time, rather than having each species stand in for a kind of human, we've started to have each species stand in for a kind of lifestyle or situation. It would have been easy to make the Krogan a literal stand-in for native Americans, and the Qunari as stand-ins for Russians. Instead, they went the other way and carefully made them not stand-ins. Mostly.
It's not a flawless approach, but it's generally pretty good. The idea is to create artificial situations, artificial cultures and societies. Each one represents some core concern in your universe's fiction.
An easy example is Dragon Age, which chose to make its elves a destitute amalgam of every oppressed minority they could think up. The elves don't represent a specific human culture, but they do resonate with the idea of oppression. Dragon Age has a lot to say about oppression and the nature of power, so having a tentpole species represent one corner of that idea was a pretty good idea. We can argue about how it fell short, but it is fundamentally a pretty good idea.
Rimworld doesn't have any deep fiction to it, but the game mechanics suggest specific human concerns. People within a few hundred miles of each other can have radically different technologies and resource levels, meaning that disparity is tremendous. You have the technology to build a fully self-sufficient base in just a few months, except for the waves of attackers that come to steal your things. So disparity is tremendous and violence is common. Life is cheap, technology is cheap, everything is cheap.
It would be relatively easy to come up with cultures that anchor these concepts. Your crew could easily come from those cultures, which would allow them to have a lot of baseline opinions and an easy-to-understand personality. Moreover, you could have each culture be visually distinct.
Not as in "these guys are brown, those guys are pink". Differentiation should be chosen more carefully. If everyone is human, differentiate mostly on things any human could choose to do: fashion, accent, behavior, tattoos, hair dye/cut, equipment, room clutter, etc. The idea is to give the player strong audiovisual clues as to the situation and personality of the characters without implying anything horrible on accident.
Rimworld would have a particularly difficult time of it, though, because the characters are so tiny and indistinct. I would probably add larger portraits to help with that, but another option is to allow the characters to alter their surroundings. For example, a character might have a dominant color scheme, and everything they own (including the things they wear) is automatically recolored to it. They might leave specific kinds of clutter in the places they hang out. They could even have flavored footsteps - different timbre to represent how they move. There are a lot of ways to make the characters more distinct, and you should try them all.
Of course, not all of them should be about distinguishing which fake culture the person is from. A lot of them should be related to that person's personality, instead.
Now, about lifestyles.
Lifestyles are an extension of this idea, but are active. They are habits, inhibitions, and judgments. These allow a character to interact with other characters and with the operation of the group in general.
Personality proxies as discussed above are largely passive, and are intended mostly to help players remember who is who. But lifestyles push. This is when the characters start to come alive a bit: by interacting with things and people in specific ways, you can get a resonance.
Someone's personality is largely defined by how it resonates with their situation. A lot of that will happen in the player's head or in the lore of the universe - "people from faction A have been oppressed for centuries by-" done, we know the basis for their behavior. But sometimes we want to see that resonance come into existence in the game world proper.
This is extra powerful in a base-building game, because you can arrange the base to cause different kinds of situations depending on the lifestyles of the people within it. If someone insists on always wearing the best finery, a dusty, overheated base will be a nightmare for them.
The critical thing about lifestyles to remember is that it is for the player's benefit, not the characters'. Every lifestyle exists to resonate with something else the player controls, whether it's another character or the base itself. Because of that, lifestyles should only resonate with what the character can control, and they should resonate on-camera.
For example, in Rimworld there is a trait that makes a character annoying, and anyone that talks with them gets annoyed. However, there is really no way for the player to control who socializes with who, so it takes a lot of effort to mitigate that lifestyle. If there were more tools for controlling socialization, it would be a more interesting trait.
Ideally, each lifestyle should interact with something the player can control. The more nuanced and constructive that control is, the better. A dusty, hot base can be mitigated with air conditioning, filters, and a dedicated janitor, so it's a pretty good trait... if you allow the player to do those things. But each of those things comes with another side effect, and that's the heart of this.
You ask the player to consider the characters, to work the characters into their core concerns. To choose how far to go for each character. It's a promising approach.
Anyway, those are my thoughts.
Tuesday, July 14, 2015
Characterization in Games
There's some talk about Mass Effect 4.
I remember really liking the first three, although they got worse with each release. I remember liking the characters and the feel of the universe, although it had some transparent flaws that got more glaring with each iteration. The big draw was the characters.
But now, looking back, I don't remember the characters much. I mean, I remember them - Tali and Wrex and Liara and so on - but I don't have any fond memories of them. The only characters I remember well are Chakwas and Garrus.
Why them?
Because they hung out with me.
Hell, I remember the nameless meat-head marine in the last game better than most of the characters I actually liked, because his first major scene was him hanging out with me. Sure, he was annoying, but we interacted socially.
Game designers are typically worried about bang for the buck, so the scenes they write are usually A) exposition, B) entertainment, and/or C) rewards. For example, Mordin was written for "entertaining" exposition, and even had a few purely entertainment scenes, such as his famous song. On the other hand, Liara is basically the same character written for "rewarding" exposition - she's nice to look at for the target audience, has an attractive voice, wants to date you instantly, and spouts exposition.
All of these options are aimed at the "unnamed player" - the person pushing through the game. Although in theory Liara and Mordin are interacting in-world with Commander Shepard, they're really aiming at the person holding the controller. You can clearly see that by how your responses are framed: Shepard doesn't have any strong or nuanced reactions, just a basic binary response you select from the generic menu. The scenes are aimed at the "unnamed player", not at Shepard, your version of Shepard, or you playing Shepard.
Easy way to tell? Shephard never laughs, grunts, or sighs until you say she should.
By removing Shepard from the equation, it's easy to make generic, highly acceptable events. Shepard has no nuanced response because that maximizes acceptability: if a player finds Mordin's canned, West-Wingish dialog annoying, or hates blue space babes, that's okay. Shepard can hate them, too, just select it from the drop-down list.
That said, it's no mistake that the most memorable scenes in the game don't ask you to judge anything at all. When you're shooting with Garrus, it never asks for your opinion on Garrus or on shooting or whatever. It just asks you whether you want to hit or miss. Shepard is allowed to react as Garrus' friend, and they get some very pleasant and rewarding patter going without the "unnamed player" ever stepping in to pass judgment.
That's why the scene is so powerful: it builds up an easy, rolling pace. The characters are in the right world, behaving as they really would, and it doesn't interrupt itself to ask the player what they think. At this point, if you aren't friends with Garrus, you can screw off.
It worked.
I don't know if that scene is the thing everyone remembers most from ME3. But after time has passed, it is the first thing I remember about all three games. And I replayed ME1 after ME3.
The Chakwas scene is similar. You aren't asked to judge whether you like Chakwas or not, or what you think of her talking about the old days. Instead, it's allowed to unfold gently, organically, from the two characters. The player is not involved, but because the scene is honest, they'll remember it for a long time. I can't even remember which game the scene was in, but I remember the scene.
So...
Stop making generic protagonists. Stop asking the player what they think.
Let the player choose by doing. If the player keeps approaching Garrus, assume they like him. Give the player choice by giving them physical choice: hit or miss. Drink or leave. Hug or pat. Then let the scenes work out based on the characters. People will remember it longer, I think.
I remember really liking the first three, although they got worse with each release. I remember liking the characters and the feel of the universe, although it had some transparent flaws that got more glaring with each iteration. The big draw was the characters.
But now, looking back, I don't remember the characters much. I mean, I remember them - Tali and Wrex and Liara and so on - but I don't have any fond memories of them. The only characters I remember well are Chakwas and Garrus.
Why them?
Because they hung out with me.
Hell, I remember the nameless meat-head marine in the last game better than most of the characters I actually liked, because his first major scene was him hanging out with me. Sure, he was annoying, but we interacted socially.
Game designers are typically worried about bang for the buck, so the scenes they write are usually A) exposition, B) entertainment, and/or C) rewards. For example, Mordin was written for "entertaining" exposition, and even had a few purely entertainment scenes, such as his famous song. On the other hand, Liara is basically the same character written for "rewarding" exposition - she's nice to look at for the target audience, has an attractive voice, wants to date you instantly, and spouts exposition.
All of these options are aimed at the "unnamed player" - the person pushing through the game. Although in theory Liara and Mordin are interacting in-world with Commander Shepard, they're really aiming at the person holding the controller. You can clearly see that by how your responses are framed: Shepard doesn't have any strong or nuanced reactions, just a basic binary response you select from the generic menu. The scenes are aimed at the "unnamed player", not at Shepard, your version of Shepard, or you playing Shepard.
Easy way to tell? Shephard never laughs, grunts, or sighs until you say she should.
By removing Shepard from the equation, it's easy to make generic, highly acceptable events. Shepard has no nuanced response because that maximizes acceptability: if a player finds Mordin's canned, West-Wingish dialog annoying, or hates blue space babes, that's okay. Shepard can hate them, too, just select it from the drop-down list.
That said, it's no mistake that the most memorable scenes in the game don't ask you to judge anything at all. When you're shooting with Garrus, it never asks for your opinion on Garrus or on shooting or whatever. It just asks you whether you want to hit or miss. Shepard is allowed to react as Garrus' friend, and they get some very pleasant and rewarding patter going without the "unnamed player" ever stepping in to pass judgment.
That's why the scene is so powerful: it builds up an easy, rolling pace. The characters are in the right world, behaving as they really would, and it doesn't interrupt itself to ask the player what they think. At this point, if you aren't friends with Garrus, you can screw off.
It worked.
I don't know if that scene is the thing everyone remembers most from ME3. But after time has passed, it is the first thing I remember about all three games. And I replayed ME1 after ME3.
The Chakwas scene is similar. You aren't asked to judge whether you like Chakwas or not, or what you think of her talking about the old days. Instead, it's allowed to unfold gently, organically, from the two characters. The player is not involved, but because the scene is honest, they'll remember it for a long time. I can't even remember which game the scene was in, but I remember the scene.
So...
Stop making generic protagonists. Stop asking the player what they think.
Let the player choose by doing. If the player keeps approaching Garrus, assume they like him. Give the player choice by giving them physical choice: hit or miss. Drink or leave. Hug or pat. Then let the scenes work out based on the characters. People will remember it longer, I think.
Monday, December 01, 2014
NPCs and SCREEEEN TIIIIIME
I've thought a lot about NPCs in games, and one thing I tend to forget to mention is that there are some very simple guidelines. Follow the guidelines, you tend to get great NPCs.
The most basic thing to keep in mind: in order to care about an NPC, you have to see the NPC do things.
More basically, "screen time = appreciation"
There are a lot of games where the NPCs don't have much screen time, and you are expected to "choose" who you like best. Who you want on your party, or want to talk to every day in town, or whatever.
This is really the wrong approach. If you show a bunch of options and ask someone to choose, they have to choose based on stereotypes.
It's better to never give the player a choice.
Wait, let me explain a bit more.
"Screen time = appreciation" is a powerful concept. Let's look at Final Fantasy VII, since most people will be familiar with it. Let's think about which woman your teenage-boy self had the biggest feelings for. Just bear with me if you weren't a teenage boy, the point is easiest to make like this.
The three prospective crushes are Tifa, Aerith, and Yuffie.
After playing the game, Aerith was the one everyone remembered and felt most fondly for. That's not because of her design: a painfully quiet girl in a demure dress can't visually compete against the lure of Lara Croft. I mean Tifa. Even in terms of personality, Aerith has nothing going for her - she's got no personality at all. Tifa and Yuffie both have personalities - one reliable, one annoying, both better than the play-doh brain of Aerith.
But the player's preference for the NPCs doesn't come from their visual design or their personalities. It comes strictly from how much screen time they have.
Aerith has the most screen time by an order of magnitude. Also, the quality of her screen time is very high. Not only is she usually the core focus of the cut scene, the cut scene is also usually about her. Tifa, on the other hand, often participates in cut scenes as one of the group rather than solo, and is often focused on resolving the current situation instead of building herself up.
"Yuffie has solo screen time, and everyone hated her!"
Yup! Her screen time was followed by a long stretch of the player having to wade through annoying shit with the only reward being a return to status quo. So players hated her.
But although the setup made people hate Yuffie, they did remember her. They did care about her. They did appreciate her in line with her screen time. It's just that their appreciation was of the "arrrgh youuuuuuuuuuu" nature, rather than the more positive feelings assigned to the others.
...
All the characters in all games follow this same basic rule, as you can easily find out just by looking. The reason I used FFVII is because of the clarity of the situation: Aerith is worthless as a character. She has no personality, no arc: you could replace her with a lamp and the story wouldn't change in the slightest. But she was suuuuuper popular.
Because of screen time.
Similarly, Yuffie was quite unpopular.
Because of screen time.
Obviously, the design of the character does matter some. As does what they are actually doing on screen. Also, they have to actually be doing something of their own volition: just having them participate in battles doesn't really count.
Anyway, this basic assumption can be used to really change how you design characters, and you can see that in, say, the Dragon Age games.
Dragon Age games feature a lot of incredibly uninspired character designs, but everyone likes the characters because they feel real. You know why they feel real?
SCREEEEEEEN TIIIIIIME
The characters banter with each other on the road, say character-specific combat lines, and spend an inordinate amount of time talking about their backstory if you go to camp. Combine this with a selection of character-specific missions, you have a good amount of screen time for each character. There's a lot of little details that turn "passive time" (wandering around, battle moments) into small amounts of screen time, which is powerful.
Moreover, you have a balanced amount of screen time.
Unlike FFVII, Dragon's Age gives every character a specific amount of specific types of screen time. Maybe there's 130 lines of banter dialog for each. Maybe they each have 3 sidequests. Maybe they each have 13 backstory conversations, all paced identically. Maybe they inject an identical amount of personality into their combat shouts.
Because of this balance, everyone appreciates a lot of different Dragon's Age characters. I even found myself appreciating characters I doubt I would have cared about in another game, such as the painfully generic templar or the old lady sorceress. Similarly, I found myself siding against the characters I would have picked as my favorites if I was just shown a picture and a catchphrase.
Why?
Say it with me-
screentime
The characters have balanced screen times, so I have an appreciation for all of them.
This does falter a bit here and there. You still tend to settle into one primary combat party (a huge flaw in all modern RPGs), and that affects your affections. Also, there's a ton of really dumb backstory. While it does give them more screen time, it is distractingly stupid.
But those are flaws I think could be addressed.
Anyway, that's my rant on screen time.
The most basic thing to keep in mind: in order to care about an NPC, you have to see the NPC do things.
More basically, "screen time = appreciation"
There are a lot of games where the NPCs don't have much screen time, and you are expected to "choose" who you like best. Who you want on your party, or want to talk to every day in town, or whatever.
This is really the wrong approach. If you show a bunch of options and ask someone to choose, they have to choose based on stereotypes.
It's better to never give the player a choice.
Wait, let me explain a bit more.
"Screen time = appreciation" is a powerful concept. Let's look at Final Fantasy VII, since most people will be familiar with it. Let's think about which woman your teenage-boy self had the biggest feelings for. Just bear with me if you weren't a teenage boy, the point is easiest to make like this.
The three prospective crushes are Tifa, Aerith, and Yuffie.
After playing the game, Aerith was the one everyone remembered and felt most fondly for. That's not because of her design: a painfully quiet girl in a demure dress can't visually compete against the lure of Lara Croft. I mean Tifa. Even in terms of personality, Aerith has nothing going for her - she's got no personality at all. Tifa and Yuffie both have personalities - one reliable, one annoying, both better than the play-doh brain of Aerith.
But the player's preference for the NPCs doesn't come from their visual design or their personalities. It comes strictly from how much screen time they have.
Aerith has the most screen time by an order of magnitude. Also, the quality of her screen time is very high. Not only is she usually the core focus of the cut scene, the cut scene is also usually about her. Tifa, on the other hand, often participates in cut scenes as one of the group rather than solo, and is often focused on resolving the current situation instead of building herself up.
"Yuffie has solo screen time, and everyone hated her!"
Yup! Her screen time was followed by a long stretch of the player having to wade through annoying shit with the only reward being a return to status quo. So players hated her.
But although the setup made people hate Yuffie, they did remember her. They did care about her. They did appreciate her in line with her screen time. It's just that their appreciation was of the "arrrgh youuuuuuuuuuu" nature, rather than the more positive feelings assigned to the others.
...
All the characters in all games follow this same basic rule, as you can easily find out just by looking. The reason I used FFVII is because of the clarity of the situation: Aerith is worthless as a character. She has no personality, no arc: you could replace her with a lamp and the story wouldn't change in the slightest. But she was suuuuuper popular.
Because of screen time.
Similarly, Yuffie was quite unpopular.
Because of screen time.
Obviously, the design of the character does matter some. As does what they are actually doing on screen. Also, they have to actually be doing something of their own volition: just having them participate in battles doesn't really count.
Anyway, this basic assumption can be used to really change how you design characters, and you can see that in, say, the Dragon Age games.
Dragon Age games feature a lot of incredibly uninspired character designs, but everyone likes the characters because they feel real. You know why they feel real?
SCREEEEEEEN TIIIIIIME
The characters banter with each other on the road, say character-specific combat lines, and spend an inordinate amount of time talking about their backstory if you go to camp. Combine this with a selection of character-specific missions, you have a good amount of screen time for each character. There's a lot of little details that turn "passive time" (wandering around, battle moments) into small amounts of screen time, which is powerful.
Moreover, you have a balanced amount of screen time.
Unlike FFVII, Dragon's Age gives every character a specific amount of specific types of screen time. Maybe there's 130 lines of banter dialog for each. Maybe they each have 3 sidequests. Maybe they each have 13 backstory conversations, all paced identically. Maybe they inject an identical amount of personality into their combat shouts.
Because of this balance, everyone appreciates a lot of different Dragon's Age characters. I even found myself appreciating characters I doubt I would have cared about in another game, such as the painfully generic templar or the old lady sorceress. Similarly, I found myself siding against the characters I would have picked as my favorites if I was just shown a picture and a catchphrase.
Why?
Say it with me-
screentime
The characters have balanced screen times, so I have an appreciation for all of them.
This does falter a bit here and there. You still tend to settle into one primary combat party (a huge flaw in all modern RPGs), and that affects your affections. Also, there's a ton of really dumb backstory. While it does give them more screen time, it is distractingly stupid.
But those are flaws I think could be addressed.
Anyway, that's my rant on screen time.
Friday, June 27, 2014
Context-Driven NPCs
Most NPCs are scripted with a lot of personality. They have character arcs and opinions and a backstory and a romance arc and all sorts of stuff to try and make them interesting.
The problem with these NPCs is that they are pretty oblivious to when they should actively express themselves, and relative to which people and things. If they are active, they tend to run roughshod over other dialog, current missions, and the player's current intentions. Even if they are just commenting in a small way (such as '-5: Lilliana doesn't like you helping magicians') it distracts from the player's intention and simply makes things muddy and awkward.
So most of the time, the NPCs are put into extremely passive roles. They are only allowed to express themselves when the player returns to base and actively seeks them out. This gives them explicit permission to activate and express themselves.
Unfortunately, it also limits how they can interact. They can't interact much with other NPCs, the world at large, or the ongoing central quest. All they can do is sit in a safe little spot and wait for the player to strike up a conversation. This is very awkward and forced at the best of times.
There have been a lot of NPCs I've wanted to spend time with, but these games don't allow you to do so. Sure, you can put them in your party, but they leave their personality back at base. Sometimes they will judge something you do, but rather than being interesting and fun, it blindsides you and leaves you feeling cheated or caged-in.
For example, almost all of the characters in all the Mass Effect games were interesting enough that I wanted to hang out with them. Mass Effect didn't let me. While I could go through their personal character arcs and learn their backstories, it was impossible to simply shoot the breeze. Mass Effect 3 was especially notable for this because many of the shipside conversations ended up being hanging out. You'd talk to Garrus and he'd take you on a drinking-and-skeet-shooting hangout. It was fun.
But it was only once.
I couldn't get Garrus to go drinking with me again. I couldn't get Solus to sing any more songs. I couldn't get Tali to geek out over random pieces of tech lying around in the various places I went. I couldn't get Liara to do psychic hang-outs. I couldn't go bar-fighting with Wrex. I could only march along the scripted course and reach the scripted destination. The only thing I had control over is which person I wanted to see half-naked for 3 seconds.
Even that was, of course, a one-off event.
...
The only times NPCs are active is when you are in one of their personal sidequests.
Sure, they are scripted to respond to events in their personal sidequest, but that's actually only a minor issue. It's easy to script general responses to general events in every kind of scenario. No, the reason they are active in their sidequests is because you have given them implicit permission to be active. By going on their personal mission, you have implicitly stated that you care about what they have to say, at least for the next hour or so.
There's nothing difficult about programming Tali to run up to every significant piece of tech randomly found in the game world, scan it, geek out over it, say random clips of dialog about it. That would have been very easy to program. But it also would have trampled my gameplay, and walking around would have become more like herding children than being on a mission.
The core issue is that Tali has no way to tell whether it is contextually appropriate for her to geek out over something. At any given moment, her running off to geek out could screw up my pre-combat arrangements, or talk over an important meeting, or just be incredibly socially inappropriate.
There are a lot of heuristics you could use to try and keep Tali's commentary reasonable, but the core problem isn't the exact timing or number of her outbursts. The problem is that the game devs can't read the player's mind. Even if you know exactly where all the enemies are and exactly where all the socially constrained areas are, you don't know what the player is thinking. If you were really there, you would: the player's body language and facial expression would give it away pretty quick. But you obviously can't read that through an XBox controller.
The solution is to create a way to give implicit consent.
Basically, you trigger the same kind of "consent to act" that is usually associated with loyalty sidequests.
You need to do this in a way that isn't annoying to the player, and the easiest way to do that is to use it to enhance immersion rather than detract from it. By spending time with Tali on your ship, a counter begins. For the next 30 minutes or so, Tali will be active, happily running around. Afterwards, the context fades and Tali reverts. You can prolong the context - or change it to an even more permissive context - by interacting with her out in the field. The interactions you have available to you depend on the context you've established.
If you've talked to Tali about her pilgrimage, most of your options will be related to that facet of her character - talking about whether something is suitable to send home, or can be learned from, or how it contrasts with home. If you've invited Tali out on a date, then most of your options will be related to that - and she'll spend less time geeking out over tech and more time considering whether you're having fun. And the context can be changed, if you can find the right opportunity.
You can revert faster by changing the context. You don't have to call an excitable Tali over and say "stop it! You're annoying!" Instead, you simply ask her whether she's ready for the mission. This painlessly changes the context from "Tali is important to me" to "Mission time!"
I propose we increase the number of times the player interacts with the NPC while decreasing the amount of time each interaction takes.
The intention is that the player will often "nudge" the NPC gently into a mode which suits the player's current mood and play intentions. As the situation changes, the nudges wear off or the player nudges in new ways. This constant low-level interaction allows the player to enjoy an NPC without getting sideswiped by annoyingly overactive NPCs.
A few things are required to make this work well, though.
One is that there needs to be a reward for active NPCs. For example, if Tali geeks out over a piece of tech, Tali should gain 5 XP or something. A small reward that makes you feel like they are either evolving or useful to you when let off their leash.
Another thing is that you still have tiered relationships.
When you first meet Tali or Garrus or Mordin, you can't simply go "OK let's date and get kissyface". I mean, it's a viable route, but you'll have to establish that kind of relationship by letting them be active while in less romantic contexts. But what kinds of relationships are viable with what ease will vary: Tali's romance route is tough because she will literally get sick if you even touch her. Liara, on the other hand, would probably be very easy to woo - not only does she start right off with a crush on you, but her species is not exactly puritanical.
Whatever relationship you aim for isn't a "final goal", and is instead a "fun place to be". Sometimes that's closer or further from where you start.
...
The last thing is "passive evolution" and "simple judging". Even when not active, the NPCs need to exist. The easiest way to do this is to have them gently react to the player's actions.
However, this is a trap you need to be careful of. In most games "react to the player's actions" translates to "judge her dialog tree choices". This is an obnoxious thing to try to do, because you can't read the player's mind and have no way of knowing why she chose that option. It's also obnoxious because the player often doesn't know it's coming, can't predict it, and can't easily fix the damage it causes. It's just not a great approach.
"Simple judging" is probably a better answer. With this, the characters feel differently about the player inch by inch as the player performs various basic gameplay feats. Most of these should be positive, very few should be negative: hanging out for a long time should make you more friendly and accepting rather than less, even if that person is kind of annoying.
So Liara might respect you more each time you use a powerful psychic attack or kill a psychic in combat. Mordin would like you more each time you used a medpack. Garrus would like you more each time you sniped or used a grenade. Etc.
In a less restricted world, these could be applied to a wider variety of interactions, but I think that's enough talking about it.
That's my basic idea! Small, frequent context shifts under the player's control give the NPCs all the information they need to know about whether they can express themselves, and how.
To be honest, I have this whole big algorithm thing involving nodes and context pipes and crap, but I really don't think discussing a specific implementation will help this essay much.
So I'm done!
The problem with these NPCs is that they are pretty oblivious to when they should actively express themselves, and relative to which people and things. If they are active, they tend to run roughshod over other dialog, current missions, and the player's current intentions. Even if they are just commenting in a small way (such as '-5: Lilliana doesn't like you helping magicians') it distracts from the player's intention and simply makes things muddy and awkward.
So most of the time, the NPCs are put into extremely passive roles. They are only allowed to express themselves when the player returns to base and actively seeks them out. This gives them explicit permission to activate and express themselves.
Unfortunately, it also limits how they can interact. They can't interact much with other NPCs, the world at large, or the ongoing central quest. All they can do is sit in a safe little spot and wait for the player to strike up a conversation. This is very awkward and forced at the best of times.
There have been a lot of NPCs I've wanted to spend time with, but these games don't allow you to do so. Sure, you can put them in your party, but they leave their personality back at base. Sometimes they will judge something you do, but rather than being interesting and fun, it blindsides you and leaves you feeling cheated or caged-in.
For example, almost all of the characters in all the Mass Effect games were interesting enough that I wanted to hang out with them. Mass Effect didn't let me. While I could go through their personal character arcs and learn their backstories, it was impossible to simply shoot the breeze. Mass Effect 3 was especially notable for this because many of the shipside conversations ended up being hanging out. You'd talk to Garrus and he'd take you on a drinking-and-skeet-shooting hangout. It was fun.
But it was only once.
I couldn't get Garrus to go drinking with me again. I couldn't get Solus to sing any more songs. I couldn't get Tali to geek out over random pieces of tech lying around in the various places I went. I couldn't get Liara to do psychic hang-outs. I couldn't go bar-fighting with Wrex. I could only march along the scripted course and reach the scripted destination. The only thing I had control over is which person I wanted to see half-naked for 3 seconds.
Even that was, of course, a one-off event.
...
The only times NPCs are active is when you are in one of their personal sidequests.
Sure, they are scripted to respond to events in their personal sidequest, but that's actually only a minor issue. It's easy to script general responses to general events in every kind of scenario. No, the reason they are active in their sidequests is because you have given them implicit permission to be active. By going on their personal mission, you have implicitly stated that you care about what they have to say, at least for the next hour or so.
There's nothing difficult about programming Tali to run up to every significant piece of tech randomly found in the game world, scan it, geek out over it, say random clips of dialog about it. That would have been very easy to program. But it also would have trampled my gameplay, and walking around would have become more like herding children than being on a mission.
The core issue is that Tali has no way to tell whether it is contextually appropriate for her to geek out over something. At any given moment, her running off to geek out could screw up my pre-combat arrangements, or talk over an important meeting, or just be incredibly socially inappropriate.
There are a lot of heuristics you could use to try and keep Tali's commentary reasonable, but the core problem isn't the exact timing or number of her outbursts. The problem is that the game devs can't read the player's mind. Even if you know exactly where all the enemies are and exactly where all the socially constrained areas are, you don't know what the player is thinking. If you were really there, you would: the player's body language and facial expression would give it away pretty quick. But you obviously can't read that through an XBox controller.
The solution is to create a way to give implicit consent.
Basically, you trigger the same kind of "consent to act" that is usually associated with loyalty sidequests.
You need to do this in a way that isn't annoying to the player, and the easiest way to do that is to use it to enhance immersion rather than detract from it. By spending time with Tali on your ship, a counter begins. For the next 30 minutes or so, Tali will be active, happily running around. Afterwards, the context fades and Tali reverts. You can prolong the context - or change it to an even more permissive context - by interacting with her out in the field. The interactions you have available to you depend on the context you've established.
If you've talked to Tali about her pilgrimage, most of your options will be related to that facet of her character - talking about whether something is suitable to send home, or can be learned from, or how it contrasts with home. If you've invited Tali out on a date, then most of your options will be related to that - and she'll spend less time geeking out over tech and more time considering whether you're having fun. And the context can be changed, if you can find the right opportunity.
You can revert faster by changing the context. You don't have to call an excitable Tali over and say "stop it! You're annoying!" Instead, you simply ask her whether she's ready for the mission. This painlessly changes the context from "Tali is important to me" to "Mission time!"
I propose we increase the number of times the player interacts with the NPC while decreasing the amount of time each interaction takes.
The intention is that the player will often "nudge" the NPC gently into a mode which suits the player's current mood and play intentions. As the situation changes, the nudges wear off or the player nudges in new ways. This constant low-level interaction allows the player to enjoy an NPC without getting sideswiped by annoyingly overactive NPCs.
A few things are required to make this work well, though.
One is that there needs to be a reward for active NPCs. For example, if Tali geeks out over a piece of tech, Tali should gain 5 XP or something. A small reward that makes you feel like they are either evolving or useful to you when let off their leash.
Another thing is that you still have tiered relationships.
When you first meet Tali or Garrus or Mordin, you can't simply go "OK let's date and get kissyface". I mean, it's a viable route, but you'll have to establish that kind of relationship by letting them be active while in less romantic contexts. But what kinds of relationships are viable with what ease will vary: Tali's romance route is tough because she will literally get sick if you even touch her. Liara, on the other hand, would probably be very easy to woo - not only does she start right off with a crush on you, but her species is not exactly puritanical.
Whatever relationship you aim for isn't a "final goal", and is instead a "fun place to be". Sometimes that's closer or further from where you start.
...
The last thing is "passive evolution" and "simple judging". Even when not active, the NPCs need to exist. The easiest way to do this is to have them gently react to the player's actions.
However, this is a trap you need to be careful of. In most games "react to the player's actions" translates to "judge her dialog tree choices". This is an obnoxious thing to try to do, because you can't read the player's mind and have no way of knowing why she chose that option. It's also obnoxious because the player often doesn't know it's coming, can't predict it, and can't easily fix the damage it causes. It's just not a great approach.
"Simple judging" is probably a better answer. With this, the characters feel differently about the player inch by inch as the player performs various basic gameplay feats. Most of these should be positive, very few should be negative: hanging out for a long time should make you more friendly and accepting rather than less, even if that person is kind of annoying.
So Liara might respect you more each time you use a powerful psychic attack or kill a psychic in combat. Mordin would like you more each time you used a medpack. Garrus would like you more each time you sniped or used a grenade. Etc.
In a less restricted world, these could be applied to a wider variety of interactions, but I think that's enough talking about it.
That's my basic idea! Small, frequent context shifts under the player's control give the NPCs all the information they need to know about whether they can express themselves, and how.
To be honest, I have this whole big algorithm thing involving nodes and context pipes and crap, but I really don't think discussing a specific implementation will help this essay much.
So I'm done!
Monday, June 09, 2014
Companions
I played a lot of Skyrim in the past few days, with loads of mods put in. So I'd like to talk about companions.
When I first tried to play Skyrim the week it came out, it was a mess. I didn't get very far, but I did get far enough to obtain my first party member, a knight-style character. I liked her design and voicework quite a bit, and I clearly remember thinking "oh! She might make this game a lot more fun!"
Unfortunately, the personality hinted at in her design and snippets of dialog never really came out. A few hours of mutely fighting at my side like a robot, and I realized she was going to be just as empty as a make-your-own character from back in the days of AD&D RPGs. Then I stopped playing.
Similarly, in Dragon's Dogma you can make your own party member. I was excited by this, because it gave me options as to voice and personality and stuff. I remember clearly thinking "oh, this is going to be so cool! I get to build the dynamic between the main character and their sworn companion, Frodo-and-Sam style!"
Like Skyrim, this was a hollow promise. As anyone who's played the unpatched original version of Dragon's Dogma knows, the pawns (NPC party members) only have a few voice clips. They all comment on the same things in the same ways, just with a different voice actor. None of them interact with the main character in any meaningful sense, they just randomly state trivia and gameplay hints. Their personalities do matter in combat, at least to some extent, although it's a bit hard to tell because combat is so chaotic... but combat is also the part of the game where I don't really care about people's personalities as long as they get their job done.
Even in my super-modded ultra-dense-content version of Skyrim, the companions are only a bit better - they're about at the level of Dragon's Dogma pawns, now. But these aren't characters I created: a scripted, set character should have a lot more personality because you know everything about them, their place in the world, how they would react to things...
...
I think maybe we should consider if we can make characters interesting.
When we old farts think about interesting NPCs, most of the time we'll fall back to Baldur's Gate or Planescape: Torment. "Go for the eyes, Boo! RrrAAAAAH!"
Even though few of them were as interesting as Minsk, even the totally stereotypical characters had a lot of personality. They expressed this personality because they were tightly related to the world: they had scripted lines of dialog to comment on a variety of scripted plot events, and they could fall back on general comments based on their alignment.
Modern Star Wars and Mass Effect games have normally gone the opposite direction. Few of the characters have much to say about the events that happen on the various worlds you visit, but instead you can talk to them and they have a fairly deep and unlockable personal story. I think this is a bad way to do it simply because it relies on a horrible dialog system and an unrealistic way of interacting.
Dragon Age games have a bit of both approaches, often confusingly and stiltedly so. However, they have one additional brilliant detail: the characters on your team interact with each other randomly as you wander around. This is the one thing Dragon Age did better than anyone else.
The problem with all of these games is that the NPCs are scripted in advance. They have a giant table of everything they could possibly encounter, all the situations. If something comes up that's not in the list, they fall back on extremely bland commentary that actually makes them less believable rather than more. It's actually even worse than that: few people want to interact with the NPCs in the exact way that the developers assumed, but since the NPCs are stuck with the dev assumptions, you are forced into specific routes.
Mostly, this is forced onto the devs because they need voice-acted characters. If they have to have specific audio clips, they need to specify all the audio clips. We're going to assume that we can ignore that restriction.
With that in mind, how can we make characters that feel deep and interesting throughout the game? Can we create a character-centric RPG, one where the plot is less important? Imagine an open-world game where it was literally open-world: not only could you go anywhere, but there's not even any plot-on-rails to confine you. The important things in this world are you and your companions.
Rather than trying to design perfect characters to push you into a heroic tale, we're going to assume the characters are flawed. Generally likeable or good, but quite flawed. You need flaws to get a grip on a character: a character without flaws is just a setpiece.
Let's put aside the methods discussed earlier and talk about a few additional methods of making a character matter to the player. Most of these hinge on the concept of a "mood", which a medium- to long-term personality change characters adopt when faced by a situation their personality cares about. Also keep in mind that this is all just theoretical crap.
Pushy persistence
A character needs to push into the player's line of sight. A character that quietly does their job is invisible. Therefore, our characters have to have things outside of combat that matter enough that the player wants to pay attention.
I've chosen to use moods for this. Moods are caused by a variety of situations, most of which the player can plan to either avoid or cause if they are diligent. For example, a particular character might be particularly unhappy when they get badly injured. The player can keep them to the back, or have them retreat when lightly injured to prevent the mood from forming.
Characters that enter a mood will pester the player, making it clear that (A) they exist, (B) they are now in a mood, and (C) what their personality is. This is better than simply saying "character X is now in mood Y", because it pushes the character's character into the player's face.
In addition, not all characters get along. Their personalities (modified by mood or not) may be incompatible, in which case they may actually cause more mood problems, and there will be a lot of complaining to the player. Characters that synergize well will push each other into good moods, which offer statistical bonuses instead of penalties.
Moods need to be tended by interacting with that character. Not "talking to", but "interacting with". Talking might work for some minor moods, but otherwise you'll need to spend game-time doing something they find interesting, or going someplace they can relax or have fun. This also serves to push the character into the player's conscious again.
This system needs to be tweaked to keep it from getting out of hand, obviously.
Micromanagement
That brings us nicely to the concept of micromanagement. Now that the character is pushing themselves onto the player in some way, we need to make the player want to push onto the character. We do this by rewarding micromanagement, at least sometimes.
For us, micromanagement is all about mood alteration. Moods are not integers: a mood has a specific rank and within that rank it can be steadily degraded or enhanced until the next rank is reached. This is often time-locked, too: a mood cannot change more than one rank per day/week/whatever. By micromanaging, you can steadily degrade or enhance various moods, including moods that will permanently alter how the character behaves towards the player.
In our approach, we have specific kinds of micromanagement. None of these are required, they're just ways the player can choose to interact with the characters in nonstandard ways. These would be most valuable in attempting to "rehabilitate" problematic characters: heroic and good-natured characters probably won't need you to push this persistently.
1) AI overriding. Our characters take a variety of actions automatically, varying by personality type. This might include spending their personal cash in a town, equipping gear, grabbing/equipping loot, scouting ahead, separating from the group temporarily, eating foods, casting noncombat spells, and so on. The player can tweak these behaviors, enabling, disabling, or requiring an ask. This kind of micromanagement is not intended to optimize performance, since the default behaviors are not very wasteful. Instead, these actions have small but cumulatively important effects on moods, and the player can use them to help with that.
2) Social pestering. The social AI in the game has several modes it enters depending on the perceived social situation, and that's made visible to the player by their animations. By staying near/far from a character or avoiding/looking in their eyes, you can force the social AI into specific modes. It takes time for the system to enter a new mode, so you don't have to continually stare: just once every minute or two will work. Specific moods grow or diminish steadily in specific social modes - for example, a gregarious bard and a scared child both want to be in a close social mode, while the annoyed magician would prefer you to keep your distance.
3) Action pestering. By keeping the character busy with specific action requests, you can prevent them from taking any mood-caused actions of their own. While this may not improve their mood much, it will keep them from doing anything destructive or giving anyone else a bad mood.
Personality Leveling
Why stick to stats? When a mood ends (good or bad), the character gets growth points. Spend these in a growth tree like the new FF games - except you're altering their personality and behaviors bit by bit instead of their combat capabilities. Change what causes moods, or what moods do, or how they behave while in moods. Moderate their more annoyingly severe reactions. Maybe unlock a romance branch!
If you've played the original Valkyrie Profile, you probably know the basic idea.
Interconnectivity
It's not just about player-centric interactions. Party members should also relate to each other. And maybe to non-party NPCs, or the world in general!
There are a lot of relationships characters can form with each other under the guidance of the player. Sure, hooking up romantically is a few of those options, but there's a lot more potential hidden away in there. Mentors, rivals, bromances, etc. In relationship to non-party NPCs and places, you have things like sponsorship, fondness, patriotism, etc.
Some kinds of relationships will cancel or cause certain moods as long as the characters are together. In this way you can set up your party to never drop into a bad set of moods by carefully balancing out their relationships with their personalities to cover the most common problems. Perhaps you could even set up a party party, where everyone's always in a great mood. This is also really the only way to have characters with badly conflicting personalities on the same team.
Other kinds of relationships set up opportunities, where you can rapidly create or deflate a mood by having that character interact in that way. This is normally the kind of relationship you would have with places or people not in the party, since it is action-based rather than presence-based.
Other kinds of relationships set up statistical bonuses. A flow of cash, mana, willpower, or even new equipment. These are both in-party and out-party.
The problem with interconnectivity is that once a party grows stagnant, it also grows stagnant. So if we're going to rely on this, we need to also shake up the party fairly often. Which leads us to...
Scope changes
Characters shouldn't always stay in your party!
While it's probably not a good practice to arbitrarily snatch characters away, there are often good opportunities for characters to do something on their own. Stay behind to help a town rebuild, take a particularly wealthy caravan on a trading run, oversee a castle's construction, and so on.
These are often things that would be side quests, so what I would recommend is that when you encounter a side quest, you can either accept, refuse, or send someone off to help them!
Characters that are away send regular missives to keep in touch and remind the player that they exist. More than that, though, it's important that the player continues to have some amount of interactivity with those characters. Therefore, over the course of the mission, there should be several opportunities for things to go differently, and the missives should ask what they should do.
Some of these might be choosing between various rewards - "They offered me a lightning sword or fleetstep shoes. Which do you think is better?" Some of them might be about choosing between long-term and short-term - "Do we want 5 gold per day from now on, or 500 gold lump sum?" Some might be about choosing between personal gain and the world - "I can take this 500 gold, or I can put it back into the orphanage." Some might be about choosing two different world options - "Do we want to build an orphanage or a library?" Some might be about taking care of things automatically or manually - "We found a den of thieves. Do you want us to handle them, or will you stop by and do it with me?" Some might be mood-based - "I can do this better, but it's going to put me in a real bad mood."
The other ways
While I'm not going to talk about them again, there's also the already-pioneered methods: character-world interaction, character-player interaction, and character-character interaction.
There are also a huge number of other things you can consider, such as a character attempting to learn what the player likes and adapting their behavior accordingly. I'm sure there are others.
.....
Now, this is obviously all theoretical. Just throwing ideas against the wall. Let's consider feasibility anyway.
The first and maybe biggest barrier to this is the concept of voiced NPCs. When you have specific lines you need actors to read, you need to specify all the lines in advance. So we have three options: we can either try and cram all the variety of things we need to support this system into a few hundred lines of dialog, we can throw away the concept of voiced characters, or we can use computer-generated voices. If you're a small team, voiced characters probably aren't on the menu anyway (pricey!), so you can throw it away. CG voices are not very convincing yet, so that's only viable if your setting is some kind of future robot setting.
Even if we assume we have no voiced lines, we still need have these characters able to say the variety of things they need to say. This is not too big an issue with general commentary - just a few dozen lines of dialog per character, customized with embedded variables to make them address the situation properly. The problem is the specific commentary.
See, if Anna and Bob are characters in our game, Anna and Bob have no problem saying that they don't like your approach to a particular ethical situation or complaining about getting hurt. They don't even have any difficulty expressing love for each other or squabbling or any of that. But that's when it's Anna and Bob.
If it's "Anna the court magician for the loyalists" and "Bob the miner who joined the rebellion", well, now you have a lot more information. You have to come up with something immersive. Something where Anna and Bob can squabble over specific in-world things such as loyalists vs the rebellion, and hoity-toity mages vs blue-collar miners.
I think the only way to do this is via a faction system, where various factions are established as having various relationships to each other, and these automatically reflect onto the characters that are part of the faction. However, this is difficult to phrase in-game because everyone needs to have their own way of talking. It's tough, but I think the only thing we can do is give every faction lines of dialog that are full of embedded variables that are replaced by snippets of a particular character's dialog library.
For example, the miners might have the phrase "%amplifiedAddress% %optionalExclamation% %targetFactionMembers% should try getting your hands dirty %rareTimespan%". This would translate to something like "Maybe you mages should try getting your hands dirty once in a while" or "You fucking magicians should try getting your hands dirty sometime!"
This kind of thing is very annoying to write, but it's the only thing I can think of that would be modular enough to support characters and factions added in later. The relationships are what matter, not usually the specific target faction. The miner's don't have a mage-specific line they use, it's a line they use for any group they think is hoity-toity.
And if Bob has a hilarious accent, he can use a combination of token overrides and text replacement to get a more personalized result.
Modability is a huge concern for me. I want players to be able to drop in new content.
I don't really want players to launch the game and make 6 unique characters as they see fit. I'd much rather that all the NPCs be carefully built to be fully world-immersive. Players that really want to add NPCs can do so, but it is a lot more work (mostly dialog library writing, and perhaps personality level-up tweaking). In exchange, it's a much better result.
Since we're talking blue-sky design, I also want players to be able to add factions, places, spells, weapons, activities - anything that could conceivably be added to the game. While many things should relate to a character's specific in-world connections, we also want them to react to things that didn't exist when they were written. If Anna hates "dark sorcery" and later "necromancy" is added as a separate group, all the modder has to do is say that necromancy defaults to dark sorcery. Now Anna hates necromancy and will use the same dialog lines.
Well, all of this is just hot air. I don't have an RPG in the works. I'm just going on and on and on and on and
When I first tried to play Skyrim the week it came out, it was a mess. I didn't get very far, but I did get far enough to obtain my first party member, a knight-style character. I liked her design and voicework quite a bit, and I clearly remember thinking "oh! She might make this game a lot more fun!"
Unfortunately, the personality hinted at in her design and snippets of dialog never really came out. A few hours of mutely fighting at my side like a robot, and I realized she was going to be just as empty as a make-your-own character from back in the days of AD&D RPGs. Then I stopped playing.
Similarly, in Dragon's Dogma you can make your own party member. I was excited by this, because it gave me options as to voice and personality and stuff. I remember clearly thinking "oh, this is going to be so cool! I get to build the dynamic between the main character and their sworn companion, Frodo-and-Sam style!"
Like Skyrim, this was a hollow promise. As anyone who's played the unpatched original version of Dragon's Dogma knows, the pawns (NPC party members) only have a few voice clips. They all comment on the same things in the same ways, just with a different voice actor. None of them interact with the main character in any meaningful sense, they just randomly state trivia and gameplay hints. Their personalities do matter in combat, at least to some extent, although it's a bit hard to tell because combat is so chaotic... but combat is also the part of the game where I don't really care about people's personalities as long as they get their job done.
Even in my super-modded ultra-dense-content version of Skyrim, the companions are only a bit better - they're about at the level of Dragon's Dogma pawns, now. But these aren't characters I created: a scripted, set character should have a lot more personality because you know everything about them, their place in the world, how they would react to things...
...
I think maybe we should consider if we can make characters interesting.
When we old farts think about interesting NPCs, most of the time we'll fall back to Baldur's Gate or Planescape: Torment. "Go for the eyes, Boo! RrrAAAAAH!"
Even though few of them were as interesting as Minsk, even the totally stereotypical characters had a lot of personality. They expressed this personality because they were tightly related to the world: they had scripted lines of dialog to comment on a variety of scripted plot events, and they could fall back on general comments based on their alignment.
Modern Star Wars and Mass Effect games have normally gone the opposite direction. Few of the characters have much to say about the events that happen on the various worlds you visit, but instead you can talk to them and they have a fairly deep and unlockable personal story. I think this is a bad way to do it simply because it relies on a horrible dialog system and an unrealistic way of interacting.
Dragon Age games have a bit of both approaches, often confusingly and stiltedly so. However, they have one additional brilliant detail: the characters on your team interact with each other randomly as you wander around. This is the one thing Dragon Age did better than anyone else.
The problem with all of these games is that the NPCs are scripted in advance. They have a giant table of everything they could possibly encounter, all the situations. If something comes up that's not in the list, they fall back on extremely bland commentary that actually makes them less believable rather than more. It's actually even worse than that: few people want to interact with the NPCs in the exact way that the developers assumed, but since the NPCs are stuck with the dev assumptions, you are forced into specific routes.
Mostly, this is forced onto the devs because they need voice-acted characters. If they have to have specific audio clips, they need to specify all the audio clips. We're going to assume that we can ignore that restriction.
With that in mind, how can we make characters that feel deep and interesting throughout the game? Can we create a character-centric RPG, one where the plot is less important? Imagine an open-world game where it was literally open-world: not only could you go anywhere, but there's not even any plot-on-rails to confine you. The important things in this world are you and your companions.
Rather than trying to design perfect characters to push you into a heroic tale, we're going to assume the characters are flawed. Generally likeable or good, but quite flawed. You need flaws to get a grip on a character: a character without flaws is just a setpiece.
Let's put aside the methods discussed earlier and talk about a few additional methods of making a character matter to the player. Most of these hinge on the concept of a "mood", which a medium- to long-term personality change characters adopt when faced by a situation their personality cares about. Also keep in mind that this is all just theoretical crap.
Pushy persistence
A character needs to push into the player's line of sight. A character that quietly does their job is invisible. Therefore, our characters have to have things outside of combat that matter enough that the player wants to pay attention.
I've chosen to use moods for this. Moods are caused by a variety of situations, most of which the player can plan to either avoid or cause if they are diligent. For example, a particular character might be particularly unhappy when they get badly injured. The player can keep them to the back, or have them retreat when lightly injured to prevent the mood from forming.
Characters that enter a mood will pester the player, making it clear that (A) they exist, (B) they are now in a mood, and (C) what their personality is. This is better than simply saying "character X is now in mood Y", because it pushes the character's character into the player's face.
In addition, not all characters get along. Their personalities (modified by mood or not) may be incompatible, in which case they may actually cause more mood problems, and there will be a lot of complaining to the player. Characters that synergize well will push each other into good moods, which offer statistical bonuses instead of penalties.
Moods need to be tended by interacting with that character. Not "talking to", but "interacting with". Talking might work for some minor moods, but otherwise you'll need to spend game-time doing something they find interesting, or going someplace they can relax or have fun. This also serves to push the character into the player's conscious again.
This system needs to be tweaked to keep it from getting out of hand, obviously.
Micromanagement
That brings us nicely to the concept of micromanagement. Now that the character is pushing themselves onto the player in some way, we need to make the player want to push onto the character. We do this by rewarding micromanagement, at least sometimes.
For us, micromanagement is all about mood alteration. Moods are not integers: a mood has a specific rank and within that rank it can be steadily degraded or enhanced until the next rank is reached. This is often time-locked, too: a mood cannot change more than one rank per day/week/whatever. By micromanaging, you can steadily degrade or enhance various moods, including moods that will permanently alter how the character behaves towards the player.
In our approach, we have specific kinds of micromanagement. None of these are required, they're just ways the player can choose to interact with the characters in nonstandard ways. These would be most valuable in attempting to "rehabilitate" problematic characters: heroic and good-natured characters probably won't need you to push this persistently.
1) AI overriding. Our characters take a variety of actions automatically, varying by personality type. This might include spending their personal cash in a town, equipping gear, grabbing/equipping loot, scouting ahead, separating from the group temporarily, eating foods, casting noncombat spells, and so on. The player can tweak these behaviors, enabling, disabling, or requiring an ask. This kind of micromanagement is not intended to optimize performance, since the default behaviors are not very wasteful. Instead, these actions have small but cumulatively important effects on moods, and the player can use them to help with that.
2) Social pestering. The social AI in the game has several modes it enters depending on the perceived social situation, and that's made visible to the player by their animations. By staying near/far from a character or avoiding/looking in their eyes, you can force the social AI into specific modes. It takes time for the system to enter a new mode, so you don't have to continually stare: just once every minute or two will work. Specific moods grow or diminish steadily in specific social modes - for example, a gregarious bard and a scared child both want to be in a close social mode, while the annoyed magician would prefer you to keep your distance.
3) Action pestering. By keeping the character busy with specific action requests, you can prevent them from taking any mood-caused actions of their own. While this may not improve their mood much, it will keep them from doing anything destructive or giving anyone else a bad mood.
Personality Leveling
Why stick to stats? When a mood ends (good or bad), the character gets growth points. Spend these in a growth tree like the new FF games - except you're altering their personality and behaviors bit by bit instead of their combat capabilities. Change what causes moods, or what moods do, or how they behave while in moods. Moderate their more annoyingly severe reactions. Maybe unlock a romance branch!
If you've played the original Valkyrie Profile, you probably know the basic idea.
Interconnectivity
It's not just about player-centric interactions. Party members should also relate to each other. And maybe to non-party NPCs, or the world in general!
There are a lot of relationships characters can form with each other under the guidance of the player. Sure, hooking up romantically is a few of those options, but there's a lot more potential hidden away in there. Mentors, rivals, bromances, etc. In relationship to non-party NPCs and places, you have things like sponsorship, fondness, patriotism, etc.
Some kinds of relationships will cancel or cause certain moods as long as the characters are together. In this way you can set up your party to never drop into a bad set of moods by carefully balancing out their relationships with their personalities to cover the most common problems. Perhaps you could even set up a party party, where everyone's always in a great mood. This is also really the only way to have characters with badly conflicting personalities on the same team.
Other kinds of relationships set up opportunities, where you can rapidly create or deflate a mood by having that character interact in that way. This is normally the kind of relationship you would have with places or people not in the party, since it is action-based rather than presence-based.
Other kinds of relationships set up statistical bonuses. A flow of cash, mana, willpower, or even new equipment. These are both in-party and out-party.
The problem with interconnectivity is that once a party grows stagnant, it also grows stagnant. So if we're going to rely on this, we need to also shake up the party fairly often. Which leads us to...
Scope changes
Characters shouldn't always stay in your party!
While it's probably not a good practice to arbitrarily snatch characters away, there are often good opportunities for characters to do something on their own. Stay behind to help a town rebuild, take a particularly wealthy caravan on a trading run, oversee a castle's construction, and so on.
These are often things that would be side quests, so what I would recommend is that when you encounter a side quest, you can either accept, refuse, or send someone off to help them!
Characters that are away send regular missives to keep in touch and remind the player that they exist. More than that, though, it's important that the player continues to have some amount of interactivity with those characters. Therefore, over the course of the mission, there should be several opportunities for things to go differently, and the missives should ask what they should do.
Some of these might be choosing between various rewards - "They offered me a lightning sword or fleetstep shoes. Which do you think is better?" Some of them might be about choosing between long-term and short-term - "Do we want 5 gold per day from now on, or 500 gold lump sum?" Some might be about choosing between personal gain and the world - "I can take this 500 gold, or I can put it back into the orphanage." Some might be about choosing two different world options - "Do we want to build an orphanage or a library?" Some might be about taking care of things automatically or manually - "We found a den of thieves. Do you want us to handle them, or will you stop by and do it with me?" Some might be mood-based - "I can do this better, but it's going to put me in a real bad mood."
The other ways
While I'm not going to talk about them again, there's also the already-pioneered methods: character-world interaction, character-player interaction, and character-character interaction.
There are also a huge number of other things you can consider, such as a character attempting to learn what the player likes and adapting their behavior accordingly. I'm sure there are others.
.....
Now, this is obviously all theoretical. Just throwing ideas against the wall. Let's consider feasibility anyway.
The first and maybe biggest barrier to this is the concept of voiced NPCs. When you have specific lines you need actors to read, you need to specify all the lines in advance. So we have three options: we can either try and cram all the variety of things we need to support this system into a few hundred lines of dialog, we can throw away the concept of voiced characters, or we can use computer-generated voices. If you're a small team, voiced characters probably aren't on the menu anyway (pricey!), so you can throw it away. CG voices are not very convincing yet, so that's only viable if your setting is some kind of future robot setting.
Even if we assume we have no voiced lines, we still need have these characters able to say the variety of things they need to say. This is not too big an issue with general commentary - just a few dozen lines of dialog per character, customized with embedded variables to make them address the situation properly. The problem is the specific commentary.
See, if Anna and Bob are characters in our game, Anna and Bob have no problem saying that they don't like your approach to a particular ethical situation or complaining about getting hurt. They don't even have any difficulty expressing love for each other or squabbling or any of that. But that's when it's Anna and Bob.
If it's "Anna the court magician for the loyalists" and "Bob the miner who joined the rebellion", well, now you have a lot more information. You have to come up with something immersive. Something where Anna and Bob can squabble over specific in-world things such as loyalists vs the rebellion, and hoity-toity mages vs blue-collar miners.
I think the only way to do this is via a faction system, where various factions are established as having various relationships to each other, and these automatically reflect onto the characters that are part of the faction. However, this is difficult to phrase in-game because everyone needs to have their own way of talking. It's tough, but I think the only thing we can do is give every faction lines of dialog that are full of embedded variables that are replaced by snippets of a particular character's dialog library.
For example, the miners might have the phrase "%amplifiedAddress% %optionalExclamation% %targetFactionMembers% should try getting your hands dirty %rareTimespan%". This would translate to something like "Maybe you mages should try getting your hands dirty once in a while" or "You fucking magicians should try getting your hands dirty sometime!"
This kind of thing is very annoying to write, but it's the only thing I can think of that would be modular enough to support characters and factions added in later. The relationships are what matter, not usually the specific target faction. The miner's don't have a mage-specific line they use, it's a line they use for any group they think is hoity-toity.
And if Bob has a hilarious accent, he can use a combination of token overrides and text replacement to get a more personalized result.
Modability is a huge concern for me. I want players to be able to drop in new content.
I don't really want players to launch the game and make 6 unique characters as they see fit. I'd much rather that all the NPCs be carefully built to be fully world-immersive. Players that really want to add NPCs can do so, but it is a lot more work (mostly dialog library writing, and perhaps personality level-up tweaking). In exchange, it's a much better result.
Since we're talking blue-sky design, I also want players to be able to add factions, places, spells, weapons, activities - anything that could conceivably be added to the game. While many things should relate to a character's specific in-world connections, we also want them to react to things that didn't exist when they were written. If Anna hates "dark sorcery" and later "necromancy" is added as a separate group, all the modder has to do is say that necromancy defaults to dark sorcery. Now Anna hates necromancy and will use the same dialog lines.
Well, all of this is just hot air. I don't have an RPG in the works. I'm just going on and on and on and on and
Subscribe to:
Posts (Atom)