Conflict Resolution in Games

Let’s imagine that your character is involved in a sword fight with an opponent.

How would you prefer the game to resolve this?

Option 1) By setting a fixed difficulty for the fight:

So, the writer might decide that you need a Melee stat of 50 to win the fight.

If your Melee is 50 or higher then you’ll always win, if it’s 49 or lower then you’ll always lose.

Option 2) By randomly generating the outcome:

So, the game might generate a random number between 1 and 100.

If the number generated is equal to or lower than your character’s Melee stat then you’ll win the fight. If it’s higher than your stat then you’ll lose.

What do you think?

(The random number wouldn’t need to be 1-100 for every conflict, any more than the fixed number would always be 50, the writer could experiment with different ranges and probabilities depending on how difficult they wanted it to be.)

Well I definitely DON’T approve of the random one, that would just be annoying.
The outcome of a choice game should be mostly dependent on player choices not the roll of the die, at least that’s the way I like to see it.

I did a system like that for one of the very first choice games I created. It was a game about thieves. Your idea reminds me a lot of the d20 tabletop game system. Unlike @CJW I think it’s workable with a certain kind of narrative. Even if you have your stat up to a certain level, then there’s still a level of risk even when taking actions you’re good at. It’s a very video game way of handling it.

The issue is choicescript itself. There is a bug where choicescript regenerates the result of a random roll when the player goes to the stat screen. Thus, the player can cheat.

I only use random choice (especially in combat) when a player makes a risky move and I feel there should be a chance of success or a chance of failure.

For instance, in my game Dare to Dream, you are fighting a much larger opponent in a ring. You can sit back and wait for a good moment to strike, or you can try and hit him before he has a chance to get his defense up. If you lunge at him, well…sometimes it works and sometimes it doesn’t.

@Farside

What I try to do to combat that when I use *rand (which is incredibly rare, I think I have used it twice in my entire time of coding in CS), I usually have the choice which sets the random function, a line or blurb talking about the risks of such a choice followed by a page break and the outcome. That way, it won’t re-roll if they hit stats after they see what happened…if they hit stats during the blurb it will, but they could very well have just changed from winning to losing for all they know.

I like the fixed setting more myself. When it’s random I start to feel like my choices don’t matter.

I use the random part for some similar things (not combat), like fishing, to add a more life-like experience; even if your fishing stat is having the highest value, there’s still a chance you can’t catch anything. But I don’t randomize it so largely; if the stat is higher than certain set numbers, I make a random number from 1 to 10, and if that number has a value ranging from 1 to 5, you catch a fish (for your fishing level being half than the maximum) and so on; I don’t just randomize once (doing so makes it look more like “by chance” and not “by choice”).

EDIT: I also use the randomized part (like I do with fishing above) for evasion in a combat, for example or for critical hits, according to the stats, but not to randomize the chance of win/loss whatsoever.

Random usually effects testing results too.

Wow, I really wasn’t expecting this many responses! You’ve all given me a lot to think about.

@CJW and @MusicLover Why would randomised results make you feel that your choices didn’t matter? I’m not attacking your views, just curious as to why you’d feel that way.

To my mind, randomising the outcome would make the player’s decision to fight the opponent a more meaningful one, because they’d need to accept a certain degree of risk.

Let’s imagine the opponent in the example above was someone who’d challenged your character to a duel and we chose to randomise the outcome.

You’d still have the choice between accepting and refusing his challenge (along with the option of choosing a path through the game which didn’t result in him calling you out in the first place), and all of those decisions would still have in-game consequences.

Some characters would also have a better chance of defeating him than others. If you’d chosen to play a master fencer, or to spend time honing your sword skills, then you might have a 90% chance of winning the fight, while someone who had taken different choices might only have a 40 or 50% chance.

But no matter how good (or incompetent) your character was, fighting him would never be a completely safe (or forlorn) choice.

@Farside That bug sounds really annoying! Do you know whether it could be fixed if I were to go for randomised outcomes?

I don’t have much experience of the D20 system, but do play tabletop RPGs… which might give me slightly different gaming preferences to people from other backgrounds.

@Protagonist it makes me feel that way because if I choose certain options meant to make me stronger and a better fighter then having the outcome of a fight decided randomly instead of based on my choices makes me feel like my choices don’t matter. I’d rather have the fight designed like that wrestling game by @AKNel1 than just randomly decided because then my choices will matter.

I’d be inclined to combine the two. So, the higher your stat, the better chance you have of winning. That way there’s still some risk involved, and it means a player with a lower stat still has a chance, even if it’s very slim. I’m not a massive fan of getting to a point in a game only to realise I can’t progress because I failed to beef up random stat 42.

Having said that, I can understand why some people would say not to use random to determine something important in a game, but use it more to add flavour. I use random a lot in a dice game in my project, and it determines nothing massively important, but it makes the experience a bit more dynamic.

@Protagonist Just randomized what needs to at least one page before you use it.

So:


You're going to fight
*choice
  #Fight!
    *rand die_roll 1 10
    *if die_roll > 5
      You win!
      *finish
    *if die_roll < 6
      You lose!
      *finish

This would be affected, as we reload from the start of the #Choice and see that we rehit the *rand. Instead we should do this:


You're going to fight
*rand die_roll 1 10
*choice
  #Fight!
    *if die_roll > 5
      You win!
      *finish
    *if die_roll < 6
      You lose!
      *finish

Now we see that the *rand is on the page before the #Choice, so reloading the page the *rand is on changes nothing from the players perspective, and reloading the #Choice changes nothing at all.

@Protagonist

It’s somewhat of a doubled-edged sword. On one hand randomization gives all players a chance to succeed at something they might normally fail indefinitely - which is nice (represent miracles/unexpected success/what have you).

But on the other hand I’d personally find it quite frustrating if I’d picked all the right choices and died 75% of my way through the game because of a small random roll – Even if it’s only 5% chance that you’ll fail because your stats are so high, to those who do actually have the misfortune of losing despite having high stats, it would be really, really annoying.

What I would find ok is if you had thresholds, so say your swordsmanship was really poor (less than 10?) you automatically failed the fight, no question. If it was 20-40 you had a 50-50 chance and 60-80, 75% chance of winning etc but if you had over 80 in swordsmanship you’d automatically win, no question.

That seems a bit fairer to me, I like what you’re trying to do - I just know from personal experience dying or greeting some sort of misfortune - particularly late game - because of nothing more than a bad dice roll can be quite frustrating.

@Reaperoa Thanks! I’m still struggling with the basics of ChoiceScript, and probably wouldn’t have been able to work it out on my own.

Anyhow, it sounds as though most people are open to randomising at least some outcomes, but those who are against feel more strongly about it. I’m still very much at the drawing board stage, so I’ll give this some more thought before deciding.

@Protagonist Here’s an idea: Hard mode. At the beginning of the game you get to choose whether or not things are going to be randomized. When you hit a pass/fail check, if they chose to be randomized, the difficulty goes up/down based on that, while if they chose for it not to be, it’s static.

Option C - Plot armour, thanks very much.

In D&D the player can see all the information – they know that it is a 20 difficulty, and their ATK is 15, and so they have a 75% chance of success (or whatever), and if they roll a 4+15=19, they know they were close, but just missed, and should try again.

In a ChoiceScript game, you can’t really tell the player all these numbers without breaking the story illusion.

Now, you could go crazy programming it so the story says, “The orc looks like an easy opponent,” and “You just graze the orc with an unlucky swing!” based on the numbers, but even then, since the mechanics aren’t transparent to the player, he doesn’t really know what he could do differently next time, if anything.

Also note that in D&D, each combat consists of several dice rolls. This evens out the luck, and allows the player to drink a health potion, flee, choose defensive maneuvers, etc. even if he rolls poorly several times in a row.