|
TheDude | Mon 15-Mar-10 09:05 PM |
Member since 20th Sep 2005
285 posts
| |
|
#31338, "Some thoughts on RNG"
Edited on Mon 15-Mar-10 09:16 PM
|
Talking about Random Number Generator, I'll try to keep this concise...
I had the chance to observe some lectures at the Game Developer's Conference this past week and one of the topics that kept coming up in various discussions about gameplay across several mainstream games was that of the RNG; specifically, how players view the RNG, and what many people think that it means.
This interested me because it is a topic which keeps coming up again and again in CF. "RNG is broke".
So the standard hashed-and-rehashed boilerplate as it pertains to CF-- a lot of us know that streaks can happen with the RNG, and when we observe craazy streaks of say, 3 deathblows in a round, or boneshatter failing 10 times in a row, or parry not increasing, the first thing we think is that something is wrong with the RNG. And these cases stick out in our heads, even if they are very rare cases. Furthermore, the definition of "random" dictates that these cases are possible-- although unlikely, it is possible to flip tails on a coin 100/100 times (though if this happened, most of us would probably think something was aligned weird with the stars or something).
Long story short-- from the horses mouth-- in response to players' expectations, games such as WoW and Civilization have apparently tweaked their RNG to reflect what people think the RNG should be. In WoW, something like chances to pull certain items were increased if failed previously, etc. And my favorite: in Civiliation (I forget the edition), odds were skewed so that for instance 3:1 meant you were really really likely to win (rather than, you know, three out of four times). Likewise for things like 20:10; although this is just 2:1, apparently many people think this means "I win"-- and the RNG was juiced accordingly.
To the point-- it seems lots of mainstream games have adjusted their "RNG" to make the player feel more comfortable with what random odds mean-- although for us purists, this isn't really "random" at all.
So, my question to Imms: Does this make sense at all for some things in CF? Maybe this is aready done for some cases?
Some examples: - Cap deathblow landing X amount of times in a round. - Cap skill/spell fails at X times in a row. - landing an 8-hit flurry or 5-hit drum. - dismal dodge, parry, evade learning rates! - not learning on assassinate 13 times in a row . - ...?
Is the RNG in CF strictly a rand()%X ?
I'm not advocating one way or another and suppose am not looking for any concrete insight into the code, but I do think it would be interesting to here some feedback from the game coders on the topic.
|
|
|
|
RE: Some thoughts on RNG,
Hutto,
01-May-10 05:51 PM, #18
I've wondered about something on these lines.,
Pro (Guest),
16-Mar-10 12:11 PM, #12
RE: I've wondered about something on these lines.,
Daevryn,
16-Mar-10 12:31 PM, #14
Talking about civilization,
marcus213 (Guest),
16-Mar-10 08:30 AM, #10
RE: Some thoughts on RNG,
Daevryn,
16-Mar-10 07:38 AM, #9
RE: Civilization,
Valguarnera,
16-Mar-10 07:37 AM, #8
RE: Civilization,
Kamuela_,
16-Mar-10 08:46 AM, #11
It would be abusable,
Daurwyn2 (Guest),
16-Mar-10 03:44 AM, #4
RE: It would be abusable,
Valguarnera,
16-Mar-10 07:20 AM, #7
Not sure it is,
Daurwyn2 (Guest),
16-Mar-10 02:09 PM, #15
RE: Not sure it is,
Mostly Harmless,
17-Mar-10 11:17 AM, #16
I don't think you are saying anything I disagree with,
Daurwyn2 (Guest),
17-Mar-10 03:59 PM, #17
Observer bias:,
Valguarnera,
15-Mar-10 09:37 PM, #1
RE: Observer bias:,
Tac,
15-Mar-10 11:10 PM, #2
RE: Observer bias:,
Hutto,
15-Mar-10 11:53 PM, #3
RE: Observer bias:,
Rodriguez,
16-Mar-10 04:31 AM, #5
Fun for who?,
Valguarnera,
16-Mar-10 07:02 AM, #6
RE: Fun for who?,
Hutto,
16-Mar-10 12:13 PM, #13
| |
|
Hutto | Sat 01-May-10 05:51 PM |
Member since 04th Mar 2003
234 posts
| |
|
#32335, "RE: Some thoughts on RNG"
In response to Reply #0
|
|
|
|
|
#31355, "I've wondered about something on these lines."
In response to Reply #0
|
Does the game really check each individual skill as it sequences or is activated?
Or does the game roll 1 or more die that fall into variouse catagories then add the modifiers of all pertainent chars and mobs and display the outcome? If so does this "Dice Roll" hold to the end of the round/tick? #########
A while back Zulg (I believe) and someone else mentioned they alternated skills used/spells cast on a mear suspicion that there was something imbedded in the code that made spamming become less effective after multiple repitition and no alternate input. ############### Way out there but still a thought does CF run on a sine wave with reguard to RNG? #######
|
|
|
|
  |
Daevryn | Tue 16-Mar-10 12:31 PM |
Member since 13th Feb 2007
11117 posts
| |
|
#31358, "RE: I've wondered about something on these lines."
In response to Reply #12
|
>Does the game really check each individual skill as it >sequences or is activated?
I'm not 100% sure I understand what you're asking, but if I do the answer is yes.
|
|
|
|
|
|
#31351, "Talking about civilization"
In response to Reply #0
|
They have released the civ5 trailers.. It will have hexagonal tiles, but we beat them to it!
And talking about RNG's.. I met a dude at IGE this year who tried to sell random numbers. I dont think he had much luck..
|
|
|
|
|
Daevryn | Tue 16-Mar-10 07:38 AM |
Member since 13th Feb 2007
11117 posts
| |
|
#31350, "RE: Some thoughts on RNG"
In response to Reply #0
|
In my opinion, "real" randomness is better for a player vs. player game, or at least the PvP aspects of those games. In other words, I think maybe you can make the gear farming aspect of a game like WoW more fun by making it essentially less random, but I don't think you would make CF PK more fun if you could legitimately have the sense that it's been a long time since you've cleaved someone in half so you're due.
I would've liked to hear that talk, though -- I miss living close enough to the GDC to go for a day without it having to be a big production.
|
|
|
|
|
Valguarnera | Tue 16-Mar-10 07:37 AM |
Member since 04th Mar 2003
6904 posts
| |
|
#31349, "RE: Civilization"
In response to Reply #0
|
And my favorite: in Civiliation (I forget the edition), odds were skewed so that for instance 3:1 meant you were really really likely to win (rather than, you know, three out of four times). Likewise for things like 20:10; although this is just 2:1, apparently many people think this means "I win"-- and the RNG was juiced accordingly.
As an aside, this isn't a tweak to the random number generator. This is the game designer changing the probability of success based on the attacker's strength vs. the defender's strength. It's also realistic-- if you ask military people about force multipliers, once you account for the advantage of the defender, even relatively small excesses of materiel on either side leads to a very high chance of holding the field at the end of the day.
Put another way, Civilization's original hypothesis that a fleet of bombers attacking archers had any chance to lose was poor design (in the middle of a lot of revolutionary game design, obviously), and they fixed the design.
To use a related analogy, if two CF PCs attack one CF PC (all other factors equal), the team of two has a higher than 2/3 probability of winning. That isn't a modified RNG-- it's just a non-linear process.
For a specific example, if all three PCs are necromancers, the team of two should more or less never die to being slept, whereas the lone guy has a pretty good chance of being slept, at which point a competent team of two is going to 'hold the field' nearly every time.
Even if it's just warriors slugging it out and entering no commands, you're basically looking at the time it takes two offenses to exhaust one set of HP, vs. the time it takes one offense to exhause two sets of HP.
Etc.
valguarnera@carrionfields.com
|
|
|
|
|
|
#31344, "It would be abusable"
In response to Reply #0
|
e.g. Necro goes and casts sleep on uber level mobs several times, so that it fails, and then knows he has a juiced up chance of it working on the next pc.
Or alternatively, if you are trying to bash down someone, the more bashes you land, the more likely they are to escape one right when it matters. Unless you change skills to avoid that. Which doesn't feel reasonable to me.
The RNG will only be pseudo-random, but that's as random as you're going to get. I wouldn't be in favour of changing it so that people who flip 99 heads have a very high probability of getting tails next time.
|
|
|
|
  |
Valguarnera | Tue 16-Mar-10 07:16 AM |
Member since 04th Mar 2003
6904 posts
| |
|
#31347, "RE: It would be abusable"
In response to Reply #4
Edited on Tue 16-Mar-10 07:20 AM
|
>The RNG will only be pseudo-random, but that's as random as >you're going to get. I wouldn't be in favour of changing it >so that people who flip 99 heads have a very high probability >of getting tails next time.
This is a mis-statement, really. No decent library RNG has a bias (favoring high numbers vs. low numbers by outputting meaningfully more ones than zeros, for example)-- that's easy to calibrate out. The problem that can occur is that the data used to generate random numbers has non-zero correlation over short time frames. Basically, the RNG spits out 1s or 0s. Let's say there's some short-duration correlation among bits, and a "1" in position N makes a "1" more likely in position "N+20".
The point I'm giving below is that when you're talking about an RNG that hops from active character (PC or NPC) to active character hundreds of times per second, and that there's no pattern in the code to what a "good" number is (*), there are multiple layers of randomness on top of the actual number stream being generated. For there to be a player-discernable stream in Boneshatter success, for example, you'd need to have multiple events spaced irregularly by hundreds or thousands of function calls apart show a pattern.
We've manually checked some events that had a known probability distribution (Zulgh did this for Evade a while back), and given a large number of trials, it fell right along the expected distribution. 'Streakiness' wouldn't work that way-- improbable events get ratcheted up by a tendency towards streaks.
From the player angle, there's no discernable effect.
(*): For some checks, your character wants a number towards the bottom of the range. For others, your character wants a number towards the top of the range. The functions that request random numbers have no idea what your character wants.
valguarnera@carrionfields.com
|
|
|
|
    |
|
#31359, "Not sure it is"
In response to Reply #7
|
I'm not aware of the existence of any RNG that is not pseudo-random. Or are you arguing that the fact that you aren't using every output from it (for a given character) makes it truly random? I'd only agree with that if the number of uses of the RNG in between was truly random, which it isn't.
Pseudo-random does not imply bias. It simply implies that a non-random process is used to simulate randomness. I don't think we've yet managed to create anything better than a pseudo-random RNG on a computer.
|
|
|
|
      |
|
#31366, "RE: Not sure it is"
In response to Reply #15
|
>I'm not aware of the existence of any RNG that is not >pseudo-random. Or are you arguing that the fact that you >aren't using every output from it (for a given character) >makes it truly random? I'd only agree with that if the number >of uses of the RNG in between was truly random, which it >isn't.
I don't think that he's implying the pRNG isn't pseudorandom. Since: there is no bias (that is, since there is uniform distribution within the range of the pRNG's output), we do not know the pRNG's algorithm, we do not know the initial state of the pRNG, and access to the pRNG is a random process(*), the data output by the pRNG is indistinguishable from true random numbers.
> >Pseudo-random does not imply bias. It simply implies that a >non-random process is used to simulate randomness. I don't >think we've yet managed to create anything better than a >pseudo-random RNG on a computer.
Is there a difference between pseudorandom and random in the context of the game? Since the output is non-deterministic, and since it has uniform distribution, there is no difference. I'd venture to agree with Valg further down that it's a misunderstanding of what the pRNG is, what it does, and how it works. Stats, skills, preps, etc. are more important to the outcome of an event than the RNG. Since I do not have access to the code, I can only supply a simple, hypothetical example for a hypothetical game:
Say I attack you. The game is going to generate my chance of successfully landing that attack (based on some hard-coded numbers, skills, preps, equipment, etc.). Say my chance of a successful attack is 75%, based on the game's calculations. We can use something as simple as a roulette selection method to determine if my attack lands.
Imagine a roulette wheel that, instead of the numbers and colors, has only two options: "hit" and "miss". 75% of the wheel is filled with "hit" spaces, and the remaining 25% are "miss" spaces. I spin the wheel and toss in the ball. I now have exactly a 75% chance of the ball landing in a "hit" space and a 25% chance of it landing on "miss." Programatically, we assign 75% of some range to "hit" and 25% of the range to "miss." For example, my range could be <0, 1>, where <0, 0.75> represents "hit" and <0.75, 1> represents "miss." We then generate a number in the range <0, 1>. If the number lies in the "hit" range, my attack is successful, otherwise it isn't.
In this scenario, only two things matter: the resolution of the generator and the distribution. By resolution, I mean are there enough possible outcomes to satisfy the solution? If there are four possible "answers," one flip of a coin (2 possibilities) does not have enough resolution. Since the resolution of any decent pRNG is not an issue, and since the distribution is unbiased, the pRNG is just as good as a truly random process.
(*)Since access to the pRNG is determined in a large part by the actions of the playerbase, and since those actions are non-deterministic, said access is a random process. ----- "In those days spirits were brave, the stakes were high, men were real men, women were real women, and small furry creatures from Alpha Centauri were real small furry creatures from Alpha Centauri."
|
|
|
|
        |
|
#31371, "I don't think you are saying anything I disagree with"
In response to Reply #16
|
The pseudo-random discussion is a bit of a red herring.
My point is that IF you alter things to increase chance of success after every failure, or vice versa, you are creating an abusable situation. (And yes, I am aware that this would require it to track each character's recent successes and failures.)
|
|
|
|
|
Valguarnera | Mon 15-Mar-10 09:37 PM |
Member since 04th Mar 2003
6904 posts
| |
|
#31339, "Observer bias:"
In response to Reply #0
|
So the standard hashed-and-rehashed boilerplate as it pertains to CF-- a lot of us know that streaks can happen with the RNG, and when we observe craazy streaks of say, 3 deathblows in a round, or boneshatter failing 10 times in a row, or parry not increasing
From the perspective of the random number generator, these aren't remotely consecutive events. By the time those three deathblows have happened, the random number generator has been asked to calculate piles of random numbers on behalf of you, your opponent, and more. Just one run through checking someone's defenses (and all the relevant skill checks, skill improves, etc.) generated a pile of ones and zeroes.
Boneshatter failing twice in a row, let alone ten times? The game has checked thousands of NPCs for activity during that time.
100% of the complaints about the RNG fall into one of two categories: 1) The complainer does not understand probability and randomness. 2) The complainer does not understand the probability distribution of the event in question, and therefore thinks a statistically common occurrence should be rare.
Some examples: - Cap deathblow landing X amount of times in a round. - Cap skill/spell fails at X times in a row. - landing an 8-hit flurry or 5-hit drum. - dismal dodge, parry, evade learning rates! - not learning on assassinate 13 times in a row . - ...?
Why would we invest time and effort in any of this, storing tons of data about sequences of trivial events, when random checks achieve the intended result?
valguarnera@carrionfields.com
|
|
|
|
  |
Tac | Mon 15-Mar-10 11:10 PM |
Member since 15th Nov 2005
2050 posts
| |
|
#31341, "RE: Observer bias:"
In response to Reply #1
|
Why would we invest time and effort in any of this, storing tons of data about sequences of trivial events, when random checks achieve the intended result?
I'm going to assume, that like me you do not intend this sentence to patronising and abrasive in nature, but is rather an effect of the text medium. That said:
"Long story short-- from the horses mouth-- in response to players' expectations, games such as WoW and Civilization have apparently tweaked their RNG to reflect what people think the RNG should be."
Answers your question. Basically, people are terrible at statistics (as in built in ability to assess probabilities) and so some popular games are tweaking their RNG so that the randomness coincides with what people expect instead of actual randomness. This no doubt makes some number of players happier about the game because they don't see edge cases as often, and thus assume that the RNG funtions properly (when it is in fact functioning improperly).
While I don't think you should invest any time or effort in this, the two categories of complaints you've outlined pretty much describe everyone who hasn't done some serious studying of statistics. So much so that simply telling them they are stupid (which is how I interpret your text though it isn't likely intended that way) isn't necessarily the path to player happiness.
It might be worthwhile to through out some real statistics every once in a while like: You have a 1% chance to not improve on a successful assassinate 13 times in a row, so you got really unlucky. Or, Under ideal conditions your odds of performing an 8 hit flurry are only 10%, so it really doesn't happen that often. It might not help, but it might be better than nothing or simply dismissing the complainer as a stupid head who can't do proper statistical probabilities in their head (very very few people can).
I think you mentioned doing a lot of stats for your job IRL at some point, so I'm sure that will skew your perspective on the RNG if I'm recalling correctly.
|
|
|
|
      |
Hutto | Tue 16-Mar-10 12:13 PM |
Member since 04th Mar 2003
234 posts
| |
|
#31356, "RE: Fun for who?"
In response to Reply #6
|
>Fun for who?
Everyone. Of course when we start talking about fun and people's expectations, it starts to get really subjective. Personally, I think managing and shaping people's expectations is far more important than necessarily meeting their initial expectations.
>I suspect that if we did this, people would complain that >streaks of X successful outcomes never occur.
You're right. Someone in this thread already mentioned a limit on how many times deathblow can go off in one round.
>Overall, the shift being advocated would come down heavily on >the side of favorites, which I also think is a loss.
I'm not so sure... I think a part of it involves a lack of knowledge on how to increase one's chance of X happening. You probably won't hear people complain much about Bash failing (or if some newbie does, the players will be pretty quick to help them increase their success). A lot of the influences on skills are subtle and hard to track, and the game overall discourages powergamey number crunching (which is fine). For example, one of the complaints I regularly hear about Orcs is that their skills just don't work. I'll admit that's one of the main reasons I don't play them. And I even consider myself somewhat of a masochist when comes to this game based on some of the characters I've played over the years. But I can play other classes so no real loss.
>I mean, it would be trivial to make Flurry deal the >exact same number of hits every time. That would eliminate >streaks of weak flurries and strong flurries. I just don't >think it's interesting.
I can see where it might add to the fun of playing the game--without talking about how the code works--to lessen the chances of certain events in a certain timeframe. Maybe it's missed Boneshatters in a row, or Deathblows in a single round. For some (like Boneshatter) it could be a percent curve increase after every miss (+1% +2% +4% +8% +16%?) to a set max increase (+16%?) until a Boneshatter lands. For others (like Deathblow) it could be a hard cap (3? 4?) per round. Would anyone complain if a character only missed 4 or 5 boneshatters in a row instead of 6 or 7? Would anyone complain if it weren't possible to get 4 deathblows in a single round? Again, this is subjective so it isn't easy to boil down to hard numbers.
There is a difference between absolute predictability and massaging the RNG to lessen the likelihood of excessive series of X. 'Excessive' being the hard word to clearly define. I would imagine the Imms have a better understanding of what players are expecting out of certain situations and what is causing frustrations than anyone else.
Like I said in the other post, I think this idea has merit but the amount of effort required to implement it could be a lot and I don't know if it's worth it. Fun to discuss though.
Hutto, the Sleepy Nitpicker
'Sorry, I'm not 72323slhlst. Or however you say Elite' -Vynmylak
|
|
|
|
|