RNG Must Use Pseudo Random Distribution

For those who does not know what shortly it is is;

If something that has a chance to happen keeps “not happening” Its happen probability increases ( vice versa too; if it happens too soon then prob would decrease). This side would be applied skill procs only. Dota 2 started using this

For item drops, if x item dropped already, then its second time drop probability would decrease… So it would be easier to complete sets and duplicate issue many of us having would be solved…

That’s a very interesting idea! Technically all RNGs are pseudo-random, but I get your point and goal.

Seems a little difficult to implement and especially to a mature engine though. It’d generally imply keeping track of a state for every single unique that exists in the database and reducing its weight each time it drops (or a collection of “already-dropped” items that keeps expanding and expanding, generally more costly than a simple per-item state). That’s not actually that much state or computation for our powerful machines today to keep track of even with things dropping left and right (provided the algorithm is better than linear time with respect to every single unique that exists), but just a bit heavy on the developer side to introduce such a mechanic so late into the game.

It also raises some design questions that are solvable but just one of those “drawing board” types that are a bit awkward when you consider what happens in multiplayer. You could solve it like just using the “item-dropped” states of the player who hosted the game, but it’s one of those things where the solution introduces a few additional auxiliary design problems to think about and solve.

On the flip side it does open up some issues where duplicate drops might be desirable in some cases (ex: collecting two of the same weapon for a dual wielder or finding the same unique but with better rolls), though I’d prefer reducing duplicates and making that more difficult over the extent of duplicate unique items I encounter at the moment (I got 6 freaking Havoc pistols already but the hoarder side of me can’t bear to sell any one of them!)

Was thinking about this a bit more and I think this might be one of the simplest and least intrusive ways to implement it if the developers like the idea (though feel free to ignore me here, just my brain starts churning with these types of suggestions):

  1. Introduce an array, per-character (not per player and not shared across characters), whose length matches the size of the entire unique (epic and legendary) item database. Each state is merely binary (dropped or not dropped, can just occupy 1 bit per item).

  2. When selecting a random item to drop among eligible candidates, if the item chosen has already been marked as dropped, choose again randomly (repeat one time). If the item has not been marked as already dropped, drop that item. In the first scenario, choose the second item randomly selected no matter what.

Basically like in pseudocode:


for (int j=0; j < 2; ++j)
{
   item = choose_item();
   if (!item.dropped)
   {
       item.dropped = true; // a little more complex than this since it's a per-character 
                            // meta kind of state, not item instance state (real code would 
                            // involve an associative data structure).
       break;
   }
}

  1. In multiplayer modes, just use the already-dropped states of the host or just use a fresh array for each session.

#1 ensures that the duplicate states are not shared across characters which is important IMO. It is too intrusive to me to share drop states across characters as we do recipes, since it could be horrible in some scenarios if other characters playing self-found on the same player account exhausted collecting a lot of the existing items in the database making it so the new character using the same account cannot collect the same items very easily without requiring an item transfer.

#2 provides a very cheap (somewhat crude) constant-time algorithm to reduce the chance of duplicates dropping but not to such a drastic extent (thus likewise preventing making it too easy for players to collect the entirety of the item database). It’d lower the probability of duplicates dropping but wouldn’t get anywhere close to eliminating duplicate drops (which could be desirable in some instances). The probability can be adjusted with the number of iterations (just 2 would suffice IMO though 3 would make the odds of duplicates dropping even less).

#3 I’m not sure about. Multiplayer is a bit icky with this idea. I think the second idea of just using a fresh state in a multiplayer session and not sharing it across sessions might be a bit better in that there are too many undesirable scenarios I can think of when you use the “already-dropped” states of any one of the players in a multiplayer game.

Naturally exceptions apply for items that are desirable to gather in large quantities (components, ancient hearts, chtonic seals, etc, though none of those are epic or legendary to my knowledge).

There’s already a feature which supports this somewhat: you will never get 2 of the same legendary in the same play session.

Preserving drop data between sessions probably isn’t ever going to happen, so when you log out that history is gone.

Oh interesting, is that just for legendaries? I could swear, but my memory is a bit hazy admittedly, that just the other day I ended up collecting three Dreadnought footpads in one session on a new character I was trying out… but just low-level epics in a veteran session, not legendaries. I remember having all three in my stash clearly and didn’t think I restarted the session.

If such a mechanic already exists for legendaries but not epics I’d love to see it extended to epics as well. Per-session is least intrusive (maybe already quite a great start) but I get more annoyed collecting the same epics multiple times than legendaries, where sometimes I’m kinda excited to have two or more of the same legendary available to share among my characters (epics not so much, they’re like… blergh, I don’t know what to do with them all the time). It’s especially “blergh” if I collected the same epic twice within like a 20 minute timespan.

Wrong actually. You won’t get the same from drops, but you can get infinite duplicates in a row from crafting random legendaries. Crafting 2 Panetti’s Replicating Wands and 2 Venomspine Greaves back to back is really painful to say the least.

I think this applies to Epics as well; there used to be a problem where people would often report finding duplicates of the same Epic item over, and over, and over…happened to me all the time back then (I don’t remember which Epic it was, just that I got so tired of finding them that I would instantly sell them without even checking their stat rolls).

Thankfully on my most recent playthrough I haven’t seen any duplicate uniques (Epics+Legs) at all across multiple game sessions. There are more items in the drop pool now as well, so that further lessens the chance of finding duplicates. :slight_smile:

Serimert, how often do you find duplicate uniques now?

I still feel like I suffer that though I haven’t dug into 1.0.6 yet (haven’t played for the past few days)!

Then again I haven’t been paying careful attention to when I restarted a session. I’m kind of an ADHD multi-tasker when it comes to playing characters (sometimes I play a little bit of my saboteur, a little bit of my witchblade, a little bit of my sorceress, try out a new build idea, etc) so I tend to play brief sessions with lots of different characters instead of very extended sessions with one.

I could swear that I’ve collected items like Gunslinger’s Jacket for the 100th time. Then again there’s the whole false positive psychology which is probably exaggerating that feeling (in actuality it might just be a dozen times, but it feels like 100, probably especially since I always manage to collect it on characters who don’t wield pistols).

I still see duplicate Epics on occasion (within a short span in the same session).

Sent from my SCH-I605 using Tapatalk

Maybe I’ve just been lucky on my recent playthrough then…when I start my Elementalist I’ll keep track of my unique drops to see if I get any duplicates.

Something else I noticed is that my characters seem to find a bunch of Legendary items right after level 50 until around 60 to 65ish, then it slows down considerably; went from finding purples in abundance to finding none at all between 65-70.

Has anyone experienced this as well or was my experience here an anomaly?

I also realized this. Definitely it starts to slow down after first peak…

I got that feeling on one playthrough with my warder where I did a single BoC run in veteran and got 3 legendaries out of it at level 53-ish (felt like striking gold even though I didn’t have much use for the particular legendaries) and then went on to elite and got none after that until the quest reward for the killing Log, then started getting some more towards level 80s in ultimate but there was like a “legendary” gap where I was getting a lot then none at all then a lot again around the levels you cited.

Then again with other characters I had ones that never got any legendaries besides the Log quest rewards throughout veteran and elite so it’s too hard to say from such a small sample. It can be quite sporadic to say the least.

I had duplicate epics in same session, but i can confirm for legendaries( at least until now )

It happens more when leveling. I find duplicate of certain items and they keep coming also. It is not like 2 but more…

There is something that feels weird to me about the game’s drops in general – just like a gut player reaction, not something I attempted to analyze.

If I compare to Diablo 2 (hope I’m not being too obnoxious constantly bringing that game up to compare with GD), it took years of playing Diablo 2 to where I felt like I was seeing the same uniques over and over.

In just 8 weeks of playing GD (active ones though), I feel like I’ve seen pretty much the entire database for a lot of veteran level 1-50 ranges (not all the ones in ultimate since I’ve just finished ultimate recently just weeks ago).

It might be possible that I haven’t, but it’s like I just keep seeing blue stuff I’ve seen before and I’ve not recently found a single epic item in the level 1-50 range that I’ve not seen already… coldsnap, coldsnap, coldsnap, gunslinger’s jacket, gunslinger’s jacket, marauder’s set, herald’s set, alvarick’s rebuke, falcon claw, falcon claw, falcon claw, dreadnaught footpads x10, explorer’s set, frizzick’s utility pack, warchief’s glory, maiven’s set, miasma set, guardsman’s, nighthunter’s chestguard, rifthound boots, rifthound boots, rifthound boots, farmstead liberator, farmstead liberator, farmstead liberator, etc. etc. (there are a wide variety of them but I’ve seen them over and over).

It’s getting to the point where I just recently beat veteran with a new character and there was not one epic in that entire playthrough that I didn’t recognize and didn’t own on one of my characters or mules, and I still ran into far more than a stash full of epics.

I don’t know what causes that strong feeling of deja vu time and time again. I’m aware there’s all kinds of psychological factors that bias that impression (those are important to me too) but wondering about drop mechanics too. I never felt so starved for stash space and up to my eyeballs in dupe items.

Maybe the drop rates are just significantly higher in GD than Diablo 2. That would definitely explain a part of it. Is the GD item database much smaller than Diablo 2? I didn’t think it was but haven’t counted. Are the drop mechanics for certain enemies going to choose among a smaller list of items, even if the item database is just as large or larger? That was something I was wondering about, since even if the total item database is huge, maybe like a level 42 elite might not have such a large list of candidate items to drop… dunno. All I can express is the sentiment that I’m up to my eyeballs with dupe items and starving to see something I don’t already recognize and own in the lower level ranges (1-50 especially).

Had no idea that the old back-to-back duplicates problemo was still around…how old are these characters, for those of you experiencing this phenomenon?

The odds of getting duplicates are significantly reduced, but not impossible. It also does not affect the WYSIWYG system, so if you are getting duplicates in quick succession it is likely because of that.

In my case these are mostly 1.0.5 sessions (haven’t dived into 1.0.6 yet).

My playstyle might be unusual in that I have a whole bunch of characters in veteran difficulty at early levels (1-50), just 7 characters in elite, and just 3 in ultimate.

I keep restarting the game over and over with new characters when I want to try some idea out (don’t respec my existing ones very much except to make minor optimization tweaks – I like the experience of restarting the game over and over with new characters).

Probably given the way I play, I’m bound to just see a lot of the same items over and over and get a higher sense of repetition in the game in all aspects than usual. I feel like the game is more generous with epics too at least than Diablo 2 (I could swear on some runs that I got an epic on every other elite enemy) which is going to speed up the feeling that I’m seeing dupes over and over. I’m just kind of surprised how quickly I started to get this deja vu feeling over and over each time I begin a new character and see a blue thing drop – “seen that, stashed that, used that, already have 4 of those scattered on my mules that I need to sort out”.

I haven’t paid that close attention to how many times I got two of the same epic in a very short timespan. It’s something I can probably take note of more now. It tends to be more in hindsight as I’m looking through my mules (which need to be organized a bit better!) as to how many duplicates I’ve accumulated over multiple sessions, and also that feeling when I play a new character that I’ve seen everything already each time an epic drops.

I’m also a hoarder so that probably emphasizes this to me a lot! Someone asked me the other day why I have like 6 obsidian plate armors in my stash… I’m like… “Uhh, I have a hard time selling epic things! I end up stashing them across all my characters and when I consolidate on my mules, I end up finding I had 6 of them total… err – it has sentimental value!”

If I recall correctly, it’s not that you can’t get two of the same epics/legendaries in the same session, it’s just that the chances are reduced. I could be wrong.

We have apps available that do away with needing to use mules.

Sent from my SCH-I605 using Tapatalk

Someone pointed that out to me already, thanks! Somehow there’s a gut reaction where I feel reluctant to reach outside the game’s own sources, though the excess might drive me to that at some point.

I’m a total weirdo when it comes to games. I don’t even know if I’m having fun playing them or I’m just researching and exploring their ideas. It’s something working in the game industry years ago kind of messed up in my head – I don’t know what I’m doing playing games. It got all blurred between entertainment and work at some point.

I think I’m having fun doing it! Not exactly sure though, but it’s like my research as to a game’s pros and cons gets all messed up if I start involving things outside the boundaries of the game.

There’s like a developer perspective mixed into my thoughts there where if a large portion of the player base starts becoming dependent on some utility to work around some problems within the game, the priority list for game issues might get all skewed taking such third party utilities for granted. Complaints echoed repeatedly by customers might get stifled by such a utility, but the utility doesn’t really address the root of the problem when it’s not officially distributed with the software. So a former developer side of me feels like I exacerbate that issue if I start using those utilities as an inventory management solution instead of kind of playing the game the official way it was meant to be played, even if it gets really painful at times. I’m admittedly very weird here and there’s some stubbornness here I have a difficulty explaining.

It’s like if someone worked at Adobe as an internal tester for Photoshop and started relying on elaborate workspace setups, scripts, and third-party plugins to streamline their testing, they are no longer effectively testing the software the way many others will do. Such a tester’s feedback will get biased and skewed by all the external third-party software addressing problems they might cease to even notice with their presence. So even though I’m far from an official GD tester (just one in hundreds of thousands of normal players), there’s that former industry side of me which wants to resist using the software in a way that relies on external ones to address certain problems. I’d rather just deal with the problems repeatedly as painful and masochistic as it may be. I probably can’t explain this properly no matter how hard I try, and it might be kind of retarded, especially since it’s just make-believe if I pretend like I’m an important tester in this context. As said there’s something about me where my whole interest in playing (testing?) games is blurred between entertainment and work – it’s something I can never truly get away from and just have fun.