Advancing the Role of Role-Playing – An Example Project
Posted by Rampant Coyote on July 13, 2012
My big rant yesterday about improving the “role-playing” experience in computer & console RPGs seemed to strike a nerve, based on comments received on the blog, in twitter, and in emails. The gist of it was probably summed up by Justin Keverne on Twitter: “The designer in me looks at that and nods, the programmer in me has a heart failure.”
Craig Stern suggested that the ideas are outside the indie capabilities, while my own feeling is that they are outside mainstream capabilities. Now, I love AI programming, although it can be some of the most frustrating kinds of coding.
So I thought – if I were to tackle this project myself, how would I go about it? How would I scope it in a bare-bones way to dip my toe in these waters? So here’s what I came up with. It’s a little something I’d love to do if I have time some… er, I want to say weekend, but the basic gameplay would take more time that that just to get the RPG part running (I know, I’ve tried to make an RPG in 40 hours…) While I really like the idea and want to do it myself, I honestly don’t know if I’d have time to do it, and I’m always talking about how ideas are a dime-a-dozen – it’s the implementation that counts.
This is not a full and complete implementation of every one of the ideas from yesterday. It’s not even an implementation of any of them – just the sort of “indie-sized” idea I might use to start experimenting with one or more of these concepts, with the goal of making a CRPG feel more like a true “role-playing” experience. This is really just intended as an example for other indies to get ideas and discussion flowing.
First off – for a tiny experimental project, I’d want to think small. Too often, when we think of role-playing games, we immediately think of these epic, globe-spanning adventures with a cast of hundreds. Indies, we need to break from that mold. sure, it may be possible if we keep the detail levels low, but indies must always re-evaluate these assumptions. In this case, let’s go the route of Ultima Underworld and the more recent Legend of Grimrock and have the entire game take place in a single dungeon. Let’s further constrain it so we’re really only concerned about a handful of non-player characters. And we want almost every action to count.
So here’s the setup: You are in a single dungeon. Maybe three floors deep. We’ll come up with a backstory later, but the point is – you are trapped in a dungeon and need to escape. Easy, traditional opening. There are three other people trapped with you – your party members. The party members are AI-controlled NPCs. As you all wish to escape, and may need to rely upon each other to survive the dungeon to escape, it’s natural that you’ll band together for mutual protection. But this isn’t guaranteed. As could happen in the Baldur’s Gate series, Ultima VII, and the Ishar series, party composition isn’t automatic.
Each NPC will be assigned some personality traits (at random?) with some basic makeup of preferences, tendencies, hates, desires, and fears. The player may have to deduce these during the adventure based on some procedurally-generated comments that they make and actions they take. The player’s character takes the leadership position by default, but getting the trust and obedience of the other NPCs is not a give.
Anyway, here’s the twist: The exit is a magical portal that requires one living person to remain behind (willingly or unwillingly) in the room. That person will face almost certain death.
All four of the party-members know this fact from the get-go. One of them is going to be sacrificed – willingly or unwillingly. Yet their best chance of surviving the treacherous journey to the portal room are together as a group. Keeping each other alive maximizes their chances, because it’s not a limit on how many can leave the dungeon – it’s the limitation that at least one must stay behind.
Every action undertaken by anyone in the party – especially the player – gets evaluated by the other party members in this light. Will the other party members turn on them, knock them unconscious or bind them with rope? Will it be every man (or woman) for himself in the portal chamber as everyone races to the portal, with the slowest or weakest left behind? Or will one (or more) of the party members make the noble sacrifice and willingly stay behind so that others can escape?
As there’s really no way for characters to get away in secret to make pacts or alliances, it’s all in how they treat each other. The AI characters may actually try to misdirect their intentions through their actions – being extra nice to the character they intend to betray. And the player character may be that person.
So there’s the set-up. Gameplay-wise, it’s a fairly traditional – let’s say turn-based RPG. You can give directions to the other characters that they may or may not follow, depending upon their personality, abilities, and attitudes. But every AI pulls it’s own filter in place for all the actions taken – whether it’s looting and being given useful equipment, put in harms way, healed first versus second, etc, and tries to average things into its own evaluation:
a) How does this character feel towards me?
b) How does this character feel towards the other party members?
c) How does this action influence what the other party members feel towards this character?
d) What personality traits might this demonstrate that I can assume of this character? Does this action lend or erode support towards some of the traits I’d previously assigned to this person?
e) How do *I* feel about this party member in light of this action?
f) Do I have reason to believe this party member is being deceptive in their actions to misdirect me? In which case, invert my reactions on a through e (except c).
The AI is constantly updating it’s assumed models of the other character’s personalities as well, which it uses for evaluation c. This can go a little deep, such as asking questions as, “Does character B recognize that character C is a liar?” It may also choose actions based upon not only its own preferences, but based on how much it cares how favorable (depending upon how it defines ‘favorable’) the responses will be from the other party members. Reactions may be exaggerated closer to the end of the game – the perception of being left in a vulnerable state might convince an AI character that she’s the one on the chopping block.
And at the end of the game – in lieu of having life really continue beyond the magical entrance – the game spills out some information for the player on who these characters were that he spent the last few hours surviving with. Their character traits, and their relationship with and assumptions about each other.
Okay – this is a first-pass idea that might not hold water. And I harbor no illusions that the other characters will perfectly model human behavior. But the point isn’t to pass any kind of Turing test for the player. The point is for the player to manage these little artificial personalities, to make the little and big decisions in light of the fact that he is under observation, and to give the final decision some real weight.
That’s assuming the final decision is really in the player’s hands. The player could very well find himself overpowered and either left for dead, or shoved into the portal. Depending on the other characters and how it’s played, the portal room could be a bloodbath, a final battle where the only mercy is to try to avoid striking a killing blow. A character who suspects they are the designated sacrifice might abandon the party just prior to reaching the portal room, maybe sneaking ahead in hopes of jumping into the portal as soon as the rest of the party enters. Or they might just quit in disgust, assuming that if they are going to be left for dead anyway, they might as well do it on their own terms.
By no means is this an easy programming (or design) task. But I feel that by constraining the domain, it could be an appropriate indie-sized project that could yield some surprisingly interesting results.Would it feel like “true” role-playing? I don’t know.
But I think it’s only one idea in a sea of possibilities to make more interesting CRPGs that embrace a bit more of the “role-playing” experience.
Filed Under: Design, Programming - Comments: 9 Comments to Read
Jackson said,
I really like this idea a lot!
I think a way to further reduce development time would be to get rid of combat altogether, and just make a game about talking to a few people with a clear goal. I know it sounds like Facade, but that was more of a conversation simulation.
I think when you can center dialogue around a clear goal, you can create a lot of varied options fairly easily and also account for most of what a player would want to do. Like your goal of getting out of the dungeon.
This is a shameless plug, but this idea’s been the driving force behind my canvassing game. By focusing everything on getting money, I can allow the player to talk with hundreds of randomly generated civilians and have semi-intelligent conversations with them.
Rubes said,
It sounds to me like this is the kind of thing that would make sense to develop (at least a prototype) in text as a short IF game. Since it’s so short you wouldn’t have to worry too much about the typical RPG features that take tremendous time to implement (lots of weapons/armor/magical items/etc, level progression, graphics, so on). So you could get away with just saying, “this is who you are, who your party members are, and everyone’s stats and inventory” at the start, and focus on the character features and dialog that are really driving this anyway.
Kelley said,
I just came here to say: I hope someone makes this game (even if it is a prototype) because I really want to play it!
PhantasmagoriaNL said,
I would also get rid of all aspects not related to the AI. Being a software developer myself (boring business applications unfortunatly, well boring when compared to working on games.. :)) i regard the creation of a functioning AI, capable of navigating an environment, learning from actions it takes and achieving a set goal (AI 2.0 would be setting own goals..), the holy grail of software development. I’m particularly interested in genetic algorithms and always wondered if these could be actually implemented in a persistent game-world such as WOW. Mobs would learn and evolve and the game-world would become much more dynamic and ‘living’. A “simple” theoretical start would be giving the a multitude of AI characters a simple and single achievable goal: navigating the maze (the dungeon). The AI would have a set number of points distributed over a set collection of stats/characteristics which determine it’s behavior. The criterium for succes will also be simple: time needed (moves used) to reach the exit. The configuration of the best performing AIs will be used for generation 2. After x generations (including randomized mutations at the start of a new cycle) the (near) optimal configuration of stats and behavior will emerge. This set up can then be used to test AI behavior and evolution when the goal is expanded in scope, more goals need to be achieved or specific individual goals are added. At the end one would have AIs tuned to the task at hand, possibly with own agenda’s (individual goals) and equipped with the stats/behavior to achieve them. Well in theory 🙂
Rampant Coyote said,
Now that’s where I’d draw the line. IMO, that would make a very interesting project for a programmer, and maybe as an academic project it would be cool. But the bottom line is that the AI must serve the game, not the other way around. The whole point of the exercise is to introduce stronger role-playing elements into a game to make the game more fun. If it doesn’t do that, it’s a failure.
The cool thing about having the more “intelligent” / autonomous AI is giving the player a more interesting, unpredictable, but believable world to explore and interact with. But it’s still the player interaction that’s the critical aspect. The AI must be secondary to that.
PhantasmagoriaNL said,
The translation from abstract, synthetic test/evolution environment to a fun gaming system would probably be difficult indeed and outside my field of expertise…If i worked in the computergaming industry i would probably be the guy who made the systems utilities or engines 🙂 But maybe a setup described can be helpful for creating AI that is goal oriented to a certain degree (the final AI doesnt have to be/preferably isnt the optimal one) and equipped with properties to achieve that goal. Also dialog could be integrated as one of the tools to choose from in order to achieve the set goal(s).
Doug S. said,
A “probably too simple” implementation would just involve an affection score, actions that affect that affection score, and lots of scripted dialogue trees.
In other words, a game much like this actually exists, and it’s called Alpha Protocol. Ever played it?
Rampant Coyote said,
Yep, though not to completion. Not quite what I had in mind – A.P. was, as you said, probably too simple. But they did have a pretty interesting conversation system.
Doug S. said,
Even A.P.’s “too simple” system led to some pretty interesting results. And it’s not *just* the conversation system. A.P. also had a crazy number of variations on what could happen based on your decisions and stats, especially in the endgame. It reaches “The Dev Team Thinks of Everything” levels.
For example, there’s one bit that can go all sorts of different ways:
*Spoiler warning*
Variation 1: You fight Colonel Marburg, the villain from the Rome segment, as a boss fight.
Variation 2: You tell Alan Parker that Madison St. James, the hostage Marburg takes, was his daughter. He shoots Marburg, non-fatally. Marburg shoots and kills him, and you fight a weakened Marburg as a boss fight. (This happens regardless of Marburg’s opinion of you.)
Variation 3: You convince Alan Parker that his analysis was flawed, that you successfully made a mess of all of Alpha Protocol and Halbech’s plans. Therefore, Parker has to help you do the job he said was his responsibility near the beginning of the game: dismantling Alpha Protocol when it became a liability. You fight Marburg as a boss fight.
Variation 4: You recruit Parker as in variation 3, and, through conversation, you convince Marburg that Leland isn’t worthy of his loyalty. Instead of a boss fight, you have to defend Parker from a large of normal-strength enemy soldiers.
Variation 5: As in Variation 4, except that you killed Marburg in Rome.
Variation 6: You took Marburg out of the picture either through conversation or by killing him in Rome, but you didn’t recruit Parker to your side. You fight Parker as a boss fight.
Variation 7: If Marburg is dead and you tell Parker about Madison… I have no idea what happens.