• Hail Guest!
    We're looking for Community Content Contribuitors to Stratics. If you would like to write articles, fan fiction, do guild or shard event recaps, it's simple. Find out how in this thread: Community Contributions
  • Greetings Guest, Having Login Issues? Check this thread!
  • Hail Guest!,
    Please take a moment to read this post reminding you all of the importance of Account Security.
  • Hail Guest!
    Please read the new announcement concerning the upcoming addition to Stratics. You can find the announcement Here!

Doom drops turn off during the event?

Mr. Smither1

Seasoned Veteran
Stratics Veteran
Stratics Legend
I have went to doom on Atl 2 nights with a group of 8 to 9 other people and no one have gotten a drop in the gauntlet. I know RNG can be bad but doing a total of 7 rounds with 3 dark fathers and 8-9 people I would figured at least one person would get something. Has anyone on ATL gotten a doom drop since the Hythloth event started?
 

egglett

Seasoned Veteran
Stratics Veteran
Stratics Legend
UNLEASHED
My last trip to Doom was 20+ Dark fathers solo. Which was way before this event so I would say no its normal
 

Cupid

Lore Keeper
Supporter
Stratics Veteran
Stratics Legend
UNLEASHED
My last trip to Doom was 20+ Dark fathers solo. Which was way before this event so I would say no its normal
Holy crap batman, and to think I stopped going and fighting in a group due to the constant repairs, you must go through armor the likes of which would make me puke irl, given that gold cost is irrelevant, the effort lol
 

Scott1234

Journeyman
Stratics Veteran
UNLEASHED
Maybe the doom points tracking logic has been repurposed by the hythloth points tracking?
too bad we can’t see our running points in these encounters……
 

The Zog historian

Babbling Loonie
Stratics Veteran
Stratics Legend
UNLEASHED
Maybe the doom points tracking logic has been repurposed by the hythloth points tracking?
too bad we can’t see our running points in these encounters……
Now that's a counter worth putting in to eliminate guessing. And for some of us, to show how badly the RNG is screwed up.
 

gwen

Slightly Crazed
Now that's a counter worth putting in to eliminate guessing. And for some of us, to show how badly the RNG is screwed up.
RNG is ok. You want fast results - go do Blackthorn or Hythloth. You see your points and drops in real time.
Doom drops or tinker legs, or even tangle from Navery are possible to drop on your first run or never. If you need some stuff now, you better just buy it. Do some guaranteed stuff (BT, events, Raising Tide, etc.) sell what you got and use your gold. If you are frustrated every time you kill DF with no drops, do other things. Play game for fun!
 

Fortis

Sage
Stratics Veteran
RNG is ok. You want fast results - go do Blackthorn or Hythloth. You see your points and drops in real time.
Doom drops or tinker legs, or even tangle from Navery are possible to drop on your first run or never. If you need some stuff now, you better just buy it. Do some guaranteed stuff (BT, events, Raising Tide, etc.) sell what you got and use your gold. If you are frustrated every time you kill DF with no drops, do other things. Play game for fun!
doom is like many others now you accumulate hidden points to get a drop
 

Mayhem

Adventurer
Stratics Veteran
Stratics Legend
doom is like many others now you accumulate hidden points to get a drop
Right, but since pub 96 the drop that those points are going to isn't necessarily a Doom Arti, it could be something like a Major.
 
Last edited:

gwen

Slightly Crazed
doom is like many others now you accumulate hidden points to get a drop
I know. But after you accumulate them you can get a drop you don't need. This is why I choose other content. Where I can see those "points", and pick reward I need. I don't do Doom just because of this. Like I don't do Cora or Navery anymore.
This of course increase value of doom artifacts people really need.
 

The Zog historian

Babbling Loonie
Stratics Veteran
Stratics Legend
UNLEASHED
RNG is ok.
You clearly haven't played the game long enough to know that it's been broken since probably day one. If you want a simple test of its non-random generation, get Axem to offer you the quest 100 times, and pay attention to the streakiness. Imbue the same property 100 times, something with a 20% or 30% chance, and see how many times it can fail in a row. Not statistically impossible, but highly improbable, and absurd for something supposed to be random.

All these years, and we've never once had a dev participate in a definitive discussion of the RNG. The closest I ever came was someone in '99 trying to tell me that streakiness for me is because others are having streakiness in the opposite result. That's just ignorant of mathematical probability. My odds of winning the lotto or rolling Yahtzee don't depend on how many others play.

dt011025.gif

You want fast results - go do Blackthorn or Hythloth. You see your points and drops in real time.
Actually it's Hythloth that I'm talking about. Deceit worked pretty well because there was the guaranteed threshold at the time. Whenever the threshold was removed, that was just double-downed stupid. It was stupid as a matter of game design, and stupid because of the effort to undo something good.

Doom drops or tinker legs, or even tangle from Navery are possible to drop on your first run or never.
Of course, that's the nature of something being truly random. But when enough events occur, the various probabilities should be what's programmed.

Did you see the other thread where I mentioned my old 8-bit maze game? Back then it was easy to get numbers generated effectively randomly, based on a "seed" itself based on the internal clock's jiffy count when the player hit the maze. You'd have to reset the computer and then generate the maze at exactly the same jiffy count to get the same set of generated numbers, meaning it would never happen. All these years later, UO doesn't have even that assurance of randomness.

One night I "felt lucky" about going to Navrey. Scientifically speaking, having a "feeling" is ridiculous, but I got a Tangle. Other times I can "feel lucky" and not even get Night Eyes across 10 attempts. Navrey is a slower event, so that's harder to quantify, but there are plenty of other events we can look to to test the RNG.

If you need some stuff now, you better just buy it.
That's a cop-out, on top of it not being a matter of "now." It's a matter of people putting in the same time, often more, with the same character, killing the same spawn, as much spawn if not more spawn, and not getting the same results. That's an RNG problem.

Do some guaranteed stuff (BT, events, Raising Tide, etc.) sell what you got and use your gold. If you are frustrated every time you kill DF with no drops, do other things.
I'll clarify that I'm not even talking about Doom (haven't gone there in years), but the RNG in general. Now why should there be anything "guaranteed" if the randomness should be actually random given enough time? The devs put in the guaranteed drop algorithm for the Tokuno event return because they knew, knew, that the randomness is messed up.

Play game for fun!
That's just the thing, the game is not fun when it isn't working the way it should. Half of it is Dev team stupidity in what they should know, the other half is that they're mostly in coast mode and don't care enough.

They're the ones who put in a new event that is supposed to be fun, they're the ones who changed something for the better but then took it away (I have never heard of a single player who complained about the guaranteed drop threshold), so it's their responsibility to make sure it works.
 

gwen

Slightly Crazed
@The Zog historian
first important for me is RNG is same for everyone so we are all equal
About random generation and statistics I am not agree with you. Example : I am hunting pirates. When I needed or ship most, I had 40+ parts but no part 2 and only one part 8
Once I got that missing part, I continue making ships. Because of that streak I am low on part 2 till now. This is totally normal.
First I faced what you call unfair playing Lineage. I wanted some bow, as I recall. I was hunting boss, but never got drop. Also devs (adding to RNG) made it possible to craft it. With some huge quantity of ingredients. So that thing was powerful but expensive. Hard to get, buy or craft. Cuz everyone wanted it. Same with all drops we desire in UO. Ones everyone need are expensive. Ones with little use are cheap.
Another example is champion spawn scrolls. Game don't care which ones you need. You have equal chance to get 120 tactic or 120 stealing.

In Hythloth we have some hidden score pool, I believe. Also each next mob after you got drop gives you chance to get drop. Sometimes you get it right after one another. I have fun in this event. If you don't just do something else. Crafters make fortune. Demon claws price skyrocketed, Poor players getting their first 100s mil. Spending them on stuff they were usable to afford.

On ATL I am getting pretty bad results, because of my slow connection. Hard to hit mobs. I run slow. But I play on ATL too. Knowing some players will get way more drops. It is not equal opportunity event rewarding your participation or logging in. We just got our EqOp gift tokens recently. Enough. Kill more mobs, get lucky to be in full room first , don't die too often =>get more drops.
 

Anon McDougle

Grand Inquisitor
Stratics Veteran
UNLEASHED
I could point out that my gargoyle cant be in room first because I'd take full damage vs the swampy damage reduction you're dealing with so 3 60 point attack hits me 180 you for 36 less so you stay alive and I'm dead ...
 

gwen

Slightly Crazed
I could point out that my gargoyle cant be in room first because I'd take full damage vs the swampy damage reduction you're dealing with so 3 60 point attack hits me 180 you for 36 less so you stay alive and I'm dead ...
My garg was getting 60 point attacks first during WF event.
After using refinements damage became lower. Now I Hythloth with peace buff I get further -27% damage.

On shard where I am poor, my sampire using purchased horses (not bonded) and no refinements. Was hard but I made talisman and SSI epps. Just run away from para dogs. Or run toward them to use feint (daisho) and evasion. Both work for gargs.
Yeah, I want some swampy for garg too. But learning and searching ways to play with what we do have.
 

The Zog historian

Babbling Loonie
Stratics Veteran
Stratics Legend
UNLEASHED
@The Zog historian
first important for me is RNG is same for everyone so we are all equal
About random generation and statistics I am not agree with you. Example : I am hunting pirates. When I needed or ship most, I had 40+ parts but no part 2 and only one part 8
Once I got that missing part, I continue making ships. Because of that streak I am low on part 2 till now. This is totally normal.
Then you don't know what "random" means. Since you bring up orc ship parts, I've done hundreds of them, and there are a couple I hardly ever get. I get so many multiples that I took to trashing them, instead of trying to sell or trade them.

It's not a matter of what I "need." It's a matter of a lot of events evening out, just like you might flip a coin and get heads ten times in a row (high improbable but still statistically possible), but over 100 or 1000 flips the probabilities will even out. That's what's called true randomness.

Do you even understand that Dilbert comic?

Like I challenged, go get the Axem quest 100 times, or imbue the same 25% chance property 100 times.

First I faced what you call unfair playing Lineage. I wanted some bow, as I recall. I was hunting boss, but never got drop. Also devs (adding to RNG) made it possible to craft it. With some huge quantity of ingredients. So that thing was powerful but expensive. Hard to get, buy or craft. Cuz everyone wanted it. Same with all drops we desire in UO. Ones everyone need are expensive. Ones with little use are cheap.
I don't know if that other game is truly random, but that's my point all along: it's very easy for a programmer to say, "Hey, here's how I do it, here's the tiny percentage chance you have of a drop." I don't think the current UO devs even know where it is in the code. We may not have had devs for 20 years who understand how the RNG code is supposed to work.

Another example is champion spawn scrolls. Game don't care which ones you need. You have equal chance to get 120 tactic or 120 stealing.
Duh. Do you in fact understand what random means, do you understand what I am talking about?

In Hythloth we have some hidden score pool, I believe.
That's what some of us have already been talking about.: is it true, or isn't it, that the Devs turned off the guaranteed threshold drop.

Also each next mob after you got drop gives you chance to get drop. Sometimes you get it right after one another.
Which can be random, like someone winning a lotto twice, but certain drop rates in UO are sometimes so poor that there's clearly something wrong with the RNG.

Like I said: why should there be anything "guaranteed" if the randomness should be actually random given enough time? The devs put in the guaranteed drop algorithm for the Tokuno event return because they knew, knew, that the randomness is messed up.

I have fun in this event.
Well bully for you. That's just great to hear.

If you don't just do something else.
I have six accounts. Only one is active right now, and it's going bye-bye in another week. Then I'll just be doing 90 days/30 days for a few accounts to keep houses active.

Now multiply me by 1000 other players who'd keep just one account active every month, if only the game were worthwhile. That's a lot of lost revenue because of myopic devs and a producer.

Crafters make fortune. Demon claws price skyrocketed, Poor players getting their first 100s mil. Spending them on stuff they were usable to afford.
I've kept all the claws for myself because they're more valuable to me for future use. I craft for myself. I'm not a merchant and don't spend time making things for others, except the occasional friend. When a dungeon event hits, I initially do a big grind while drop prices are high, to make another 500 mil or so for scroll money.

On ATL I am getting pretty bad results, because of my slow connection. Hard to hit mobs. I run slow. But I play on ATL too. Knowing some players will get way more drops. It is not equal opportunity event rewarding your participation or logging in. We just got our EqOp gift tokens recently. Enough. Kill more mobs, get lucky to be in full room first , don't die too often =>get more drops.
I actually get drops just as frequently on Atl as anywhere else, go figure.
 

railshot

Slightly Crazed
Stratics Veteran
Stratics Legend
UNLEASHED
All these years, and we've never once had a dev participate in a definitive discussion of the RNG.
Oh they discussed it plenty. It's just like they "could not duplicate" the EC corpse ghosting bug for 10 years, they keep lying that the RNG is working just fine, and it's your perception that is off. Here's the problem with this team - they make year-long release schedules, probably meant to please Mesanna's bosses. What is missing from those schedules is adequate time to fix bugs, both new and old. Bug fixing does not look nearly as good on the annual report as another publish release, so the amateur running the show simply does not include it. If you have not noticed the oft-repeated pattern, here's a convenient diagram:
 

Attachments

Last edited:

gwen

Slightly Crazed
@The Zog historian
No, I don't understand what are you talking about. I see RNG works fine. It flips coin or rol dices every time. No matter what score was at previous roll. This is why we end with lots of some ship plans and in need of some.
What you want is for every roll to be based on some history.
Only thing with %possibility looks flawed to me is ability to cast vampirc embrace having 99% Necro skill. Takes me Max 5-7 tries. But this is in my favour. Nothing to complain.
 

gwen

Slightly Crazed
Screenshot_20211108_155614_cn.wps.moffice_eng.jpg
This is pic of table with random numbers in Excel. =Rand() function. Second column is =if(A1>0.5, 1, 0) . Then summarize each column.
You can play with it yourself. On a pic above I managed to have amount less then 40. Can be above 50. It aims to 50, but hardly can do. And even harder to make both at 50. It will be different each time you refresh page.
If you will make a slice chart how many occurances
=round(Rand() *8, 0) you will see something like situation happening to our ship plans.
 

Stinky Pete

Babbling Loonie
Supporter
Stratics Veteran
UNLEASHED
Seriously, nobody writes their own RNG algorithm. They didn't write it back when UO was coded either. They use a built-in system library. Nobody is going to go through the trouble of making their own when they have existed since the dawn of time. Is it older than today's standards for RNGs? Probably. Is it good enough for the purpose it is being used for? Absolutely. However, there is a way to cause even a modern RNG to have "streaks." I learned about this when I first started coding because I accidentally did it myself. I'll direct you to the stack overflow here:

c# - Random number generator only generating one random number - Stack Overflow

For those who don't understand, I'm not going to explain it. What I can tell you is that it only applies when you call the RNG in tight loops, meaning a section of code being executed multiple times in less than 1 millisecond. I can promise you that this isn't what is happening in this case though because the latency between the client and server makes it almost impossible to execute a function fast enough to cause this issue. I personally think that the issue is just whiney people being whiney people. I have to admit I have seen some weird and very improbable RNG related things in UO but that's the nature of random and you'll never know.
 
Last edited:

Mayhem

Adventurer
Stratics Veteran
Stratics Legend
Draconi discovered that there was something wrong with how the RNG seeded, and was working on a more fair replacement when the EA "let's cut costs fairy" hit back in 2009 and he was laid off to be replaced with someone making less.

While basic testing makes the RNG seem "fair", the scale of normal means of testing (taking hundreds of thousands, or millions, of samples) concealed the real problem.

That problem is that while the curve "looked" right, just looking at the aggregate totals and mean didn't show that there were clumps at all points of the curve during the generation process.

To use an example of 100 numbers 0-9, you'd expect the sample to have 9-11 (maybe an outlier 8 or 12) of each digit scattered randomly through the samples.

Instead, what was happening was something like 3453543453 4566554464 2011011022, etc., to where every digit occurred the "right" number of times, but clumps of similar numbers causing strings of similar results. So, despite having a 55% chance of smelting valorite, you'd get 6 consecutive failures in a short time period (a few seconds) far more often than the roughly 1/120 chance of having 6 such failures in a row. However, you also had an equal chance of benefiting in a similar manner at a later date by having a 55% chance of getting colored ore from a vein (instead of iron), and getting the colored ore 9 times out of 10 digs, when you'd normally expect 5-6 colored ore from digging the spot.

And, it can stretch across characters and accounts from one person, though whether it is interacting with the same NPC playing into it, or if the streaking RNG trigger is in your client or even your PC. There should be about a 2% chance of pulling the same type (ignoring count, color and quality) of Smith BOD - yet in the period before "up to 3 BODs at a time" I had six BOD runners (from 3 different accounts) hit the same NPC over a 5 minute period, and get 3-5 BODS of the SAME ITEM TYPE, only differing in count and quality (and material, if an armor/shield/helm type). And it was happening several times a week. OR, getting a stretch of multiple BODs of a low-chance material (which can be a good thing). The change to BOD pulls lessened the pain to an extent, but coming back with 18 BODs, and finding clumps within the 18 pulls, is still common (18 BODs, but 4 of them are for ringmail sleeves and 3 are for broadswords, for example). Though, getting a stretch clump were you get 5 Valorite BODs out of 18 can be really nice (especially for saving money when needing to bribe).
One of the devs, Draconi, was looking into what was wrong with the RNG many years ago. According to this, he thought he had found an issue and was wroking on it but ended up a victim of a layoff before he could implement a fix...this was also related luck chances...I remember when this was going on and a quick "Draconi RNG" search yielded this and several other threads related to it.
 

Stinky Pete

Babbling Loonie
Supporter
Stratics Veteran
UNLEASHED
One of the devs, Draconi, was looking into what was wrong with the RNG many years ago. According to this, he thought he had found an issue and was wroking on it but ended up a victim of a layoff before he could implement a fix...this was also related luck chances...I remember when this was going on and a quick "Draconi RNG" search yielded this and several other threads related to it.
That does sound exactly like the problem that I ran into years ago and explained in the link that I shared. But, like I said, it needs to be run in tight loops to be noticable and I'm pretty sure Draconi's tests were done that way so he could quickly generate the data points to analyze it. We may be on to something here for sure, but the fact that the numbers are generated server-side and none of us have a fast enough ping to run a loop that tight, even from a 3rd party program, it seems unlikely to cause an issue even if the code is technically bad.
 

Stinky Pete

Babbling Loonie
Supporter
Stratics Veteran
UNLEASHED
So I took the time to run some tests on my own machine here:

Here is a bad RNG just like the one mentioned in the post I linked earlier:
1636393330433.png
Output:
1636393392402.png
You can clearly see that something is wrong, as the numbers often repeat themselves. Probably too often.

Here's what happens when I pause for just 50ms after I generate a number to simulate ping time.
1636394095984.png
Output:
1636394135484.png
As you can see, it's much better, I wouldn't use it in production code of course, but still much better.

And here is an example of a good RNG just for control:
1636394478995.png
Output:
1636394511817.png
 

Scott1234

Journeyman
Stratics Veteran
UNLEASHED
anything that relies on sleep to fix an issue is flawed, probably. Rng outputs related to time are usually flawed too.
 

Stinky Pete

Babbling Loonie
Supporter
Stratics Veteran
UNLEASHED
anything that relies on sleep to fix an issue is flawed, probably. Rng outputs related to time are usually flawed too.
I wasn't trying to fix an issue, I was simulating ping time as you can't call that function fast enough using your client to cause the issue in the first example. The issue is definitely not "fixed" in the second example by any means.

I understand what you are saying about time-based RNG, and you're right, but for practical purposes it works fine. When you absolutely need a number to be truly random, time-based RNGs aren't going to do it, you need specialty hardware though, and it is expensive. A lot of places opt to use an API to a machine that has that hardware at the cost of speed. I can assure you though that pretty much any game is generating random numbers using a time-based algorithm because it's "good enough."
 

gwen

Slightly Crazed
@Stinky Pete
I really don't understand how this can affect something in-game? I was never able to do 2 Yukio quests in less than 50 milliseconds. Or kill 2 pirates.
Killing mongbats may be. Ok. Our mongbat loot flawed. Where is the problem ?
you got more "same" occurances, but it also can be winning one.
 

Stinky Pete

Babbling Loonie
Supporter
Stratics Veteran
UNLEASHED
@Stinky Pete
I really don't understand how this can affect something in-game? I was never able to do 2 Yukio quests in less than 50 milliseconds. Or kill 2 pirates.
Killing mongbats may be. Ok. Our mongbat loot flawed. Where is the problem ?
you got more "same" occurances, but it also can be winning one.
Exactly. But it does show that Draconi likely did find a problem with the RNG, but it also likely doesn't have any real effect on the game.
 

Basara

UO Forum Moderator
Moderator
Professional
Governor
Stratics Veteran
Stratics Legend
Wiki Moderator
UNLEASHED
Campaign Supporter
Exactly. But it does show that Draconi likely did find a problem with the RNG, but it also likely doesn't have any real effect on the game.
It has the greatest effect in crafting - especially failures - as one can have a string of failures in a short period of time.

Like, failing on 5-8 smelting ore attempts when there should only be a 1/16 chance to fail 4 times in a row. Failing (or succeeding) on several enhance or imbue attempts in a row. And, it's not necessarily short time-period streaking when (as in my ancient example from the quote) 6 GM+ smiths across 3 accounts on one shard go pull SINGLE BODs (this was before the get-3-at-once change) over a 6-10 minute period and end up with 3 of the 6 BODs as the same weapon or armor piece - and have it happen at least once a week.
Since the BOD changes, I had those 6 smiths pull 18 BODs, and end up with 4-5 the same type, occasionally.
I've also had my 5 tailors go out and come back with 5 of 15 BOD pulls as large, when there's only an 8% chance per pull of a BOD to be an LBOD. Then, go a week or two of normal daily BOD pulls without getting a single large Tailor.
 

Stinky Pete

Babbling Loonie
Supporter
Stratics Veteran
UNLEASHED
It has the greatest effect in crafting - especially failures - as one can have a string of failures in a short period of time.

Like, failing on 5-8 smelting ore attempts when there should only be a 1/16 chance to fail 4 times in a row. Failing (or succeeding) on several enhance or imbue attempts in a row. And, it's not necessarily short time-period streaking when (as in my ancient example from the quote) 6 GM+ smiths across 3 accounts on one shard go pull SINGLE BODs (this was before the get-3-at-once change) over a 6-10 minute period and end up with 3 of the 6 BODs as the same weapon or armor piece - and have it happen at least once a week.
Since the BOD changes, I had those 6 smiths pull 18 BODs, and end up with 4-5 the same type, occasionally.
I've also had my 5 tailors go out and come back with 5 of 15 BOD pulls as large, when there's only an 8% chance per pull of a BOD to be an LBOD. Then, go a week or two of normal daily BOD pulls without getting a single large Tailor.
I understand what you're saying and I've definitely seen some pretty improbable things happen, but knowing what I know about random numbers and code, I just can't comprehend how this is possible. I think my example shows how it is possible for Draconi to have come up with his data, because he likely used a loop like I did to generate the data, but I fail to understand how an RNG could come up with streaks of numbers like that over longer periods of time. I'll admit I am not a professor of such things but as I understand it, most RNGs have worked based off of the PC's clock forever aside from the environmental based ones that are not really practical for this application.
It really would be cool to find out and know for sure what they are doing though. I'm definitely not saying it's impossible, I'm just saying that if there's a problem, I don't understand it.
 
Last edited:

gwen

Slightly Crazed
It has the greatest effect in crafting - especially failures - as one can have a string of failures in a short period of time.

Like, failing on 5-8 smelting ore attempts when there should only be a 1/16 chance to fail 4 times in a row. Failing (or succeeding) on several enhance or imbue attempts in a row. And, it's not necessarily short time-period streaking when (as in my ancient example from the quote) 6 GM+ smiths across 3 accounts on one shard go pull SINGLE BODs (this was before the get-3-at-once change) over a 6-10 minute period and end up with 3 of the 6 BODs as the same weapon or armor piece - and have it happen at least once a week.
Since the BOD changes, I had those 6 smiths pull 18 BODs, and end up with 4-5 the same type, occasionally.
I've also had my 5 tailors go out and come back with 5 of 15 BOD pulls as large, when there's only an 8% chance per pull of a BOD to be an LBOD. Then, go a week or two of normal daily BOD pulls without getting a single large Tailor.
If for imbuing Gump shows 10% chance, it doesn't mean you will succeed in your 10th attempt.
It doesn't remember your previous attempt result. Remembering ( if same as last=>reroll) it or have some counter (9 failures=> 1 guaranteed success) will make random less random, lol.
 

Scott1234

Journeyman
Stratics Veteran
UNLEASHED
Bush skill is only 88.7.
I understand what you are saying about time-based RNG, and you're right, but for practical purposes it works fine. When you absolutely need a number to be truly random, time-based RNGs aren't going to do it, you need specialty hardware though, and it is expensive. A lot of places opt to use an API to a machine that has that hardware at the cost of speed.
there is usually some middle ground.

This link here appears to describe some of the root issues and problems: Random

This link seems to perhaps be something not so susceptible: rand_s

What UO uses is an interesting question.
 
Last edited:

railshot

Slightly Crazed
Stratics Veteran
Stratics Legend
UNLEASHED
I have played many an MMO, and UO is the only game where so many players complained about RNG being broken. It's a meme and a butt of jokes by now. I myself experienced streaks that should have an extremely low probability of occurring, yet it happened many times.
 

Draza

Lore Master
Stratics Veteran
UNLEASHED
I belive @Stinky Pete hit it. Remember that 1 server was running the code for everything per shard back in the day. So any peice of loot generated was rolled for, any attempt for spells, crafting ect... for everyone at that moment. Remember how crowded even the quiet shards were back in 2012? Still lots of people.

Now that the shards are hosted elsewhere, not sure how that affects it. May be 1 server for all of UO, running that same rng for everyone.
 

Stinky Pete

Babbling Loonie
Supporter
Stratics Veteran
UNLEASHED
I belive @Stinky Pete hit it. Remember that 1 server was running the code for everything per shard back in the day. So any peice of loot generated was rolled for, any attempt for spells, crafting ect... for everyone at that moment. Remember how crowded even the quiet shards were back in 2012? Still lots of people.

Now that the shards are hosted elsewhere, not sure how that affects it. May be 1 server for all of UO, running that same rng for everyone.
As flattered as I am that someone thinks I'm right about something, I highly doubt that this is the case. Even if all the shards were on one server at one point (they're more likely to be on the same physical machine today than they were years ago), they would each have their own instance of code running. Also, you can see in the example code I provided, the problem comes when you instantiate the RNG multiple times in a millisecond due to the RNGs being seeded the same because they are seeded using a timestamp. My example was to show how Draconi running tests on the RNG could give the results that @Basara mentioned in that old post of his. The truth is that unless someone posts some code, there is no way to tell how random their numbers are, it's best to just assume that it's working as intended.

This link seems to perhaps be something not so susceptible: rand_s
That's C++. My example was C# but I do appreciate it. I have seeded RNGs with a GUID before by calling Random(Guid.NewGuid()) for stateless RNG which essentially achieves the same result as rand_s. Usually the stuff I'm working on doesn't require all that though so Random() works fine for most applications and is a bit faster. You still wouldn't want to instantiate it in a loop like that no matter how you seed it.
 

gwen

Slightly Crazed
So if after 12345678 roof runs somebody will find that killing Virtuebane exactly on 12345678th milisecond results in a little higher chance of Demon Cameo drop, I'll really appreciate that RainMan's efforts.
 

The Zog historian

Babbling Loonie
Stratics Veteran
Stratics Legend
UNLEASHED
Oh they discussed it plenty. It's just like they "could not duplicate" the EC corpse ghosting bug for 10 years, they keep lying that the RNG is working just fine, and it's your perception that is off. Here's the problem with this team - they make year-long release schedules, probably meant to please Mesanna's bosses. What is missing from those schedules is adequate time to fix bugs, both new and old.
Well, that's why I put in the big qualifer "definitive." ;)

Bug fixing does not look nearly as good on the annual report as another publish release, so the amateur running the show simply does not include it. If you have not noticed the oft-repeated pattern, here's a convenient diagram:
It's an unfortunately accurate observation. And they're too myopic to consider how many players would still be playing, but who were driven away by unfixed bugs. How many PvPers lost top suits because of the insurance bug and insurance exploit, how many tamers lost pets, who didn't come back? The broken RNG is a bug that's been there for years, right there for the fixing, but like you said, it doesn't sound as impressive as a new content release. It's like a database vendor I've worked with that is so focused on getting more clients than they lose, that they put too many resources into sales staff instead of development work. The founder got happily bought out, and the new management still doesn't think long-term customers are a good thing. Churn 'em and burn 'em.

I've told the tale before of the horrific bug that ressed you on the spot. My old old old Sonoma friend Harlequin, back in 1999 after the eval changes and the introduction of meditation, had the only 7x mage on Sonoma. That was an astounding achievement, especially before skill locks. One night he dueled someone, lost connection, and came back ressed on the spot with the big penalty to all skills. He didn't quit then and there, and he wasn't even angry as in foaming at the mouth, but of course he was incredibly upset and didn't come back to the game. Later on I lost a 5x mage in almost the same way, trying to click to stay as a ghost but winding up ressed anyway. A dev told me (we were e-mailing) that couldn't reproduce it, "Sorry I cannot help thee." A little while later, the option to res on the spot was removed from the game. I wonder why? Well, the character wasn't my main, and I had enough friends I could still enjoy playing with, so I spent the months retraining off and on. It's unlikely my friend and I had the only two characters among millions of UO characters that lost connection, so how many others were hit the same way?
 

The Zog historian

Babbling Loonie
Stratics Veteran
Stratics Legend
UNLEASHED
Seriously, nobody writes their own RNG algorithm. They didn't write it back when UO was coded either. They use a built-in system library. Nobody is going to go through the trouble of making their own when they have existed since the dawn of time. Is it older than today's standards for RNGs? Probably. Is it good enough for the purpose it is being used for? Absolutely. However, there is a way to cause even a modern RNG to have "streaks." I learned about this when I first started coding because I accidentally did it myself. I'll direct you to the stack overflow here:
However much is their own original code, it's still up to them to fix it, or delete it and go with something else. If they borrowed someone's, what was it, a computer science freshman's code that's flawed?

Years ago, a friend's older brother (an actual "real programmer" even if he did go to work for Microsoft) told us of a neat trick to ensure true random numbers. Throw up an antenna and measure cosmic noise that hits it. It requires electronics with quite a high degree of sensitivity, but it works. There just needs to be no discernable pattern in historical outcomes, and no way to predict future outcomes. UO's team would never bother with that, needless to say, and a computer in and of itself can't produce something truly random, only a number based on how it's told to generate the number. Yet a computer based on human environment certainly can, like PGP generates a secret key based on your keystroke typing. I type over 120 wpm and still do everything a little differently. There can easily be a seed generated (hourly, daily) by how many other player actions have occurred within the last timeframe.

That does sound exactly like the problem that I ran into years ago and explained in the link that I shared. But, like I said, it needs to be run in tight loops to be noticable and I'm pretty sure Draconi's tests were done that way so he could quickly generate the data points to analyze it. We may be on to something here for sure, but the fact that the numbers are generated server-side and none of us have a fast enough ping to run a loop that tight, even from a 3rd party program, it seems unlikely to cause an issue even if the code is technically bad.
Here's what happens when I pause for just 50ms after I generate a number to simulate ping time.

As you can see, it's much better, I wouldn't use it in production code of course, but still much better.
Ping time is irrelevant, or at least it should be. If that's the problem here, that's incredibly stupid, because it's not true randomness.

Even if random numbers were generated client-side for some reason, true randomness doesn't depend on how long you take to roll the dice, or how long you wait between rolls. So if you generated a random number between 0 and 1, whether down to tenths or thousands of millions, it doesn't matter how long an algorithm takes to generate or how long it waits before going again. It could have a pseudo-random wait times built into the algorithm; still wouldn't matter. The probability of hitting a monster in UO or imbuing doesn't matter if I ping 20 or 200, just like the probability of a coin toss doesn't matter if I hear the result after 1 second or hear about it tomorrow.
 

The Zog historian

Babbling Loonie
Stratics Veteran
Stratics Legend
UNLEASHED
No, I don't understand what are you talking about.
Well, that much is clear.

I see RNG works fine. It flips coin or rol dices every time. No matter what score was at previous roll. This is why we end with lots of some ship plans and in need of some.
As some of us have been talking about, it does not work "fine," because the dice aren't rolling in truly random ways.

Ship parts are only what I'm talking about. Do you have a comprehension problem with all the other examples I've listed, from Axem's quest to imbuing?

What you want is for every roll to be based on some history.
Nonsense. I already explained that the problem is with occurrences that should be random but are not. Am I talking to a wall here?

Only thing with %possibility looks flawed to me is ability to cast vampirc embrace having 99% Necro skill. Takes me Max 5-7 tries. But this is in my favour. Nothing to complain.
You're confusing "99% necro skill" with the percentage chance to cast.
 

The Zog historian

Babbling Loonie
Stratics Veteran
Stratics Legend
UNLEASHED
It has the greatest effect in crafting - especially failures - as one can have a string of failures in a short period of time.

Like, failing on 5-8 smelting ore attempts when there should only be a 1/16 chance to fail 4 times in a row. Failing (or succeeding) on several enhance or imbue attempts in a row. And, it's not necessarily short time-period streaking when (as in my ancient example from the quote) 6 GM+ smiths across 3 accounts on one shard go pull SINGLE BODs (this was before the get-3-at-once change) over a 6-10 minute period and end up with 3 of the 6 BODs as the same weapon or armor piece - and have it happen at least once a week.
Since the BOD changes, I had those 6 smiths pull 18 BODs, and end up with 4-5 the same type, occasionally.
I've also had my 5 tailors go out and come back with 5 of 15 BOD pulls as large, when there's only an 8% chance per pull of a BOD to be an LBOD. Then, go a week or two of normal daily BOD pulls without getting a single large Tailor.
All those events are not impossible, but they're highly improbable, and something is not right when it happens so often. That's why I challenge gwen and others to see for themselves, and imbue a property with a 25% chance 100 times. True random number generation doesn't depend on anyone else, or what's happened to you before. That dev I mentioned years ago, who justified the "streakiness," would say that one person rolling 10 Yahtzees in a row is because everyone else isn't. That's not how randomness works.

Refinements. That supposed 15% chance of a 5th mod is more like 5%. It would be a nice test to meet a dev on Test, and count the success rate of 1000 refinements. I'd be willing to put in that time to prove the point. Now, true randomness doesn't mean we'd get exactly 150 successes, but 140 or 160 would be well within the ballpark, while 100 or 200 would mean something's not right. As a very simple example, I generated 100 random numbers between 0 and 1 with LibreOffice's basic RAND function (not using my own seed), for an average of 0.48126555476462. That's just right for 100 events. For 10,000 random numbers, the average was 0.50162789161394.
 

The Zog historian

Babbling Loonie
Stratics Veteran
Stratics Legend
UNLEASHED
If for imbuing Gump shows 10% chance, it doesn't mean you will succeed in your 10th attempt.
No kidding, but that isn't what the rest of us are talking about. Do I have to keep explaining to you the concept of many dice rolls and that that many will show the true randomness of an event?

It doesn't remember your previous attempt result. Remembering ( if same as last=>reroll) it or have some counter (9 failures=> 1 guaranteed success) will make random less random, lol.
Again, that isn't what the rest of us are talking about. And you still haven't answered my question: if there's true randomness in event drops, e.g. Doom and Tokuno, then why did the "guaranteed" threshold have to be put in? Did the devs in fact know there's a problem they can't fix, and put on a Band-Aid?
 

Stinky Pete

Babbling Loonie
Supporter
Stratics Veteran
UNLEASHED
However much is their own original code, it's still up to them to fix it, or delete it and go with something else. If they borrowed someone's, what was it, a computer science freshman's code that's flawed?
Or, they can just say that it's working as intended because it's working as intended whether you like how it works or not.

Years ago, a friend's older brother (an actual "real programmer" even if he did go to work for Microsoft)
Wow! You know an "actual real programmer?" Can I have his autograph?


Even if random numbers were generated client-side for some reason, true randomness doesn't depend on how long you take to roll the dice, or how long you wait between rolls. So if you generated a random number between 0 and 1, whether down to tenths or thousands of millions, it doesn't matter how long an algorithm takes to generate or how long it waits before going again. It could have a pseudo-random wait times built into the algorithm; still wouldn't matter. The probability of hitting a monster in UO or imbuing doesn't matter if I ping 20 or 200, just like the probability of a coin toss doesn't matter if I hear the result after 1 second or hear about it tomorrow.
Who said anything about generating random numbers client-side? As I've said multiple times now, the example I provided was to show how an RNG can generate streaks exactly like the ones that @Basara shared and how changing the speed at which the time-based RNG is possibly being seeded to match actual real-world conditions essentially mitigates the problem, thus making the chances of that being the issue highly unlikely.

If you don't understand it, you can just say that you don't understand it, or you can get your friend's brother's cousin twice removed that used to work at Microsoft or whatever to explain it to you. Better yet, you could just not comment on it at all and go back to complaining about what you think the devs should be fixing while the rest of us enjoy the game.
 

railshot

Slightly Crazed
Stratics Veteran
Stratics Legend
UNLEASHED
Years ago, a friend's older brother (an actual "real programmer" even if he did go to work for Microsoft) told us of a neat trick to ensure true random numbers. Throw up an antenna and measure cosmic noise that hits it. It requires electronics with quite a high degree of sensitivity, but it works.
I think any off-the-shelf pseudo-random number generator like one working off the CPU clock is plenty random for UO purposes. I don't think that them not using a truly random RNG is the problem here. First off, we don't really know if they used a third-party RNG. Yes, it's a common-sense thing to do, but we do know that the original devs did not really follow coding best practices. It is quite possible they cooked up something of their own that is beyond the current team's competence to fix or replace. If they used a standard library for it, given all the complaints, you'd think it would be easy to replace is with another standard library. But they have not done it.

And another consideration. It's quite possible they did use a good third-party RNG that works as intended. It does not mean that whatever transformation the random number needs to undergo before it becomes a tangible result is working as intended. God knows, UO Devs historically took the most torturous convoluted way to the goal possible. Look at the damage formula. It's more complex than Windows Registry, and just like Windows Registry, you can do a PhD thesis on it. Do you really think it's beyond them to pancake the RNG output to the degree that they cannot understand or fix it themselves? I don't.
 

Stinky Pete

Babbling Loonie
Supporter
Stratics Veteran
UNLEASHED
I think any off-the-shelf pseudo-random number generator like one working off the CPU clock is plenty random for UO purposes. I don't think that them not using a truly random RNG is the problem here. First off, we don't really know if they used a third-party RNG. Yes, it's a common-sense thing to do, but we do know that the original devs did not really follow coding best practices. It is quite possible they cooked up something of their own that is beyond the current team's competence to fix or replace. If they used a standard library for it, given all the complaints, you'd think it would be easy to replace is with another standard library. But they have not done it.

And another consideration. It's quite possible they did use a good third-party RNG that works as intended. It does not mean that whatever transformation the random number needs to undergo before it becomes a tangible result is working as intended. God knows, UO Devs historically took the most torturous convoluted way to the goal possible. Look at the damage formula. It's more complex than Windows Registry, and just like Windows Registry, you can do a PhD thesis on it. Do you really think it's beyond them to pancake the RNG output to the degree that they cannot understand or fix it themselves? I don't.
These are all very good points. There's also a very good possibility that that part of the code is contained in a .dll along with a bunch of other stuff and they don't have the source code for it any more. Honestly, it doesn't matter. It's been like it is for almost 25 years now. At this point I would say it's part of the game that sometimes whacky and very improbable things happen, just like irl. So like I said before, working as intended.
 

Basara

UO Forum Moderator
Moderator
Professional
Governor
Stratics Veteran
Stratics Legend
Wiki Moderator
UNLEASHED
Campaign Supporter
As a Math/Computer Science teaching major that had to drop out of college as a senior due to health reasons (with only 3rd/4th year teaching and CS classes between me and a degree), I know how random numbers work.

The problem is that computers use "pseudo-random" generators, not truly random. Back in the Day, Draconi even managed to determine what was being used for UO, and it appeared to be one of the simplest, least-random, PRNG, out there - one that was not only public domain, but also one commonly used for teaching programming of random generators in college (one that I had an assignment for, ironically, but my health issues caused be to have to withdraw from the class before completion). It was one NOT meant for being used in any serious application, but as the first step in teaching them (as a prelude to teaching more complex RNGs). Literally ANY other RNG package for sale (and all others for free) are more complex than the one being used.

The issue apparently lies with what's being used as the seeding process for the subroutine, from what Draconi said in 2009.
 

railshot

Slightly Crazed
Stratics Veteran
Stratics Legend
UNLEASHED
At this point I would say it's part of the game that sometimes whacky and very improbable things happen, just like irl. So like I said before, working as intended.
I disagree. The tortuous grind that was acceptable 20 years ago is less and less so now. This is both because there are plenty of games that found ways to avoid grind or make it fun, as well as all of us are adults that are a lot less tolerant to it. Unfortunately, the current team consciously uses grind as a filler for content. In few and far between cases where accidentally they manage to come up with a mechanic that would provide mostly self-generated content without the monotony, they somehow always manage to step on their own pancake and self-sabotage. So, grind it is. And a wonky RNG makes that grind even less tolerable. When the game starts looking like a dreaded job (monotony with no end in sight), it's a problem.
 

Stinky Pete

Babbling Loonie
Supporter
Stratics Veteran
UNLEASHED
As a Math/Computer Science teaching major that had to drop out of college as a senior due to health reasons (with only 3rd/4th year teaching and CS classes between me and a degree), I know how random numbers work.

The problem is that computers use "pseudo-random" generators, not truly random. Back in the Day, Draconi even managed to determine what was being used for UO, and it appeared to be one of the simplest, least-random, PRNG, out there - one that was not only public domain, but also one commonly used for teaching programming of random generators in college (one that I had an assignment for, ironically, but my health issues caused be to have to withdraw from the class before completion). It was one NOT meant for being used in any serious application, but as the first step in teaching them (as a prelude to teaching more complex RNGs). Literally ANY other RNG package for sale (and all others for free) are more complex than the one being used.

The issue apparently lies with what's being used as the seeding process for the subroutine, from what Draconi said in 2009.
The fact that the RNG is pseudo-random is completely irrelevant though. It's not the lottery, it's a stupid game about wizards and stuff. It doesn't matter if the numbers are truly random or not. Any psudo-random number generator would work fine, even ones not designed for serious applications because despite what half of this forum's users believe, UO is not a serious application.

The seeding process is important. I've already showed how to cause streaks in an RNG by seeding with a timestamp too quickly. I've also explained why that is likely not causing the issue but might still cause the data that Draconi shared to be flawed. I personally think the seeding issue is a red herring caused by how Draconi generated the data. Just a hunch based off of what I know and problems I encountered years ago.

I disagree. The tortuous grind that was acceptable 20 years ago is less and less so now. This is both because there are plenty of games that found ways to avoid grind or make it fun, as well as all of us are adults that are a lot less tolerant to it. Unfortunately, the current team consciously uses grind as a filler for content. In few and far between cases where accidentally they manage to come up with a mechanic that would provide mostly self-generated content without the monotony, they somehow always manage to step on their own pancake and self-sabotage. So, grind it is. And a wonky RNG makes that grind even less tolerable. When the game starts looking like a dreaded job (monotony with no end in sight), it's a problem.
This is a mighty fine opinion. I can't disagree because I don't grind content in games as it bores me to tears. But neither you nor I get to decide what is intended. My opinion is that it's actually kind of neat that improbable stuff happens from time to time... probably way more often than it should. One might say that in itself makes it even more random, maybe not fair, but random.

Thinking about what I just typed... Perhaps it was intentionally coded that way. What if, built inside the RNG, there is another random number generated that decides if something miraculous and highly improbable happens with your next role or several roles? That would make things interesting for sure, and again... working as intended.
 

MalagAste

Belaern d'Zhaunil
Alumni
Stratics Veteran
Stratics Legend
UNLEASHED
Campaign Supporter
The "neat" things about UO have nothing to do with randomness or drops...

Things I find "neat" and unique about UO and that I truly enjoy and love...
Cow Tipping... always worth a grin.
Being able to shear sheep, spin the wool(pick cotton), and make yarn and then use that on a loom... for free... Just go do it. Make your own bandages without any skills needed.
Being able to fill a pitcher... by clicking a cow... again priceless.
Forensics... using that skill to find out... who killed something... who picked a lock... etc... kinda fun.
The ability to really role-play a character... even if they are "a rabbit" ... or "a cat"... fun... can't do that in most other games...
So many things in UO that are just amazing and fun that the average player never would find.

How about when mad cows would attack randomly... for no reason(Not BlackRock infected). I still find that one pretty funny. Haven't noticed it happening recently but I do remember that fondly.

Now that whole Black Rock Infection business still ranks high on my fondest UO Memories list. Calibus hearing voices... was a delight. Blowing myself to bits was also kinda fun.

But anymore I don't feel much like there is a lot of thought placed into events... just flicking a switch while adding some hideously colored crap to the game... and how so many are just griefers... and the grind just has no appeal to me. Even if I want some of the rewards I just can't bring myself to care enough to grind them out. They have lost their meaning...

Once I thought it would be great to be a Knight of all the virtues... but then when I did... the "reward" for doing so... was just not there... and seemed like an empty achievement. Rather disappointing to say the least.
 

railshot

Slightly Crazed
Stratics Veteran
Stratics Legend
UNLEASHED
This is a mighty fine opinion. I can't disagree because I don't grind content in games as it bores me to tears. But neither you nor I get to decide what is intended. My opinion is that it's actually kind of neat that improbable stuff happens from time to time... probably way more often than it should. One might say that in itself makes it even more random, maybe not fair, but random.

Thinking about what I just typed... Perhaps it was intentionally coded that way. What if, built inside the RNG, there is another random number generated that decides if something miraculous and highly improbable happens with your next role or several roles? That would make things interesting for sure, and again... working as intended.
A couple of points:

1) I think it is a real possibility that sometime in 1997 they decided to make the RNG not quite random. It may be working as they intended, but their 20+ year old intentions are irrelevant today.
2) UO can be used as an example of how to take a bad situation and make it worse, repeatedly. Every action was fully intentional, yet here we are. It's truly a miracle the game is still around after some major design decision made at the very top. Something is working as intended is not always good, especially if the person doing the intending is not that bright.
3) Several later generations of devs acknowledged the issue with RNG, so clearly it is not working as intended today.
 
Top