Roguelikes and "dice"-based combat

Started by
35 comments, last by Thaumaturge 9 years, 2 months ago

There are a lot of computer games that use randomness - seems very common in RPGs (not just the "roguelikes"), also strategy games. It can be frustrating sometimes if it seems unfair ("Spearman killed my tank!", or just seemingly repeatedly losing), but also helps make gameplay significantly less repeatable.

I think it helps to avoid things that are uniformly random, but tie it into things like stats or skills, so the player can improve their chances (as frob says - you can still play tactically with non-deterministic outcomes). I remember years ago reading about a computer version of Warhammer (I think it was) - the tabletop game version had some cannon that would blow up on the roll of 1, which the developers argued worked in a board game where you throw the dice, but would just annoy players of a computer game, so they removed it.

http://erebusrpg.sourceforge.net/ - Erebus, Open Source RPG for Windows/Linux/Android
http://conquests.sourceforge.net/ - Conquests, Open Source Civ-like Game for Windows/Linux

Advertisement

One way to alleviate that is to not use "pure random", but to use a more controlled form of fake randomness.

That's not dissimilar to how puzzle games work. In a game like Tetris, the pieces are not random, but taken from an order that loops and guarantees that you can play indefinitely with perfect play. Its also a controlled kind if randomness.

throw table_exception("(? ???)? ? ???");

There are a lot of computer games that use randomness - seems very common in RPGs (not just the "roguelikes"), also strategy games. It can be frustrating sometimes if it seems unfair ("Spearman killed my tank!", or just seemingly repeatedly losing), but also helps make gameplay significantly less repeatable.

For me, at least, the way that the randomness is used makes a big difference: I find randomness in combat outcomes (whether by virtue of "to-hit" rolls, damage values, or otherwise) to be tolerable in its best implementations, and thoroughly frustrating in its worst. On the other hand, I find that randomness (well-applied, at least) in level, enemy or item generation, or in enemy AI, can be a great boon, both in moment-to-moment gameplay and in increasing the replayability of the experience.

That's not dissimilar to how puzzle games work. In a game like Tetris, the pieces are not random, but taken from an order that loops and guarantees that you can play indefinitely with perfect play. Its also a controlled kind if randomness.

That makes a lot of sense. I dare not consider just how much work went into coming up with an order that did so guarantee indefinite play! o_o

MWAHAHAHAHAHAHA!!!

My Twitter Account: @EbornIan

I've come to believe that randomness in combat resolution isn't really a desirable element for most games. In general, when you have your hero at level X encounter an enemy of level Y, you know how you want the battle to turn out. You know how long the battle should ideally take and how much damage the player should walk away with or whether the enemy is too powerful at this time unless you happen to have an artifact of awesomeness. Ultimately, you know what player experience should be and you want the player to win.


For me, at least, the way that the randomness is used makes a big difference: I find randomness in combat outcomes (whether by virtue of "to-hit" rolls, damage values, or otherwise) to be tolerable in its best implementations, and thoroughly frustrating in its worst.
That is likely in part due to how the numbers are generated.

The worst implementations use a simple RNG for everything. They don't consider how values in nature are rarely an exactly perfect equal distribution.

Better implementations use distribution curves.

Many games use dice rolls because they are well documented and easy to play with. Giving dice rolls allows you to pick both the number ranges and the distribution curves. If you're looking for numbers between about 0 and about 20, you may want to consider many different dice roll combinations. Options such as 1d20, 2d10, 2d8, 3d6, 5d4 range from flat random probability of about 5% on 1d20, through a very sharp distribution on 5d4 giving only 0.1% of rolling a 20 but a 15.14% chance of rolling the central numbers.

Many of the better (custom in-studio) game engines I've used allowed specific distribution curves designers can play with. They could pick between various options. Some options include "weighted values" (give both the numbers and the weight, the tool sums all the weights and shows each discrete value's probability as a bar graph to the designer), "uniform distribution" (flat percentages), "normal distribution" (the classic bell curve), "exponential distribution" (mostly one end, higher values become increasingly rare), "gamma distribution" (typically biased toward about the 1/4 mark, can be sometimes lower or rarely higher", or "sigmoid" (looks like an S). The tuning tools allow a designer to play with values.

As the programmers we marked the variable as a tuneable probability value and call it done. Tuning values are automatically loaded at startup, so we can immediately use the value designers provde, such as bool thingHappened = chanceOfThing.asBool(); or perhaps float result = chanceofThing.asFloat( lowValue, highValue );

Good design and gameplay tuning is hard work, consequently many of the cheap and easy games ignore it. Some games make 20 items with equal probability and then label one as 'rare', better games make sure statistically it really is rare. Cheap games will just pick a random number for damage; better games are careful with their math, recognizing you will probably normally score a mediocre hit, will sometimes miss, sometimes have a solid hit, and occasionally deal a critical blow, and the numbers are based on both of their skills, both of their equipment, and potentially other factors. A level 20 warrior versus a level 2 hobgoblin will almost always deal a critical blow, but the same level 20 warrior attacking a level 30 well-equipped Master Lich is going to find most attacks evaded or blocked, but they'll still have a tiny chance of cutting off an arm or even the lich's head with an extremely lucky strike.

I've come to believe that randomness in combat resolution isn't really a desirable element for most games.

I will grant one thing to it: it can keep the player on their toes by making the outcome somewhat uncertain.

That is likely in part due to how the numbers are generated.

I'm not quite sure of what you're saying here; are you giving that (and the rest of your post) as the difference between what I describe as the "best" and "worst" implementations, or are you arguing that I simply haven't found a game that generates the numbers well enough that the use of random numbers rises above the level of "tolerable"?

If the former, then that does indeed make sense.

(It's quite possible that I'm missing something or misreading you: I am and have been pretty tired these past two days (hence the delay in my response). ^^; )

At the moment, based on the arguments already presented and further thought on my part, I do now agree that careful, subdued use of random numbers can be a positive thing in combat resolution. In summary, my feelings now are that:

  • Feedback helps: in a third-person, indirect-control game (such as Neverwinter Nights or Baldur's Gate -1 or -2) seeing a character dodge makes a "miss" rather more palatable than seeing a sword pass through a foe and just seeing "miss" pop up.
    • Additionally, some degree of randomness can help to vary non-trivial fights: it's more fun to see whiffs, hits, dodges and so on than two figures mechanically beating on each other, inevitably doing the same damage with each swing.
  • In a game in which I'm in direct control, and especially in a first-person game, I'm likely to want my attacks to hit if they seem to land: if enemies can "dodge", I would want, I believe, that an attack that would have missed but which the enemy dodged into should land. I don't think that I'd like to-hit rolls here. (Morrowind, this means you. >:()
  • I prefer the effect of random numbers to be fairly subtle for the most part: I want the majority of the difference to come from my own skill and the roster of abilities available to my characters, rather than from their statistics or die-rolls.
    • For one thing, statistical differences tend to be somewhat difficult to spot in play: I was doing ten damage, I levelled up and now do twelve; the difference is there, mathematically--I'll go through enemies faster--but I feel that the difference tends to not be as palpable or rewarding as getting a nice, shiny new ability to use.
    • Nevertheless, as has been pointed out, some degree of randomness does help, and can force the player to change tactics in response to the variations in how their resources and those of their enemies are used up.

MWAHAHAHAHAHAHA!!!

My Twitter Account: @EbornIan

There's also a principle that I think can be attributed to Michael Brough (it's there in ZAGA-33 and 868-HACK), that dungeon randomization should already be enough to guarantee variety. You can have completely deterministic combat and still have every battle turn out differently, because they all start from different initial conditions. (I think these two games still use randomness to determine enemy movement, but even this could be made deterministic.) Hoplite is like this too, plus no random enemy movement if I recall. So it's all just dungeon randomization + the player's input that determines the result of the game.

(I have a roguelike idea in my "idea folder" where it's *only* the player's input that matters. The player starts in a large, mostly empty room, and the dungeon is progressively generated offscreen using the player's first N movements as input.)

To me, it all falls down to statistical distribution.

In a D&D environment, where everything is determined at equal odds (a single die with 20 faces, with 1/20 chance of hitting just about any result) I feel like I am not depicting the usual outcomes of real life and I can find that frustrating. Most computer-engineered RNG (random number generators) are determined at equal odds (give me a number between 1 and X).

Personally, I prefer algorithms that simulate 2-3+ dice rolls added together.

For example, I find that, in the "real world" something that revolves around throwing 3d6 will be much more interesting, because you are much more likely to get "9" than "3".

The closer to the middle of the curve, the more likely it is to happen (this is a normal distribution) and it feels more normal too.

From a player's standpoint, it makes risk management more believable. If you know you are throwing 3d6, you know that "on average" you will get a 9 (is it enough to hit?). But the term "on average" doesn't only mean the mathematical average here, it also means that, more often than not, you'll fire a 9 +/- 3 and rarely will get anything else. Getting a 3 would be a highly unlucky roll (1 chance in 216).

Having this sort of insight into actual risk management alleviates the feel of being "cheated by the dice" and an "unlucky streak". Sure, they can still happen, but are that much less likely. It does diminish the role of dice slightly, but they remain a controller factor of luck withing the game design which introduces risk and hidden information to the player.

The general concept here is that, on average, you can kill a wolf (*assuming a 8+ kills a wolf, or whatever) but it remains a foe you need to be cautious with. It's not like you can kill it in your sleep, and if you slip while going for the kill, you're opening yourself to a potential counter. Now, you might just off and kill rabbits (which would require a 5+) but the reward would not be as satisfying.

All purely theoretical, and mostly geared at the statistical side of the problem, but I hope it sheds some light.

I've never played Delver, but it claims it is a first person action rouge-like... which means to me that it it has procedure content, perma-death, and is particularly hard... the action part implies (to me) that it is not turn based... which means that in a fight or encounter my survival can boil down to my personal maximum actions per minute. I don't want all my games to be a measure of how quickly I twitch my fingers. In games like this I tend to max armor and dmg then tank enemies until there are no more attacks coming at me... the more times i play this way the better I get at it and the less likely I am to try a different strategy. With Random Number based combat with discrete decision points the nimbleness of my fingers has no bearing on my success. On one run I can be the tank knight who wacks things, on another run I can be the sneaky theif who backstabs stuff... I don't have to be good at sneaking around backstabbing things... only my character has to be good at it. Even so, those advantage can come with a turn based non random system... but I like the added randomness because I don't want to know that every goblin will deal exactly 7 dmg and I'll kill them in exactly two strikes... I want the occasional goblin to outlive his expected lifespan to thow a monkey wrench into my plan... or if i make a blunder a lucky crit lets me escape.

To me, it all falls down to statistical distribution.

...

What you say makes sense, and does support what others (Frob in particular, I think) have said in this thread, I believe.

To some degree, however, I still feel that, for me at least, one of the main reasons that your suggestion would help is that it reduces the effect of the dice. It means that I'm going to miss every so often (which is fine), rather than on every third or fourth attack (which I find frustrating). To me, the former feels as though I'm largely in control, with a small extraneous force spicing things up; the latter feels as though I'm not in control, the dice are.

Having this sort of insight into actual risk management alleviates the feel of being "cheated by the dice" and an "unlucky streak".

Hmm... I'm not sure of what you're saying here. Are you arguing that knowing the model used (such as the 3d6 rolls that you described) makes it easier for the player to accept the results of the die-rolls, or are you saying that this technique, which reduces the appearance of extreme values, produces results that are more palatable?

I've never played Delver, but it claims it is a first person action rouge-like... which means to me that it it has procedure content, perma-death, and is particularly hard... the action part implies (to me) that it is not turn based... which means that in a fight or encounter my survival can boil down to my personal maximum actions per minute.

That's more or less accurate, although I don't think that it's that hard. The main source of difficulty that I have, I feel, is that I'm playing the Android version and am not wonderful with the controls, which use the touchscreen to emulate a two-stick gamepad.

(There's also a Macrogame in that gold collected carries over between characters, allowing one to sometimes start with better gear than the starting items.)

I don't want all my games to be a measure of how quickly I twitch my fingers.

I do feel that this oversimplifies the action a little: there's more to it than just tapping furiously. Specifically, there's avoiding enemy attacks, choosing the right tool for a given job (I tend to keep wands for use against one of the more dangerous ranged foes, for example), and good use of one's weapon (a single tap produces a quick, but presumably weak, hit, while holding the attack "button" charges a more powerful blow, but slows one down).

Nevertheless, I do see what you mean, I believe.

In games like this I tend to max armor and dmg then tank enemies until there are no more attacks coming at me...

My response here is an aside, but I tend to take a slightly different approach: a mixture of health and attack upgrades, allowing me to kill enemies more quickly while nevertheless absorbing some damage.

With Random Number based combat with discrete decision points the nimbleness of my fingers has no bearing on my success.
...
Even so, those advantage can come with a turn based non random system... but I like the added randomness because I don't want to know that every goblin will deal exactly 7 dmg and I'll kill them in exactly two strikes... I want the occasional goblin to outlive his expected lifespan to thow a monkey wrench into my plan... or if i make a blunder a lucky crit lets me escape.

Fair enough, I can understand that, I believe, even if I don't generally feel that way myself. happy.png

MWAHAHAHAHAHAHA!!!

My Twitter Account: @EbornIan

This topic is closed to new replies.

Advertisement