Remember each time you open inventory, it cost Blizzard $$

So I was reading this topic…right, stash space again :stuck_out_tongue:

And I wanted to go a bit deeper to why it’s expensive and difficult to do in games like D2 or D4.
I’m from the industry so I already knew some basics, especially regarding traffic server loads and live memory used, but I wanted to translate it in money, insted of doing it myslef, we have machine learning programs nowdays, so I asked and here are some nerdy data, it was a long coversation so I had to shorten it down a lot…it’s still long read :slight_smile:

In games like Diablo 2 and Diablo 4, larger stash sizes can cause server performance issues, and here’s why:
More stash space = more items = more data.
The more items, the more complex and slower this becomes.

  • Track every item, prevent duplication, ensure item uniqueness.
  • Verify item integrity every time it’s moved, dropped, or traded.
  • Larger stashes increase the complexity and time required for this.
    You end up with massive storage requirements. Longer backups, higher latency.

Every stash item is stored in a database row or blob.
That data must be: Validated, Versioned,Checked for dupes, Sent across the network
With large stashes, this adds up fast.
Imagine each item is ~200 bytes on average. Now give every player:
4 stash tabs - Each tab has 100 item slots. That’s 80,000 bytes (~78 KB) per player
With 1 million players online = ~78 GB of live RAM/data to manage, just for stash items
Blizzard hosts everything server-side, which means:

  • They’re dealing with real-time, persistent data.
  • Large stashes create extra load on inventory systems, databases, backup systems, and network traffic.
  • Every inventory click and drag? It’s a server round-trip.

How Big is a Single Item?
Estimate per item: ~40–60 bytes (simple item)
Rare/unique/special: ~80–120 bytes
Calculation (per tab):
5 tabs ~16.5 KB Common D4 scenario

Server-Side Scaling Let’s assume:

  • 1 million players Online at peak
  • Each has 5 tabs = 16.5 KB

Total:

1,000,000 × 16.5 KB = ~15.7 GB of RAM/active DB cache just for stash data.
Not including: Character data, Inventory, Crafting mats, Cosmetics, Seasonal flags
And this data has to be: Loaded fast, Validated, Backed up, Sync’d across data centers
That’s terabytes of structured data, and every stash click can trigger a full read → validate → write cycle.

Estimated Server Load for 1 Million Concurrent Players (Diablo 4 style):

Character stats & state ~10–20 KB Includes HP, skills, gear, cosmetics, etc.
Inventory (including stash) ~30–50 KB Stash tabs, gear, mats
World/zone state ~5–10 KB Which zone you’re in, local events
Party & social state ~2 KB Friends, clan, group, whispers
Session metadata ~5–10 KB Login token, IP, anti-cheat, matchmaking
Caching / temp structures ~10–20 KB Buffers, UI state, preloads
Total RAM per player: ~60–100 KB

Multiply by 1 million players:

60–100 GB of active RAM, just for real-time state
(plus extra for OS, services, overhead — likely runs in a 300–500 GB RAM cluster minimum)

Let’s look at traffic during gameplay. Diablo 4 is action-heavy:

Activity Data/sec Notes
Position/movement updates ~0.5–1 KB/s Interpolated, low-freq
Combat interactions ~1–3 KB/s Attacks, crits, mobs
UI + inventory changes ~0.2 KB/s Opening menus, loot
Chat, emotes ~0.1 KB/s Very low
World events / syncing ~1 KB/s Dungeon doors, public events
Keep-alive + ping ~0.1 KB/s Regular tiny packets
Total per player: ~3–6 KB/s (avg)

Multiply by 1 million players:

~3–6 GB/sec total upstream & downstream
~25–50 Gbps sustained traffic, across servers
|Metric|Estimate|
|—|—|
|Active RAM usage|60–100 GB (live state only)|
|Total server RAM|Likely 300–500 GB+ per region|
|Network bandwidth|~30–50 Gbps total|
|Storage per player|~200–500 KB (long-term)|
|DB traffic (read/write)|Constant I/O load, likely sharded DBs|

We are getting to it, if you read it until here, you might as well finish it $$ info coming right up :smiley: :smiley:

Simulation of what it would cost Blizzard in cloud hosting fees to keep 1M players online for an hour or a day.

  1. Compute & RAM Costs
    Assumptions:
    Each game instance server handles ~20 players
    Each server instance needs ~4–8 GB RAM
    Using general-purpose VMs (e.g., GCP’s n2-standard-8 or similar)
    RAM price: $0.004–$0.01 per GB per hour
    |1M players ÷ 20 per server =|50,000 game servers|
    |—|—|
    |RAM per instance|8 GB|
    |Total RAM needed|400,000 GB (≈ 400 TB)|
    |Cost per hour (RAM only)|$0.004 × 400,000 = $1,600/hr (minimum)|
    |Cost per day|~$38,400/day (RAM alone)|

  2. CPU / Compute Time

  • Assume $0.05 per vCPU/hr (Google or AWS baseline)
  • Each server instance needs ~2 vCPUs
  • 50,000 servers × 2 vCPU = 100,000 vCPUs
    :moneybag: CPU cost per hour:
    100,000 vCPUs × $0.05 = $5,000/hr
    :moneybag: CPU + RAM per hour: ~$6,600/hr
    :arrow_right: Per day: ~$158,000/day
  1. Network bandwidth
  • ~4 KB/s per player
  • 1M players = ~4 GB/sec
  • 1 hour = 4 × 3600 = ~14,400 GB/hour
  • At ~$0.08/GB egress (Google Cloud standard)
    :moneybag: Network cost per hour:
    14,400 GB × $0.08 = $1,152/hr
    :moneybag: Per day: $27,648/day
  1. Storage + Database I/O
  • ~300 KB stash/character data
  • 1M players = ~300 GB total
    At $0.17/GB/month → negligible day cost: ~$1.70/day
    But factor in redundancy, backups, analytics, likely 3–5× storage footprint: ~$5–10/day realistic

Say 1M players generate:
~10 read/writes per minute = 10M ops/minute
600M ops/hour
Using a scalable DB like Spanner or DynamoDB:
:moneybag: ~$1,000–$2,000/hour, conservatively

**Final Estimate ** :smiley:

Resource Hourly Cost Daily Cost
RAM ~$1,600 ~$38,400
CPU ~$5,000 ~$120,000
Network Egress ~$1,150 ~$27,648
Storage Negligible ~$10
DB Operations ~$1,500 ~$36,000

TOTAL: ~$9,000/hour → $220,000/day
not counting: Dev team salaries, Customer support, Marketing etc…

Optimization Tricks They Probably Use:

  • Zone sharding: You don’t load the whole world at once
  • Data deduplication: Common stash items might reference a shared base
  • Lazy loading: Only load stash data when opened
  • Delta saving: Only write what changed
  • Preloading popular zones on hot servers

These keep bandwidth and RAM manageable — and are why your stash doesn’t instantly open in Diablo 4 :smiley:

8 Likes

Yeah, sure, right… AI said it so it must be gospel.

That alone speaks volumes of “I’m from the industry”…

1 Like

You cannot calculate this kind of stuff if you don’t take data compression into account.

Eh what ? Gospel? It’s an estimate based on prety solid nubmers and makes sense to me.
And yes, since I works as Network infrustructre specialist i think I’m entintled to make an assumption.

1 Like

Guess I’ll sleep better tonight knowing this.

4 Likes

Ehm data which could be even compressed(why would you do it ? it would incerase a latencty by a lot) are sent as packets with set size anyway. You can fragment those but it still is consuming network bandwidth :smiley:

EDIT: OK they might use some compression on stash tab data, depends. It would help the load but inceased latency , inceasing delay …actually more I think about it I think they do, coz during spikes delays are visible. And it was a thing in D3 once as well.

Epic and well thought and post, and the formatting, OMG the perfect formatting! You’re hired!

1 Like

“It is a capital mistake to theorize before one has data. Insensibly one begins to twist facts to suit theories, instead of theories to suit facts." - Sherlock Holmes

2 Likes

And it still comes back to, if other games can do it, Blizzard can to.

Last Epoch and Path of Exile (at least in its POE1 days) have/had much less funding behind them and offer essentially limitless stash space.

It’s also Blizzard that decided D3/4 would have no offline modes.

D3 also has more stash space than D4 and is running essentially free of charge (to a dwindling player size, I’m sure) with no added income.

THERE. IS. NO. EXCUSE.

1 Like

Um, you are aware of HTTP compression? How about the gif and png image format that uses loss-less compression?

Thanks, this tells me everything I need to know.

1 Like

It’s fine by me. Yeah it’s very different in offline mode.
Point of this topic was to point out that every action in game fe. opening inventory costs resources, thus money :smiley:
Aka. Guys buy more MTX blizz will give you more slots :smiley: (joking)

3 Likes

This is not my area of expertise, but the first thing that came to my mind was Huffman coding from Id Tech 3. Many modern games are based on that engine.

1 Like

Given the widespread duping this just isn’t happening. Not by a long shot.

This should be what loading everyone’s inventory and stash in the area when you port in but the reality is more about manipulating the game to generate the statistics they want or need.

It is a lot easier to stack the deck against you if they know what is in your hand. D4 is all about sales and revenue. They are using the information for that purpose. You can bury your head in the sand and choose not to believe it. i certainly won’t.

I agree they might use some binary compression, not sure whats Huffman coding is…that is out of my area of expertise :slight_smile: Like I typed in edit, more I thought about I think they do, it would reduce network load, but increased cpu load thus latency /spikes.

Still this doesnt matter in grand picture, point is data are flowing and more you need to sent more $$ it costs. Simple as that, not sure why would someone even doubt that :smiley:
I wanted to know how much money could it roughly cost, just an estimate and even if its 10k or 20k off I still find it interesting.
I meant no harm. :stuck_out_tongue:

1 Like

You used too much logic in your post. This is the internet. We go based on FEELINGS here. Stronger the feeling the better.

Just like there was one thread where one poster’s reply against a primary source interview that they did not need to consider anything that was said to form an opinion. Facts bad. Feelings good. Even if your first principle approach created SpaceX rocket launches at 1/10th of the cost of NASA, the NASA fan boys would still accuse your logic of heresy because it contracts everything about the ‘facts’ about how much it costs to launch rockets that they know. Such is the internet.

3 Likes

Hmmm that is a disscusion I’d rather not dive into :slight_smile: I was only after money. … I’m not sure how they track items …but I’m pretty sure they do - duping would be widespread if they did not at all . Oh and tracking 1 billion+ items is insanely expensive imho. Back to $$ :smiley:

OMG, did you willingly write all that down?

Lord, do yourself a favor, go get laid, touch some grass, take your significant other out for a nice dinner, paint a watercolor, walk the dog… anything to take your mind off, writing up a thesis and the supposed costs of stash tabs.

No one cares.

As a player, it’s not my job (nor do I care) over trivial things like this… play the game or move on, it’s not that serious or rocket science. At the end of the day, it’s a video game, nothing more or less.

No, I’m not trying to be mean or sound mean as to what I wrote. It is what it is… let the little things go and stop worrying over things that are not in the game and way out of our control anyways. Free your mind and just enjoy the game.

See you all in S8.

3 Likes

There is serious flaw with your calculation. Diablo 4 losing players every month same as every other game no matter how popular they were. At this stage, it should has lost at least 70% of players compare to its peak during launch. We are not getting 70% increase of stash space, even the server load has been significant reduced as result of lower player count.

Many game store data in their server and track every player stats, yet they offer unlimited stash space. Each item can be represented with simple hex code, it doesn’t take much space to store them in a compressed save file.

I have 10 times more gears, cosmetic and consumables in Monster Hunter Wilds than D4, my save file on server is only 3MB. The game has sold 10 millions copy since its launch 2 months ago, there is no server lag with the 10 millions players data they need to process. All this data show that your calculation is very off.

1 Like

I dont mind whether the math is correct or not. It is interesting to see what can be taken into account.

2 Likes

Wow, that’s a pretty interesting write up that really made me think a bit more sympathetically towards blizzard.

So it’s pretty simple actually, to help them cut server/bandwidth costs all I have to do is stop playing D4

4 Likes