I want to start by making a distinction between frequent random elements and infrequent ones.
If you're playing a game where you attack something once every 5-30 seconds, then damage happens frequently. If you're playing a game where you attack less frequently than that, maybe once every minute, then it is not frequent.
As an example, table-top RPGs, by the nature of being a board game played by human beings who have to do math and talk to each other, does not qualify as "frequent". Your RPG gaming group would be exceedingly fast if you make an attack roll every 1 minute; you're probably looking more at 3-5 minutes. And that's just for the time you're in combat; the time spent out of combat involves no attack rolls, and it can take just as long. So maybe half of your RPG time is spent out of combat (depending on the group, of course). Let's say you get one attack roll every 10 minutes.
Compare this with any videogame RPG. In fact, let's go straight for Diablo. In a 4 hours session, how many attacks have you made against monsters? In a 4 hour session, you've probably killed more stuff than the table-top group even encounters in an entire campaign.
What does this mean? Well, for the table-top player, each roll matters. It matters a lot. Each roll is precious, so you spend a lot of time maximizing the potential of each roll. You spend time acquiring weapons, items, and buffs to make each roll matter as much as possible. Those 9.5 minutes between attack rolls are there to ensure that when it comes time to roll for attack, you get the best bonuses and circumstances possible.
Some table-top players have dice superstitions (though some only do them in jest). Dice are hallowed among some table-top players, for they live and die based on them.
For the Diablo player, the random element means... nothing. Each roll doesn't matter that much, because 2 seconds later, you'll just make another one. If that attack did minimum damage, that's fine because you're about to make another one.
The only time it might matter is that you might run into a streak of bad luck. But really, how can you notice when you're making attacks once every 2 seconds, and many of your attacks are hitting a half-dozen monsters? Can you truly say that any particular death you may have suffered was due to bad damage rolls, rather than just too many enemies all attacking you?
Therefore, I submit the following idea:
- In order for the random element to truly matter, it must be infrequent.
Poker is a good example. How long does it take for a hand to play out? 2 minutes or so, maybe 1.5. That's long enough to really consider the statistics of the matter. You have time to think about it, make decisions around it, etc. And to do that, you need time.
So if it doesn't matter, why does Diablo have random damage? My guess? Because that's how table-top RPGs did it. Simple idolatry: game developers looked at table-top games and just copied them without thinking about whether it actually mattered anymore.
Indeed, you can see how poorly this is done by looking at the ranges of damage. In table-top D&D, your damage range is huge. A 1d20 weapon has an absolutely massive damage range. It could hit as as ineffectively as a 1d4 weapon. Or it could hit harder than a 2d8 weapon. You don't know, and you won't know until you roll.
What does a large damage range give you? This is where you start getting into psychology. At this point, it's truly gambling. The player wielding a 1d20 weapon wants that 20. He can smell it. But he's not going to get it. He's not going to get it often. But sometimes he is. And sometimes, not always, but sometimes, that 1d20 weapon will hit big when he needs it.
And sometimes, you'll roll a 1 when you really needed high damage. The highest of highs and the lowest of lows.
What is the most consistent damage weapon you can get in D&D? Maybe a 2d6 weapon; very consistently rolls 7-8s. But a 1d20 averages 10.5s, 2d10 average 10.75 on a bell-curve, and 2d12 averages 12.75 on a shallower bell. If you don't want to gamble in D&D, you're going to have to settle for lower damage. It may be more consistent, but it's lower.
Notice that once you start giving weapons +X bonuses, effectively increasing the minimum damage, the preferred weapon changes. That 2d6 weapon with a +4 bonus is in many ways better than a 1d20+4 weapon.
Videogame RPGs (unless they are direct ports of D&D or some other table-top rules) will have much smaller damage ranges. They'll have the equivalent of 1d10+40 damage. A large base damage, but with some small variation at the top.
Gambling in this system just isn't as important. The reason why is quite simple: a 1d10+40 weapon is guaranteed to do at least 41 damage. It might do 50, but that's only 9 damage up from 40.
In smoothing out the damage curve, it takes away the lowest of lows. But it also takes away the highest of highs. Can you imagine cheering that your 1d10+40 weapon did max damage against a dragon with 500 Hp? Now imagine your 1d20 weapon did max damage against a 100 Hp Beholder. That's a pretty big difference.
Therefore, I submit the following idea:
- In order for the random element to truly matter, the range of values must be large, relative to the smallest guaranteed value.
So, why is the gold looted from a monster in DotA random? Because it's "supposed" to be random. Not because of any clever design, meticulous planning, whatever. You could make it not random and change virtually nothing about how the game plays out.
Yes, you would be able to know for a fact how many enemies of that type it takes to get the money to buy X. But since the range distribution is so small, you already know the maximum number you have to kill. So you must have a plan to deal with the eventuality that you will need to kill that many. Therefore, all that changing it to a fixed number does is turn it from a probability into a certainty.
Let's say something costs 250 gold. So, worst-case, that's 5 monsters that drop from 52-60 gold. But best-case, that's... 5 monsters. So if they dropped 56 gold, it would change nothing.
But let's say you're talking about a 1000 gold item. Worst-case, that's 20 monsters. Best case, that's 17. On average, it's 18. But, since it takes so many monsters, the highs and lows will average out. So you're much more likely to need 18 than you are to need 20. Again, changing it to the average changes nothing.
The ultimate evidence of this can be seen in the various WarCrafts. WarCraft 2 used random damage, with a large base and a smaller range. So did WarCraft 3.
And while it owes a very great deal to WarCraft 2 in terms of design, StarCraft specifically has no random damage at all. The only random numbers used in StarCraft (multiplayer) matches are when attacking high ground.
You might have heard of StarCraft: the single most widely played eSports game in the world. More than WC2 and WC3 put together.
To summarize, I would say this. If you want random elements to matter:
- Make them infrequent, so that the player plans around the random events and can anticipate them.
- Make the range of randomness broad, so that the player is actually gambling and can get into the spirit of that psychology.