Feedback The tale of randomness of random

Discussion in 'General Archive' started by sebastian_fl, Sep 26, 2015.

Dear forum reader,

if you’d like to actively participate on the forum by joining discussions or starting your own threads or topics, please log into the game first. If you do not have a game account, you will need to register for one. We look forward to your next visit! CLICK HERE
Thread Status:
Not open for further replies.
  1. sebastian_fl

    sebastian_fl Count Count

    Once upon a time... I wanted to start a conversation on random. We hear it from mods and players all the time. Random here, random there, bad random, good random, it treats me well today.

    But random isn't 'completely' random, especially if we talk about probabilities and speak of a big numbers. Thousand Khalys kills, hundreds runs of the event map, hundreds of thousands mobs killed.

    Good randomizer, written according to the best approaches would satisfy a number of criteria, one of which would be impossibility to predict things - there is no distribution patterns, and also there would be a normal distribution.

    In words of the game, it would be the following: assume probability of seeing Jullov is 20%. If you do 1 run only, you will get completely random output, which will most likely be - no jullov. But if you do 100 runs, odds are you will see him 19-21 times. The more runs you do, closer to 20% it would be. If random was a true random.

    If chances of getting khalys unique are 1/400, odds are you will almost surely have it after 3000 kills, almost surely is 99%+. Pure math, or stat.

    Whatever the probabilities are, only Haruki knows, we could still judge about them using the edge cases. Edge cases would be not getting an item in a large number of attemtps, or getting an item a couple of times in a row, or number of times out of small amount of attempts.

    Here are examples. I haven't seen Jullov on the map for 60+ runs. I have seen him 2 times in a row the next day.
    I haven't seen a unique from Herald (norm) in 33 runs, but I have had it once 3 times out of four.
    I haven't seen Khalys mask for 200 kills, but I have had 6 of them in 50 kills one day.

    If I had enough of those edge cases, large volume of data, I would precisely identify the probabilities. If random is a true random.

    The fact is, that such edge cases are impossible given the same probability. Statistically impossible, or highly improbable=impossible. For instance, it is impossible to 200 times not to get an Ace for full deck of cards, but do that 3 times in a row the next day.

    They were talking about some way to guarantee a unique on twitch yesterday. Perhaps, they better do some intensive testing of randomness, testing of normal distribution of 'events' etc. There are multiple approaches to test randomness, gaussian distribution, the compression test etc. That should also involve the client-embedded randomness integration tests, to make sure random is truly random, for everyone on Mozilla and chrome, one with chain lighting and fireballs, etc.

    So Dev, did you intensively test the randomizer? Perhaps it might be the source of many users frustration. Is it completely and fairly random?
     
    Last edited: Sep 26, 2015
  2. Mindship

    Mindship Forum Inhabitant

    I never thought the random factor was purely random, not when subtle tweaks can be made in a system where the math is often obscure. For maximizing profit, this game (and it's hardly alone) is artfully designed to edge dedicated players into an optimal zone: spending real $$$ (fueled by hopes of success), before frustration ---> quitting. It's a Skinner box balancing act.
     
  3. _Baragain_

    _Baragain_ Living Forum Legend

    The key that you are missing is one prefix... "Pseudo," as in Pseudo-random number generator. A PRNG uses an equation that has seemingly random outputs based on a specific input. However, depending on what is used as an input and and how the output is calculated, you can have what looks like periods of good luck and bad luck. I am also of the opinion that the PRNG uses some parameter from the processor or memory when selecting an input. That is why some people seem to have consistent good luck and others have consistent bad luck (it is based on their computer). This is not to say that folks with a nice computer have better drops. In fact, quite the opposite... quality of the system has no bearing on the quality of the drops because even simple manufacturing differences between "identical" chips could introduce a difference. The problem is, without a peek at the code, (we will never know and the CMs and devs will never reveal something like that) all this is just supposition and we just need to deal with the cruddy drops that we get in the mean time.
     
    moby31 likes this.
  4. sebastian_fl

    sebastian_fl Count Count

    If that was PRNG, I doubt it would use some parameters form the outside, as TRNGs are doing that, to make random purely random. But this is not very efficient. They might have combined the techniques, to 'improve' randomness taking something from the client, but that wouldn't be very smart, it wouldn't add randomness to random, as we are not sure how random is that client parameter. And to be honest, PRNG nowadays are so efficient, even though they use predefined distribution on the seed, that making the output even more random doesn't really matter. I would just stick to a 'no client input' required. There are a bunch of fast algorithms that produce normal distribution without it being predictable.

    I'm not asking them to reveal the formula, just to make sure they test it properly, on various clients, and also to do some A/B testing using different prng methods.
     
  5. wizzo90

    wizzo90 Junior Expert

    You seem to have some interest in stochastics. Good!
    Now use that motivation and go all the way and do the actual math.

    It is as simple as it gets in stochastics:
    Lets assume drops are independent events.
    Lets further assume the droprate of your unique is 0.25% as you proposed.

    How likely is it that you will not get it in 10 runs?
    0.9975^10= 97%

    How likely is it that you will not get it in 200 runs?
    0.9975^200= 61%

    How likely is it that you will not get it in 1.000 runs?
    0.9975^1000= 8%

    You were talking about 3000 runs? I doubt that. The number is so even that it is clearly an estimated number.
    Every players thinks he has 100 kills on mortis if he made his first 60. Its a normal bias of our psyche based on positive expectations. Like kids think it surely must be Christmas soon, but last time they had this thought it was yesterday.

    That being said you are right because dropchances change. BP monitors how many players got that item and at some point nerf the dropchances massively.
    You can see this way of ballancing in every event, with every set and every quest. So if you want something, prepare and get there quick. This served me fine so far. Farming a mortis mask or predator at the end of level 45 period? Not a chance.
     
    Last edited: Sep 27, 2015
  6. Darwarren

    Darwarren Count Count

    Greg discussed drop probability in the last twitch about minute # 36. http://www.twitch.tv/drakensang/v/17677940
    He also discussed the difference between drop probability and drop guarantee. (Thank you.)
    Haruki said if you have very bad luck, just keep on trying. (Thank you.)

    The discussion about probability is ongoing and never ending. A new crop of disappointed players appears routinely.
    No matter how much flack players generate, DSO does not seem to change the schedule for the randomness.
    There has been lots of discussions about low drop amounts after release 155; that seems to happen on a regular basis. LOL

    The range of probability can theoretically run from 0% (never) to 100% (every time).
    Drop types and drop rates are programmed to match the difficulty of the monsters. For example, some minions are just clutter, and don't drop anything, but each bundle of minions will usually drops some coin. The bosses in HoD drop something everytime, usually a mix of items with an extraordinary included , but occasionally a legendary is included.
    The range of drops is spread all across the map, and within instances as well.

    As far as that special unique you need to step up, or that really rare item with the 4 feature lines you want, BigPoint designs the system to give those in limited numbers. They also leave you to deal with it as you will.
    You might be lucky. For the most part, it is more likely that you can get your very special item, when you no longer need it, and have moved on.
    "Everyone is equal. Some are more equal than others."
     
    sebastian_fl likes this.
  7. sebastian_fl

    sebastian_fl Count Count

    I do like math indeed :) I have masters in applied math and graduated with honors :) that was long time ago unfortunately, but I still do remember the probability calculations :) but thank you for the numbers.

    I do have a couple of enigmas, a couple of mortis masks. And I have done lots more than 3k kills, and I'm not a kid dreaming of Christmas be sure :) I do not have Khalys weapon though, how probable is that?

    I'm with you for the most part, but I wanted to drill down into the probabilities of series with and without drop. How probable is that a random function will 'return' an item 2 times in a row, or 5 times out of 50 runs, and at the same time will not return it 100+ times the other day? I have had such experience with Mortis amulet and the khalys mask.

    I tried to guess the probability of that event so it satisfies each of two criteria - both series should be above 1%. No way, not even close to that. Probability to act like that does not exist. There should not be really long good/bad luck periods, in other words.

    I finally started this when playing the event and I was frustrated by not seeing the jullow. I originally thought it is caused by the jullov instances being limited and filled by the players who call mates in the guild chat. And the random players couldn't get that. And it doesn't happen on the new moon event, as noone calls for the jullov. Might be something ralated, might be something with the random.
     
    wizzo90 likes this.
  8. Silentmist

    Silentmist Junior Expert

    I played with one friend and a coin, i choose head and he chose tail. We flipped the coin 100 times and he won with 51 tails, but it can't be! The probability is 50/50, there must be something wrong. Now i know why, BP is changing the odds, that must be the only explanation.
     
  9. sebastian_fl

    sebastian_fl Count Count

    I apologize but I do not follow. What did you want to say? 51 is a very probable result. With BP, however, we can get 90-10 and vice versa the other day.
     
  10. wizzo90

    wizzo90 Junior Expert

    We are all just kids before Christmas with the items we want, not excluding me of course^^ The anticipation bias is much stronger with random events, since we always try to search for patterns. Players have explained to me that you have to use a special work bench or kill on specific places. Real randomness is always an enigma for our brain.

    MA of "applied math" but not using probability a lot... That kind of narrows it down. Engineer? Programmer? I am a curious person^^

    Well, the chances are there, but they change a lot. High level items such as mortis mask come in waves. I can predict without taking chances that for example the keen/roshan/yachak set will pop up a lot if they decide to not give it an lvl upgrade. Also Balors dropchances will decrease over the next months.
    In general: The more active players are using that item, the less likely is it to drop somewhere or to get during an event. The new Dragan event will prove this once more.

    Cheers!
     
    sebastian_fl likes this.
  11. _Baragain_

    _Baragain_ Living Forum Legend

    Silentmist is pointing out that random is not a guarantee that in 'X' many runs you will get what you are looking for.
     
    Silentmist likes this.
  12. sebastian_fl

    sebastian_fl Count Count

    It was informatics focused course, but lots of math too. It was the most programming intensive course out of 6 we had in the university, but the university wasn't really applied, but more theoretical. And I used to be a developer, for about 12 years. No rocket science or anything math related besides simplex method and some crypthography though. Cheers)

    Actually it is, assuming it is well written. It is impossible to not get tail in a specific number of runs, let's say 30. Which would be 0.5^30 which so close to zero that is considered zero.

    Lets play a game. The goal would be to design a custom deck of cards, that the possibility of getting 3 aces in a row would be reasonable enough to be treated possible. Lets say it should be above 0.1%. Now let's add another requirement, it should also designed the way that it is quite reasonable to not get an Ace 100 times in a row. For it to be probable, it should be at least, again, above 0.1%. Each time you get a card from a full deck, and it is returned to the deck and shuffled. I say, that it is impossible to design such a deck because the criteria fight each other.
    Now, BP was successful in creating that deck, and it is their randomizer. I claim that function could be called a function, but not a randomizer, neither PRNG nor TRNG. It wouldn't pass the number of test of randomness concerning the distribution.

    Since 'claim' is a bold word, I would say by 'claim' I mean there is a probability of it, and I would like to get it double checked for everyone's benefit.

    I do not have personal complaints about it, it treats me pretty good (on Mondays and Thursday of even weeks:)), but in waves, which is weird.

    There is no randomness in this word)

    Upd. Was just going through the old thread on random, and found Traki saying the same, there is no randomness in computing)). That's funny.

    Interestingly enough, there are multiple ways to get something random from the client, like mouse movement for instance. There is just no sense in it as it wouldn't make prng more random. You don't need to reshuffle the deck 1000 times. Sometime it even has an opposite effect.

    Finally, BP has a history of messing things with the drop, the Sargon Armor case. Who knows if there is no other issues.

    For instance, very improbable but just an example - BP is using some dumb PRNG like Math.random from java, with a seed which always starts with the same number. Instance dies and initializes again when server restarts during patch or hotfix. PRNG has predefined table of numbers, with some modification taking into account some constant parameter from the client, like the UserId. Since servers restart at least every three weeks, some users with unlucky ID will never get mortis mask since they just can't kill mortis that many times before the server restart. Even though their lucky number is there, but later.

    Who knows what could be there. Why don't we just ask Greg/Jason/Haruki/Random Dev to look into the code and do some testing? :)

    Another UPD. Just watched the Greg speaking of probability and how it works. That was somewhat uninteligent. As Wizz pointed, for whatever probability x, there is a constant N=a number of runs, that will turn even highly improbably x into a 99.99% drop=guarantee. It is just a question of the number of runs. Of course he might say that X might be very very small, but that would not explain the other players having the drop multiple times then.
     
    Last edited: Sep 28, 2015
    Darwarren likes this.
  13. trakilaki

    trakilaki Living Forum Legend

    Yes there were discussions in the past on this topic.
    And I will say again ... there is no randomness in the computing. Random things only happen in the nature ... the humans are not capable of producing true randomness.

    https://board-en.drakensang.com/threads/random-drops.55287/
    https://board-en.drakensang.com/threads/pollen-from-everlasting-fairy-lilies.60933/
     
  14. sebastian_fl

    sebastian_fl Count Count

    Yes, I have just said the same in the previous post and also found your similar statement. You have performed quite a lot of research on this topic, or at least have eventual observations. Plus you are here for years, you PVE a lot alone and with your buddies, and finally you run drasa wiki, read all the comments. I'm sure you should have something to say on the subject, besides above. Any useful observations on the unbelievable series of something happening and not happening with the same something? :)
     
  15. trakilaki

    trakilaki Living Forum Legend

    Yes i do have something to say ... in fact a lot to say ... but tomorrow. I am heading to bed right now . zzzzzzzzzzzzzzzzzzzz
     
  16. Silentmist

    Silentmist Junior Expert

    Speaking of khalis, i've never seen 3 drops in a row but i have seen a lot of 100 kills without drops. Why do you think that the chances for those events are close? They are not, that's why they can't fit your own deck. Let's say i've killed khalis 2000 times, i would say that more or less there were 5 'unlucky' runs for me (with 100 kills and no drops). We had 20 occurencies of 100 kills, and 5 were negative, that means that the unlucky run had 25% chance to happen.

    3 drops in a row means 666 occurencies, but i'm sure i've never seen anyone dropping 3 uniques in a row, in a party of 5 it makes 666*5 occurencies. So the chances are less than 1/3330.

    The deck is easier to build now ;)
     
  17. sebastian_fl

    sebastian_fl Count Count

    Aces was an example. But I have had 3 Mortis amulets out of 4 runs, and more than 10 in 1 day :) anyway, the khalys. I have had at least 6 masks in 50 runs once. I have also had a series of 300 runs with no drop. No fair deck here.

    Now, I have done 700+ M2 runs since r155, any God knows how many prior to that. I'm yet to see a single unique item there, even Roshan which I had 3-4 sets already from other maps. I know I don't kill all the mobs, but that is still a big number, if we count all the mobs surrounding knights.

    My point is, there is a feeling that something is wrong, weird, and I would appreciate Dev attention to it, proper testing and also BP representative not telling nonsense about probabilities on twitch.

    I would even test it myself, and involve few other pals. Hey, Dev, please expose API of your improbalizer, I'm sure you know black box hack of it is impossible unless it's java)
     
    Last edited: Sep 28, 2015
  18. Silentmist

    Silentmist Junior Expert

    Random doesn't mean fair, it was one of the point of my first example.

    If you want something 'fair' you need high drop chances or a huge number of kills compared to the drop rate. No one is complaining for the legends drop rate of balor cause it's close to 100%, and that's the same random generator.
     
  19. Excalibur1974

    Excalibur1974 Junior Expert

    All the showed maths are indeed exact, but clearly all drops follow some kind of 2nd (and maybe n-) modulations, leading to the "waves" perception.

    Till now, one can guess the following variables to drive the modulation:
    - time rest since last login (fresh login since 2 weeks -> better drops)
    - team composition (different drops percent. classes when there's high different of PG lvls in groups)
    - dmg kill contribution (quick and fast boss kill, better drop)
    - (reversed) kill contribution (ever noticed it, if you don't shoot/touch a boss at all while all others kill him?)
    - set unique usefulness (for yachak/roshan/keen/sparks above all: do you collect 2 out of 3? So wait eons of time before you get 3rd, in the meantime only the items you already got will -rarely- drop)

    All above are some examples, and all are only some kind of 'urban legends' ... or not? BP only knows :D

    If you have some other guessed 'modulation variables', please feel free to add to my guess list. It can be at least funny to check.
     
    sebastian_fl and Darwarren like this.
  20. sebastian_fl

    sebastian_fl Count Count

    I am with you on the huge number requirement for the low probability events. That is clear. That is why I am not talking about the Legendary Kings Armor, as there is not enough data. I'm also not talking about mortis mask, as probability is also pretty low. But there are certain events with pretty reasonable probability, 1% - 20%. Mortis amulet, Khalys mask, Herald unique, Arachna unique, jullov on then map, golden chest on the map etc. The data requirement here is much lower, and we could build hypothesis.

    And again, you might be right, and everything might be fine. But are you against of request to Dev to check things out just in case?

    Perhaps some probabilities should be fine tuned, so then cumulative chance of getting something is reasonable in a reasonable amount of runs, up to a Dev/Game Designer perception of what is reasonable, and also some intensive integration testing of the matter to validate the function is acting to produce the intended cumulative probability.

    That's all I ask.
     
Thread Status:
Not open for further replies.