View Full Version : random loot
i'm sure i'm not the only 1 to do 5000 rb's and never get a wt. this doesn't feel very random. if drop rate is 2% that doesn't mean i'll get 2 wt's every 100 rb's. its still 2% per adv, my maths aint gr8 but I think that means the drop rate actually diminishes over 100 rb's to .02%, if adv's taken as a whole. In real terms, u do 100 rb's and still only have a 2% chance to get 1 wt.
Would a system that raises the chance of getting a wt everytime u fail work better? say every 10 rb's, with no wt in loot, the chance rises by another 2%. up to a maximum of 20%. then reset when u win a wt. This could be applied to all slots so as to mix the loot up a bit more if necessary.
along with all the other info kept about players on servers I don't think tracking loot % would mean much more load.
Yes your right about your maths. Even a year after your suggestion is implemented we would still see the same situation as we see now with some who appear to get WT at the drop of the hat and others who would see none.
i'm sure i'm not the only 1 to do 5000 rb's and never get a wt. this doesn't feel very random. if drop rate is 2% that doesn't mean i'll get 2 wt's every 100 rb's. its still 2% per adv, my maths aint gr8 but I think that means the drop rate actually diminishes over 100 rb's to .02%, if adv's taken as a whole. In real terms, u do 100 rb's and still only have a 2% chance to get 1 wt.
Seriously? Again? The complete lack of understanding how probabilities and random works. There have been so many posts on this I can't believe there is still confusion.
Past history has absolutely no relevance on a chance going forward. 2% does NOT mean you will get 2 in every 100. As I posted elsewhere if I have flipped a coin 9,999 times and each time it was heads my chance of flipping heads again is 50%. How many times it has (or has not) worked before doesn't matter. Each chance is independent.
With the assumption (yes, it has to be an assumption since I can't read the code) that there is some chance of getting the drop you want then eventually it will happen - as the repetitions approach infinity the odds increase but they will NEVER be 100%
*groan*
Perhaps I should just give up on explaining it and let people complain that the game isn't 'fair' to them.
One more note - the wife has gotten 3 rare building drops. I have gotten none. That's just the way it goes.
lordloocan
08.08.16, 11:55
Whilst the chance of getting the head is still 50/50 individually the cumulative probability of them all being heads is the issue. And that is what is causing the concern re drops.
lol I don't even know what to say to xibors post, except maybe I don't understand it. so let's put the maths aside...
would it be a good idea to increment the drop rate if you don't have any luck with buildings etc?
OK lets see if we can explain it to you with out using maths.
If you do it for one building you have to do it for all buildings, this leaves us with our first problem namely non-tradable buildings.
The second problem is if you do it for the building loot slots then players are going to want it for all loot slots where there is a chance of no loot. To counter balance this your are going to have to add a resource sink for those resources otherwise they lose their in-game value.
The next problem is where your idea falls flat on it's face, that being players are going to demand it applies to all loot slots, this will have the opposite result as it will lead to a situation where the chance of getting a desirable resource like granite or grout drops.
The next problem is where you have a chance of a building or a decoration or nothing. Using the system you suggest could result in the decoration getting priority over the building until that decoration drops with the end result being a lessening of building drop rates.
Whilst the chance of getting the head is still 50/50 individually the cumulative probability of them all being heads is the issue. And that is what is causing the concern re drops.
I surrender - there's no point in trying anymore
Whilst the chance of getting the head is still 50/50 individually the cumulative probability of them all being heads is the issue. And that is what is causing the concern re drops.
It's not cumulative.
Allow me to explain using a game most players may know, Monopoly. It's mid game and we have 4 players playing the game. You see your best hope of winning is to throw doubles to avoid landing on the other players properties. After 12 rounds you have failed to throw your doubles, would you be right to expect you should have done it twice. No such thinking would be wrong, because those 12 rounds consist of 48 throws of the dice and they have come up double 9 times which is once more than the average you would expect, it's just that the doubles have come up for the other 3 players.
Settlers is a bit more complicated than that for two reasons. First you have more players. Secondly and this is the most important bit you are getting more rolls than you think and you are getting the result you want from them.
You get a RB lootdrop, no WT. You decide to run another one. While waiting for your gens to arrive you have some geo's and explorers to send out, if skilled or lucky the will each use one or more rolls, some of which will give you the result your after. Once you start fighting again your using rolls and again some will give you the results your after. Finally the adventure is done and your ready to open the loot mail. From the 1st loot mail to the second you will have used between 20-60+ rolls totalling a lot of wins some giving bigger depo's, some giving free buffs, res or guild coins, some resulting in less troops lost.
Now multiply all that by all the players on the server. It don't change the odds of a WT drop but for any given player the only safe assumption is your not going to get one but somebody else will. It's not a 2% chance of winning a WT it's a 98% chance of not getting one including a 80% chance of nothing. You may as well ask your self when you get something from that lootslot are you getting statues 90% of the time.
As I posted elsewhere if I have flipped a coin 9,999 times and each time it was heads my chance of flipping heads again is 50%. How many times it has (or has not) worked before doesn't matter. Each chance is independent.
You're missing the point. It's not about the 50/50.
It's about: what is the chance of getting heads 10 times in a row? Or 9.999 times.
You're missing the point. It's not about the 50/50.
It's about: what is the chance of getting heads 10 times in a row? Or 9.999 times.
And your missing the point, it's not just you flipping coins.
And your missing the point, it's not just you flipping coins.
And you assume every roll is unique for each and every result..
Just take a look at how geo's are working nowadays.. There you may get results within seconds from removing to finding at same spot - conclussion, result from that search did not come from an unique roll.
lol I don't even know what to say to xibors post, except maybe I don't understand it. so let's put the maths aside...
would it be a good idea to increment the drop rate if you don't have any luck with buildings etc?
My suggestion (http://forum.thesettlersonline.com/threads/33449-Feedback-Summer-Edition-Dev-Blog?p=317142&viewfull=1#post317142) about this.
So, adventure loot still need to be adjusted, but BB devs are way lost to make it happen. Though it wouldn't be that hard to "get the framework right"..
Start with..
Introduce a new non-tradeable adventure currency, eg Skulls, usable to increase drop chance of special loot.
Let every adventure have a "special loot slot" containing either something "special" (a buff, building or follow-up adventure) or some (amount depending on adventure difficulty) Skulls.
That way a rubbish drop chance" doesn't have to be that rubbish every time (but I don't think it should be possible to gain a 100% special drop chance this way - more likely 30%-ish at most).
Let's say every drop chance boost would have a Skull cost equally to adventure difficulty and, to get maximum boost, needed to be spent that many times equally to adventure difficulty.
That would ATM (still need some tweakings) make..
VLT having a Skull drop of 8, a drop chance boost cost at 8 Skulls per tier and a total cost at 64 Skulls (8 Skulls x 8 tiers);
..while..
WotS would get a Skull drop of 3, a drop chance boost cost at 3 Skulls per tier and a total cost at 9 Skulls (3 Skulls x 3 tiers).
And you assume every roll is unique for each and every result..
Just take a look at how geo's are working nowadays.. There you may get results within seconds from removing to finding at same spot - conclussion, result from that search did not come from an unique roll.
Pity the evidence shows otherwise, If they worked the way you say they do then you would find your guildmates and yourself would be getting exactly the same loot drops for every adventure you shared lootspots with. The simple fact is even way back 35 years ago computers were generating 50-60 random numbers a second, todays systems with multi cores running 1000's of times faster have no problem generating a new roll every time a players gameplay calls for one.
Pity the evidence shows otherwise, If they worked the way you say they do then you would find your guildmates and yourself would be getting exactly the same loot drops for every adventure you shared lootspots with.
Pity your knowledge flaws again. Final outcome depends on the formula and random generated numbers are seldom the only variables there. If you'd paid some (more) attention to how geo's are working nowadays (compared to just a year ago) you'd see how predictable some outcome could be (depending on timeframe et c).
The simple fact is even way back 35 years ago computers were generating 50-60 random numbers a second, todays systems with multi cores running 1000's of times faster have no problem generating a new roll every time a players gameplay calls for one.
Still, it's much faster to use pregenerated numbers instead of calling for a new one for each and every.
Geologist finding a deposit has nothing to do with chance. They will find a deposit if they can. The geologists skills are another thing.
With a little help of network monitoring with Chrome developer tools we can find out that the game servers use Java as a programming language (at least in the web interface) and with my limited knowledge of Java I could presume that the server code uses the standard (and easiest) java.util.Random (https://docs.oracle.com/javase/7/docs/api/java/util/Random.html) class to provide all the random number that are needed for the game. Of course this class doesn't provide "pure" random numbers but it is used to generate a stream of pseudorandom numbers using a 48-bit seed.
My knowledge of pseudo random number generator is very limited so I can't say if that generator is good or not and also it depends how it's used and that we can't tell without seeing the source code of the servers.
When you are talking about the chance of getting a certain amount of successful loot from a specific amount of trials (10 heads from 15 toss) you are talking about Binomial distribution. (https://en.wikipedia.org/wiki/Binomial_distribution) It calculates the probability of drawing a certain number of successes (or a maximum number of successes) in a certain number of tries, given a population of a certain size containing a certain number of successes, with replacement of draws (Google sheets function is BINOMDIST(num_successes; num_trials; prob_success; cumulative))
I did some testing. This is not to show how loots are generated but to show how the java.util.Random works. The two codes use java.util.Random to provide a double value between 0.0 and 1.0. The random number generator is created for each number separately to more accurately simulate the usage in distributed environment.
The first code uses the default constructor Random() that sets the seed of the random number generator to a value very likely to be distinct from any other invocation of this constructor. the other code uses the system time millis (the current system time in milliseconds) as a seed.
Testing with these the first code (with Random()) I get less than 0.03 from the prng in 1-200 tries but with the other code that uses the system time millis the code it takes 1-500000 (and more) tries. The problem with the second one is that the code is run so fast that the prng is given the same seed making it to repeat the same numbers it generates.
This shows that with bad design the random number generator(s) can be made to generate non-random numbers.
This is how to run the code (you need Java SDK) to find how many tries it take to get random number between 0.0 (inclusive) and 1.0 (exclusive) that is less than 0.03 (so to get 3 or less from 100)
javac Random_test.java
java Random_test 0.03
import java.util.Random;
public class Random_test {
public static void main(String[] args){
int loop=0;
double search = Double.parseDouble(args[0]);
boolean not_found = true;
while (not_found){
Random prng = new Random();
double num = prng.nextDouble();
System.out.println(num);
loop++;
if (num<search)
not_found = false;
}
System.out.println(loop+" iterations");
}
}
import java.util.Random;
public class Random_test {
public static void main(String[] args){
int loop=0;
double search = Double.parseDouble(args[0]);
boolean not_found = true;
while (not_found){
long millis = java.lang.System.currentTimeMillis();
System.out.println(millis);
Random prng = new Random(millis);
double num = prng.nextDouble();
System.out.println(num);
loop++;
if (num<search)
not_found = false;
}
System.out.println(loop+" iterations");
}
}
I won't quote the entire post Durin_d but nice work - you write nice looking code. On the second one yes - that would happen on a fast processor, but I'm surprised the milliseconds don't change for 50,000+ loops. That's a really fast processor.
At any rate, I never reset the seed before each request. I usually coded so that it was done periodically - in this game I would suggest when the player logs in, or perhaps at 00:00 +- a random variable perhaps in case they are the type that stay logged in all the time. Regardless, you are correct that there is no way to know what code base they are using and while it's java / java script for the browser interface the actually code running on the server could be just about anything. I suspect C# or C++, but that's just a guess.
Cheers for the research - I find probability theory and game mechanics interesting if anyone hadn't noticed ;)
in this game I would suggest when the player logs in
If the login time is used to seed the prng it could lead to a situation where the player logs in at the same time every day and the same seed is used every time and the same numbers would be generated. Ofc this would depend on how accurate time is used for the seed.
My guess is that the prng is created separately every time it's needed i.e. when the loot is generated, or specialist skills are used.
I was surprised that the basic Random() constructor worked as well as it did. The OpenJDK that I used has implemented a good way to generate the seed value.
If the login time is used to seed the prng it could lead to a situation where the player logs in at the same time every day and the same seed is used every time and the same numbers would be generated. Ofc this would depend on how accurate time is used for the seed.
Agreed but I would assume at least milliseconds would be used (kind of standard) and the odds (pun intended) of hitting that same number each day are astronomical. If they use something like minutes then that could indeed produce a pattern for you. But then to see the same results you would have to do the exact same things (that would use random events) each day in the exact same order which I also think is very unlikely.
I do wonder about their prng. I've sent my explorers and have had pairs of identical results. Down to Luckies bringing the same random buff.
I do wonder about their prng. I've sent my explorers and have had pairs of identical results. Down to Luckies bringing the same random buff.
One of mind has a propensity for Fermentation Accelerators which I don't mind at all :)
(he brings other stuff too, I don't sense any pattern). And I send two Lucky Explorers both out for prolonged search every time they are home and always at the same time and what they bring back is highly variable.
But then to see the same results you would have to do the exact same things (that would use random events) each day in the exact same order which I also think is very unlikely.
I didnt read the entire discussion but if you consider weighed loottables (which I believe is how its usually done) like :
(pseudocode)
r = random(100)
if ( 1 < r < 30 ) {
granite()
} else {
exotic_wood()
}
then :
a) whether or not the underlying prng coming from the SDK is reliable might not be that relevant for the end result (because the result is controlled by hand-made logic)
b) having the same end result does not necesarily indicate (or require) the same prng result
a) whether or not the underlying prng coming from the SDK is reliable might not be that relevant for the end result (because the result is controlled by hand-made logic)
b) having the same end result does not necesarily indicate (or require) the same prng result
a) The problem here is that the prng has to generate numbers with equal distribution which some prng algorithms has problems with. If the prng gives more often numbers between 10-20 than 40-50 then your code would not give 28% chance for granite and 72% for exotic wood.
b) No it doesn't. But like in the answer to a) the prng has to have equal distribution of values.
Example description from java.Math.Random(): "Returns a double value with a positive sign, greater than or equal to 0.0 and less than 1.0. Returned values are chosen pseudorandomly with (approximately) uniform distribution from that range."
a) The problem here is that the prng has to generate numbers with equal distribution which some prng algorithms has problems with. If the prng gives more often numbers between 10-20 than 40-50 then your code would not give 28% chance for granite and 72% for exotic wood.
b) No it doesn't. But like in the answer to a) the prng has to have equal distribution of values.
Example description from java.Math.Random(): "Returns a double value with a positive sign, greater than or equal to 0.0 and less than 1.0. Returned values are chosen pseudorandomly with (approximately) uniform distribution from that range."
Again - it's nice hearing from someone who is familiar with code.
The example description is excellent. 1) pseudorandom and approximately being the key phrases.
Just accept it folks - you may think you are perceiving a pattern but our life spans and pathetic attempts at keeping records will never be enough to establish an actual pattern. To evaluate a random generator properly takes millions of repetitions before you even have a clue. A person might think they've done a huge number of adventures but in a probability sense you really haven't done much at all. You are just counting red lights. (it's been proven that a person can quite accurately remember how many red lights they encountered on their trip from work to home but have no idea how many green lights they went through).
Everything in my experience has told me that (pseudo) random number generators are just as good as rolling dice. Perhaps even better. I trust the code is not 'rigged' in any way and we just get on a bad roll (excuse the pun) from time to time.
Btw - I have played at least 100 stealing from the rich (it's one of my favorites because I don't have to think too hard) and I always give Diwata the loot spot and we have never gotten the white castle which percentage-wise should have happened by now. But I don't worry about it - it's just luck. Sooner or later if I keep it up it MIGHT happen...
Areop-Enap
15.08.16, 01:36
Btw - I have played at least 100 stealing from the rich (it's one of my favorites because I don't have to think too hard) and I always give Diwata the loot spot and we have never gotten the white castle which percentage-wise should have happened by now. But I don't worry about it - it's just luck. Sooner or later if I keep it up it MIGHT happen...
If you want a white castle, try play the co op Lakeside. I have never gotten a white castle from SFTR either, but gotten 2 from Lakeside and haven't even played nearly as many of them as SFTR which I played almost religiously in the late thirties/early fourties. Could be just luck, but somehow doubt it I have a rotten luck with building drops (never once had a dark castle drop from BK despite the many adventures and ls I have done). The wiki does list it as a higher percentage to drop on the co op...take that however you wish.
Anyway, the recruit losses are about the same on both adventures and always nice with variety. :)
If you want a white castle, try play the co op Lakeside. I have never gotten a white castle from SFTR either, but gotten 2 from Lakeside and haven't even played nearly as many of them as SFTR which I played almost religiously in the late thirties/early fourties. Could be just luck, but somehow doubt it I have a rotten luck with building drops (never once had a dark castle drop from BK despite the many adventures and ls I have done). The wiki does list it as a higher percentage to drop on the co op...take that however you wish.
Anyway, the recruit losses are about the same on both adventures and always nice with variety. :)
Cheers for that. We have played that a couple times but not that often, it might be worth the attempt for her (I promised the first white castle to her if I get one - kind of a present). It's not that we want one that bad, it's just because neither one of us has found one.
But I'm sure it's going to be her - she got a dark castle, witch tower and a angel gate (which somehow I managed to get out of her, part of the reason I owe her) but myself personally I am 56 going on 57 and have never gotten a single building drop. Kinda speaks to the point of the thread in my opinion ;)
TheVictorious
15.08.16, 13:16
In math i think its almost impossible to get no luck with getting 1 hit after number of times, I mean, in simple example, if you flip coin 10 times, you have 50% chance to get head, but the chance to get 0 head is 1/(2^10) so its 1/1024= 0.09765625%
the following example that to calculate chance to get 4 heads at least of 6 times :
http://i.imgur.com/qy3UeIf.png
If you math nerd or a student you may ask a teacher about this, what the chance to get 1 item from a roller after 1000 times, if the chance to get that item is 2/100 ?
If you have chance to get WT like 2/100 so lets say 1/50, the chance to get 0 WT after 5000 times is 1.4124670321394260368352096670161e-8493%, do you mean what this means?
This means 0.(8493 zeros)14% , sure its will never 0 even if you did 1,000,000,000 RBs, but even in atomic level it is absolute 0 chance to get nothing!.
Its independent event yes, but the chance to get at least 1 time after number of times must be counted too but its another issue that single independent event, if you flip a coin 1000 times, the chance to get head each time is still 50% but the chance to get 0 heads in 1000 times !? its not even logical, you must get something almost near 50% heads after those 1000 times, what ever sequence you get like 3 heads then 1 tails, then 2 heads then 5 tails, but the final result must be something around the real percentage.
Finally, I just want to say, I agree totally agree that the percentage of chances to get rare items somehow broken in game, or not real and fake, maybe not for all adventures, but yes.
For me, I played a lot of RBs I got only 1 WT so far, played like 600 BKs and only 1 DC, played a lot of SE, no MSE, hundreds of adventures like Nords and BN got 0 follow up.
To simply the summary, each time you play adventure your chance is only 2% event if you played it 5000 times, but chance to get 0 WT from 5000 times is 0. (imagine you trying to make single independent event from number of independent events).
Thanks for the maths lesson incomplete as it is, it's a pity that as you dive even deeper into probability theory certain underlying mathematical laws kick in. Such as how the chance of repeating your previous result changes.
TheVictorious
15.08.16, 19:28
Thanks for the maths lesson incomplete as it is, it's a pity that as you dive even deeper into probability theory certain underlying mathematical laws kick in. Such as how the chance of repeating your previous result changes.
wait Math 103
Powered by vBulletin™ Version 4.0.4 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.