SpaceKungFuMan
Scholar
- Joined
- Nov 19, 2007
- Messages
- 253
I posted this at Iron Tower, and figured it might be worth discussing here too.
The way that I see it, there is no reason that 90% of the dialog in a game which offers viable non-combat options can't be procedurally generated. The system I propose would involve assigning "dialog stats" and "quest stats" to NPCs, in the same way that combat stats are assigned now. Essentially, dialog stats will determine how hard it is to convince an NPC of something (think of how the player's Strength and the NPC's Defense are used in combat). Quest stats will be fields allowing for randomly chosen desires/fears/motivations to be assigned to each NPC. An example is the easiest way to demonstrate.
Player wants to get past the gate. The gate has a guard. The player has three immediate options: 1) attack the guard, 2) hide until either the guard says something to himself, talks to someone else, or in some other way gives a clue about motivation (success is based on stealth ability), or 3) go talk to the guard.
When you talk to the guard, you will have a randomly selected set of options, including trying to bribe him, trick him into letting you pass, or intimidate him/appeal to authority. With a sufficient skill check, you can succeed at any of these, but the skill checks are so high, that you will only succeed if you really outclass him, much like how you can one shot kill rad scorpions later in fallout, because you're so much stronger than them. You will also always have some sort of small talk/feel out the situation option, the purpose of which is finding out the guard's motivation. So he may say "I can't be bothered by you now, I'm looking for my lost dagger" or "You can't come in here. Don't like it? Tough, I don't like that I forgot my lunch either." Better writers than me could obviously craft better options. The key is that all of these possible lines are procedurally generated, so that no two guards will say the exact same thing twice. The more frameworks, and objects included, the lower the chance dialog which just feels repetitive.
The real aim of the encounter is to obtain some information, either by overhearing, or asking. In addition, once you initiate the fact finding with the guard, randomly generated NPC's could be placed on a bench talking about a problem the guard is having, or something similiar. So, armed with knowledge about what the guard wants/fears, you have to set out to find it. This will be accomplished by randomly generating NPCs who either have the item the guard wants, know a secret about the guard you could black mail him with, etc. Ideally, either multiple NPC's, each with a different possible "key" to pass the guard are generated, or multiple existing NPC's have the keys and accompanying random dialog assigned to them. Of course, these NPC's probably won't just give the item/information up, and they will each have something THEY want. Again, randomly generated. In this way, an entire bargaining chain resulting in getting the key to get past the guard has been procedurally generated.
Of course, it doesn't have to stop at bargaining. Maybe Farmer Bob won't give you his sandwich unless you get revenge for stealing his pig/having sex with his daughter/building his fence on Bob's property. So you have to go to the person Bob designates and work out a solution. Of course, for a non-violent resolution to that, you'll probably have to do a favor for this person too. This could result in a pretty interesting and unique quest line to get into the castle, and none of it has been custom made.
The key to this whole system is to have a large selection of possible tasks, each with multiple frameworks for the introductory language (since having a randomly picked dialog choice with randomly filled in information will keep things feeling more unique and less procedurally generated) and each with a variety of randomly chosen solutions. Since we don't want to eliminate combat from the game entirely, we could even have randomly generated combat encounters like saving a daughter from kidnappers or recovering a stolen item from a local street tough thrown in. Of course, even these encounters could have randomly generated non combat solutions (maybe sometimes the street tough's gang can be turned against him, and sometimes he's standing below a window you could push a flower pot out of to knock him out).
Another important point is that each of these randomly generated quest lines will actually have different possible solutions. So maybe you don't have the skill set to complete the line for the sandwich, but you do have the skills to get the information to blackmail the guard. A wide variety of stats could be incorporated into these randomly generated quest lines, to make sure that every skill in the game is actually useful. When you get to short circuit the entire quest line because you have a high enough medicine skill to cure the sick kid instead of having to barter for the drugs, you'll really feel like you're character is interacting with the world, instead of ignoring his own skill set just because the linear quest design doesn't permit him to remember that he's the chief of surgery. And unlike with conventional games, no hand written events are skipped by using skills as a short cut, so you don't have to worry about missing content.
I know this is all rough, and maybe a little bit confusing, but I think there is real merit here. While implementing these random quest fragments is more time consuming than throwing together filler combat, the return on investment is MUCH better than time spent hand crafting dialog. I think this system is preferable to abstract persuasion too, because it allows the player to use diplomacy in the same way for random encounters as key story dialogs, much like how a combat character uses the same combat engine to fight 30 rats as the king of the trolls. I'd love to hear what people think of this idea.
The way that I see it, there is no reason that 90% of the dialog in a game which offers viable non-combat options can't be procedurally generated. The system I propose would involve assigning "dialog stats" and "quest stats" to NPCs, in the same way that combat stats are assigned now. Essentially, dialog stats will determine how hard it is to convince an NPC of something (think of how the player's Strength and the NPC's Defense are used in combat). Quest stats will be fields allowing for randomly chosen desires/fears/motivations to be assigned to each NPC. An example is the easiest way to demonstrate.
Player wants to get past the gate. The gate has a guard. The player has three immediate options: 1) attack the guard, 2) hide until either the guard says something to himself, talks to someone else, or in some other way gives a clue about motivation (success is based on stealth ability), or 3) go talk to the guard.
When you talk to the guard, you will have a randomly selected set of options, including trying to bribe him, trick him into letting you pass, or intimidate him/appeal to authority. With a sufficient skill check, you can succeed at any of these, but the skill checks are so high, that you will only succeed if you really outclass him, much like how you can one shot kill rad scorpions later in fallout, because you're so much stronger than them. You will also always have some sort of small talk/feel out the situation option, the purpose of which is finding out the guard's motivation. So he may say "I can't be bothered by you now, I'm looking for my lost dagger" or "You can't come in here. Don't like it? Tough, I don't like that I forgot my lunch either." Better writers than me could obviously craft better options. The key is that all of these possible lines are procedurally generated, so that no two guards will say the exact same thing twice. The more frameworks, and objects included, the lower the chance dialog which just feels repetitive.
The real aim of the encounter is to obtain some information, either by overhearing, or asking. In addition, once you initiate the fact finding with the guard, randomly generated NPC's could be placed on a bench talking about a problem the guard is having, or something similiar. So, armed with knowledge about what the guard wants/fears, you have to set out to find it. This will be accomplished by randomly generating NPCs who either have the item the guard wants, know a secret about the guard you could black mail him with, etc. Ideally, either multiple NPC's, each with a different possible "key" to pass the guard are generated, or multiple existing NPC's have the keys and accompanying random dialog assigned to them. Of course, these NPC's probably won't just give the item/information up, and they will each have something THEY want. Again, randomly generated. In this way, an entire bargaining chain resulting in getting the key to get past the guard has been procedurally generated.
Of course, it doesn't have to stop at bargaining. Maybe Farmer Bob won't give you his sandwich unless you get revenge for stealing his pig/having sex with his daughter/building his fence on Bob's property. So you have to go to the person Bob designates and work out a solution. Of course, for a non-violent resolution to that, you'll probably have to do a favor for this person too. This could result in a pretty interesting and unique quest line to get into the castle, and none of it has been custom made.
The key to this whole system is to have a large selection of possible tasks, each with multiple frameworks for the introductory language (since having a randomly picked dialog choice with randomly filled in information will keep things feeling more unique and less procedurally generated) and each with a variety of randomly chosen solutions. Since we don't want to eliminate combat from the game entirely, we could even have randomly generated combat encounters like saving a daughter from kidnappers or recovering a stolen item from a local street tough thrown in. Of course, even these encounters could have randomly generated non combat solutions (maybe sometimes the street tough's gang can be turned against him, and sometimes he's standing below a window you could push a flower pot out of to knock him out).
Another important point is that each of these randomly generated quest lines will actually have different possible solutions. So maybe you don't have the skill set to complete the line for the sandwich, but you do have the skills to get the information to blackmail the guard. A wide variety of stats could be incorporated into these randomly generated quest lines, to make sure that every skill in the game is actually useful. When you get to short circuit the entire quest line because you have a high enough medicine skill to cure the sick kid instead of having to barter for the drugs, you'll really feel like you're character is interacting with the world, instead of ignoring his own skill set just because the linear quest design doesn't permit him to remember that he's the chief of surgery. And unlike with conventional games, no hand written events are skipped by using skills as a short cut, so you don't have to worry about missing content.
I know this is all rough, and maybe a little bit confusing, but I think there is real merit here. While implementing these random quest fragments is more time consuming than throwing together filler combat, the return on investment is MUCH better than time spent hand crafting dialog. I think this system is preferable to abstract persuasion too, because it allows the player to use diplomacy in the same way for random encounters as key story dialogs, much like how a combat character uses the same combat engine to fight 30 rats as the king of the trolls. I'd love to hear what people think of this idea.