Live data from Hacker News

Diablo III Economy Broken by an Integer Overflow Bug

minimaxir.com

71–80 of 129 posts

Re: Diablo III Economy Broken by an Integer Overflow Bug

#71
post #65

It is odd that they're using 32-bit numbers when you'd be hard pressed to find a 32-bit only CPU and machines with over 4GB of memory are the standard. Good luck overflowing a 64-bit unsigned.

Someone could do it, I'm sure. Use a bignum implementation that has no limit.

I mean in terms of bounded numbers as you might find in a game, or in real economies, not theoretically.

It's entirely conceivable that people have billions in currency, but not quintillions. Though perhaps Zimbabwe serves as a counter-point to this. They've had to slash twelve zeroes off their currency valuation on at least one occasion.

Re: Diablo III Economy Broken by an Integer Overflow Bug

#72
post #48

This is what happens when we let machine constraints trump semantics. When you say int, you usually want an actual integer, not an integer with an arbitrary limit. In this day and age, having that limit there is simply premature optimization. I think having a nice bignum type--one that looks and feels just like a normal numeric type--is very important. It should also probably be the default ; you should only switch t…

Completely agree about big integers. I expect that the next generation of programming languages will offer a "number" type that's big integer or decimal by default, and then allow engineers to refine the type as an optimization. One trouble is the data storage layer - typical database fields are fixed size and don't naturally accommodate big integers. Thus where MMOs are concerned, using big integers will still require some deliberate effort.

Re: Diablo III Economy Broken by an Integer Overflow Bug

#73
post #72
post #48

This is what happens when we let machine constraints trump semantics. When you say int, you usually want an actual integer, not an integer with an arbitrary limit. In this day and age, having that limit there is simply premature optimization. I think having a nice bignum type--one that looks and feels just like a normal numeric type--is very important. It should also probably be the default ; you should only switch t…

Completely agree about big integers. I expect that the next generation of programming languages will offer a "number" type that's big integer or decimal by default, and then allow engineers to refine the type as an optimization. One trouble is the data storage layer - typical database fields are fixed size and don't naturally accommodate big integers. Thus where MMOs are concerned, using big integers will still requi…

Sounds like common lisp (though I doubt it was the first to have a flexible number type).

Re: Diablo III Economy Broken by an Integer Overflow Bug

#74

I remember a similar bug in the original Asherons Call (amazingly, still running with regular content updates!). Three or four years in, they added a new, very expensive object to the game (a "Pyreal Scarab" for anyone who cares). It cost a lot, so the idea was that people wouldn't be (at that point in the economy) buying many. Now, in Asheron's Call, the world is huge . There are hundreds, if not thousands of vendor…

>Trust me, out of all the customers whose data you don't want to muss with, it's hardcore MMORPG players. Welp, that's what happens when you have only online play on only official servers. Single player offline wouldn't be affected - cheat all you want! Online play on unofficial servers means server admins can take whatever action they want - ban offenders, leave offenders alone, or rollback - depending on what the a…

This game was an MMO.

Re: Diablo III Economy Broken by an Integer Overflow Bug

#76
post #61
post #59

Earlier quoted context omitted.

> It's basically a very pretty slot machine. I didn't see the connection so clearly until now. How is D3 even legal?

Why would it be illegal?

How is clicking on monsters to get drops different from a slot machine or pachinko? - Those are illegal in many jurisdictions.

Re: Diablo III Economy Broken by an Integer Overflow Bug

#77
post #66
post #61

Earlier quoted context omitted.

Why would it be illegal?

Because it could seen as online gambling. You spend money to buy items to then grind to find more items to hopefully cash out.

I'm honestly surprised that they haven't been so classified yet. The theory-wonks had made this connection as far back as 2005, and the IRS wasn't entirely blind to it. (Though when Dibbell published Play Money in 2007, they had no clue how to deal with it.)

I guess with all the hysteria about video game violence, no one has had time to actually look at what's going on.

ETA: I'm guessing that the fact that there's some skill involved makes it more okay. Like a fly-fishing tournament.

Re: Diablo III Economy Broken by an Integer Overflow Bug

#78

I remember a similar bug in the original Asherons Call (amazingly, still running with regular content updates!). Three or four years in, they added a new, very expensive object to the game (a "Pyreal Scarab" for anyone who cares). It cost a lot, so the idea was that people wouldn't be (at that point in the economy) buying many. Now, in Asheron's Call, the world is huge . There are hundreds, if not thousands of vendor…

I remember this scenario distinctly because it happened within a month of me joining the game, and not understanding what was going on :) The bug was discovered (or at least widely known) about a day after the patch went live, and rolled back two days later. Nearly every bug that users felt were somewhat punishing led to players hitting the VNBoards asking about possible rollbacks so they could stop playing until it was done. I'm actually not sure if they've ever performed one since.

Consider this completely anecdotal, but I think that around the time this bug actually occurred, Asheron's Call and Everquest were the only two 3D MMOs that were worth mentioning. I recall the delay in rollback having something to do with Microsoft bureaucracy at the time as well -- Turbine was plagued with MS as a publisher having some sort of veto power over their business and was frequently met with resistance.

(Full disclosure: I love Turbine unconditionally for creating such memorable adventuring experiences with Asheron's Call 1 and 2)

Re: Diablo III Economy Broken by an Integer Overflow Bug

#79

It is odd that they're using 32-bit numbers when you'd be hard pressed to find a 32-bit only CPU and machines with over 4GB of memory are the standard. Good luck overflowing a 64-bit unsigned.

I don't find it that odd. 32-bit applications are still very common, if not the standard. Most processes don't need more than 4GB.

More importantly, blindly increasing all of your 32-bit integers to 64-bit is going to double your memory usage, and ultimately just mask the real issue (i.e. improper bounds checking).

Re: Diablo III Economy Broken by an Integer Overflow Bug

#80
post #51

Earlier quoted context omitted.

I loved Diablo 2 and probably spent a good portion of my high school hours playing it. I was very excited for Diablo 3 and tried to get into it but just couldn't. I felt that they just took a ton of ideas from WoW and implanted them into Diablo. Sure it may have made them more money but it made it a lot less fun.

If you liked Diablo 2, Torchlight 2 was made by the same people, and is the spiritual successor to Diablo 2.

Marvel Heroes is made by David Brevik - He had the original idea for diablo 1 and played a bigger role in diablo 2 than the guys that made torch light 2. Lets no mention his failed project with bill roper on hellgate london though.
Post reply on HN