JPiepiora just admitted that D4 is terribly programmed

Source:

h ttps://i.redd.it/ve0r57iwwidb1.jpg (remove space after “h”)

tldr - when you meet other players, the game loads alot of unnecessary data, like their entire stash, which makes the game choke hard.
That’s the reason they can’t easily increase the stash size.
The game is poorly programmed and unoptimized as hell…
As a web developer I can’t believe how someone can code so badly, that’s object-relational databse mapping 101 (eager vs lazy loading).

11 Likes

Yeah, there is already an active thread on this topic.

1 Like

As I said in that other thread: I’m not a programmer (I’m just a retired electrical engineer, but can usually understand technical issues when explained to me very slowly, especially if it involves math), but I suspect the problem is because in both D3 and D4, there are infinite permutations of each type of item.

It’s their shtick, having you chase after better versions of items you already have. That’s generally not true in the MMO world.

Which in turn means that their servers are overloaded by storing all that information for each and everyone of us.

When each item in the game is hardcoded, instead of a random infinite number of permutations, it will of course be easier to allow a lot of inventory space.

I know that, but it doesn’t mean I have to like it.

1 Like

They should ask PoE to show them how to fix it.

A 10 year old game with 100x the amount of random drops and dozens of stash tabs on dated technology can pull it off, if D4 can’t they need to take a different approach, they should remove the need to hold the items in the first place.

Which would happen instantly if you could just extract imprints and store them at the Vendor or allow for players to remove an imprint they already imprinted on something.

Allows you to not have to store multiple copies of an imprint if you need to move it around some, you just keep going and if you hit your max imprint roll you’re set for that imprint for the character for the rest of the season.

Or if you extract it goes to the codex and it simply updates that for reuse.

Do this, 1 Stash tab would be all everyone needs.

Sorry but that doesn’t make any sense. Items are being generated from procedural formula when they drop. They don’t generate all permutations upfront and don’t store them anywhere. Items are then assigned to your account when they are created (being dropped) and stored in the database then. There’s no reason to load other players inventory/stash in memory when you can’t see them in-game.

They just programmed it poorly.

I know exactly what happened because the same problem is well known and is talked over and over in any computer science course. They created tables in the database like “Player”, “Invetory”, “Item” etc., then they created relations between them (like player has 1 inventory which can have X items) but they marked is as eager load instead of lazy load… so that when they load the player they also load their inventory and their items with them, which is wasteful and unnecessary.

“… Because the problem with object-oriented languages is they’ve got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle. “ —Joe Armstrong, creator of Erlang progamming language

4 Likes

Items I store in Stash is both for Aspects and Affixes.

If you aren’t saving items with good Affixes as well as Aspects and think that 20 Aspects is enough, God help you if you’re playing a sorc.

By saving both items with good Affixes as well as every single sorc Aspect, I might be able to recover my 91 sorc someday and make it useful. When I first made it, I did so because it was not considered uber at anything, so less likely to be hit with the nerf bat.

I suspect a lot of us did so for that reason because of the nerf bats hitting everyone left and right during the beta.

Fair - 1 stash tab for gems/pots/etc and 1 stash tab for your rares/uniques you might use in another build.

You almost never save a legendary for it’s affixes, you save it for it’s imprint to extract when you need it which is the majority of what is chewing up space.

So, if they programmed the game so poorly that it’s a big deal to add 1 additional stash tab without worrying they’ll crash the servers, the only solution is to reduce the need for the stash space to begin with.

No, of course they didn’t generate all permutations up front.

But they do have to store the permutations that your character and everyone else has in storage. They have to store that for every one of us.

When we encounter each other in game, they only need to load the gear we have equipped. I never said that was a problem.

Edited note: Others have said that may be a problem, but I didn’t. I’m not a programmer. I’m only good at math.

You are wrong there. Legendaries always have 4 affixes, which you will not see on rares/ yellows until you’re in T3 or 4.

I doubt it’s because there is a Dev who doesn’t know how to code, but rather because the game was pushed out too fast and the issue was forgotten or ignored.
When you are pushed for time, you go far fastest approach not the best

seems like maybe some abandoned MMO feature like trading

That was abandoned in D3, for good reason.

its because d4 engine is the d3 engine. in d3, you could only see up to 3 other people, so they just programmed a quick lazy and inefficient inventory system that used tons of recources, but who cares, 4 people max is not a problem.

then they copied and pasted the code into d4 where you can have 25 people in town and boom, instant crash on the ps5.

2 Likes

Why use an engine you have to license when you can slap together your own backyard clunker… New World revisited…

Ah well, at least they are aware of it and have acknowledged the issue. They can still recover from this by fixing it in a timely manner. It’s not really a big problem that something happened or was broken or whatever the reason as long as customer service is there to make it right.

Let’s give them a bit of time and see if they can make it right. I think they will.

I’m glad he gave the reason and there’s no need to bash them. He could have easily just said “more stash will come soon” and people would have just kept complaining that it’d be an easy fix. I give him props for letting us in on the why we don’t have more.

if the game is based in the D3 engine i wonder what took them so long to create the game and why its gotten so bad.

I guess that if they didn’t use the d3 engine and created d4’s own engine from ground up, it would have taken even longer than it had.

Thats abit simplistic without knowing the underlying reason. Dont you think?