idk but it kinda feels like if i had to think about all the numbers from 0 to 9 before being able to resolve 2+2=4
surely it could be more efficient.
idk but it kinda feels like if i had to think about all the numbers from 0 to 9 before being able to resolve 2+2=4
surely it could be more efficient.
you would be 100% correct on that
I’m pretty sure PoE works the same way because of how trading is set up with their website.
Maybe they had a pvp zone in mind where players dropped their best gear when dying, and so we need to load the entire stash?
Or maybe, it’s for a “smart-loot” system, so the game knows what items you have, so it drops ones you might find good? Maybe it even makes it so your friends/part members can get “good” loot for you ??
I really have no idea lmao. It could be anything.
No, nobody here can explain it to you because nobody here knows the architecture of the game. As a programmer, if I were to even speculate, I’d assume it partly involves preventing dupes and maintaining item integrity.
The only difference is that you buy “premium tabs” that allows you to set it to public or private.
PoE trade websites then gather information of tabs that are set to public only reducing the need to load everything.
Appreciate the speculation. Powering an online trading site is certainly a possibility. Id understand if it was a mistake too. I mean Ive made them. I once coded an axe with pass through without including logic to stop it, effectively creating a “Rail Axe” lol. So I know oversights happen but this one seems… big, IF its an error.
I can tell you. It works this way to prevent so many reads and writes to their database.
They carried over the code from D3 in the engine and just didn’t spend time fixing it because it worked in D3 well enough.
Now they are fixing it because it’s causing problems for the client side since D4 has a bigger open world than D3 had.
This is the reason. It has nothing to do with monetization. It’s just because of laziness and deadlines.
Actually i think this code came from D2. Before there was some kind of dupe (making duplicate items) of uniq items in online ladder through bugs and other stuff.
So this code i guess was one of the part of protection mechanism.
Also, because earlier the ping was too high someday and the internet speed too low, this also used to preload items. so you can drop or trade it without any delay to others.
As i know, this behaviour was also in D3, so devs just used the stash code from D3 and they didnt have time to rewrite it in a new way.
even if that was the case there is no reason to require other players in your instance to load in your stash.
It makes zero sense. Even if it was the case - and they needed to load out an additional stash tab - you are downloading a .04 kb json file instead of a .03 kb file.
It would be irrelevant.
Oh wow, thats interesting.
Yeah it’s because larger reads and writes are better than a lot of small ones. You can request all the stash and inventory for everyone in your zone in 1 request probably.
Databases like these have I/O limits.
I am betting the only reason stash is loaded is because it is part of the player class (programming class, not game class). meaning any time an instance of player is loaded, the stash variable is also loaded.
I mean I may be totally off base here, but I bet it is something stupid like that.
wow even Singularity says this, then you know that most likely true.
Inventory looks like from D2 inventory which is 20+year old… what a lazy bomb the devs are…
It’s also for real technical reasons.
not buying it.
Again, possibly they are completely inept at programming.
But why would loading other players stash be required?
The only thing I can think of is to prevent db calls if a player switches gear in front of another player.
On that note - what are they preventing in terms of writing?
And what exactly is so bad about 12x1kb files of inventory? It is nothing.
I don’t care if you buy it. I wasn’t talking to you.
The stash is loaded for people in the zone so they can query it for items instead of the server database. If they find the item in that local copy of the database they don’t have to go out to the server copy as often.
You obviously aren’t a programmer.
It makes perfect sense and if it wasn’t causing client issues it would be fine.
But its not the size that burns out drives, its the number of writes correct? (real question)
Why would you need to query other people’s stashes for items?