Live data from Hacker News

Diablo III Economy Broken by an Integer Overflow Bug

minimaxir.com

91–100 of 129 posts

Re: Diablo III Economy Broken by an Integer Overflow Bug

#91
post #69

I feel sorry for the players who were amused by this and will now likely get banned. I don't know when video games started to be like a bad elementary school where you get punished for experimenting or finding a loophole, but it seems like it's punishing one of the fundamental joys of games. Or at least one of the joys I remember being particularly rewarding as a child.

I agree to some degree but MMO games in general are serious business and a special breed, especially when real currency is involved. It was most definitely against the ToS and I am sure that most of the players who participated in the exploit knew that. Also there were people who were using this bug to make real life money through the real money auction house, those people in particular can't be surprised that they w…

I don't know... wasn't there an article on here a few days ago celebrating how EVE online doesn't ban people for doing the exact same kinds of things?

Re: Diablo III Economy Broken by an Integer Overflow Bug

#92
post #85

Earlier quoted context omitted.

> In this day and age, having that limit there is simply premature optimization. You say this with certainty. Do you know of studies of real-world programs where machine-sized integers were replaced whole-sale with bignums?

All Ruby code does this. Mathematics can still be performant because of tagged pointers. If the MSB is set, the value is a Ruby object. If it's not set, the value should be considered a native data type.

Perhaps I should have been more specific. I know that there are languages that have this property. My question is if there are studies on the performance impact. Preferably in a language that is suitable for high-performance applications (like games).

Re: Diablo III Economy Broken by an Integer Overflow Bug

#93
post #76
post #61

Earlier quoted context omitted.

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.

Probably something to do with not having to pay to play. That's a pretty big difference.

Re: Diablo III Economy Broken by an Integer Overflow Bug

#94
post #76
post #61

Earlier quoted context omitted.

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.

Because you aren't likely to lose money clicking on monsters.

Also, by that logic, buying a pack of baseball cards is gambling.

Re: Diablo III Economy Broken by an Integer Overflow Bug

#96
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…

Haskell is already doing this

Re: Diablo III Economy Broken by an Integer Overflow Bug

#97
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…

Another approach is to have compile time checking of overflow or bounded numbers. There's been discussion about the utility of this on the Rust list recently and I wrote up some of my experience with languages that let you do checking: http://bluishcoder.co.nz/2013/05/07/ranged-integer-types-and...

Re: Diablo III Economy Broken by an Integer Overflow Bug

#98

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).

The actual money fields are probably small compared to the infrastructure used to track them. It's not going to double the amount of memory usage. I'd be surprised if memory use, network traffic and database I/O went up by more than a percent or two.

Re: Diablo III Economy Broken by an Integer Overflow Bug

#99
post #69

Earlier quoted context omitted.

I agree to some degree but MMO games in general are serious business and a special breed, especially when real currency is involved. It was most definitely against the ToS and I am sure that most of the players who participated in the exploit knew that. Also there were people who were using this bug to make real life money through the real money auction house, those people in particular can't be surprised that they w…

I don't know... wasn't there an article on here a few days ago celebrating how EVE online doesn't ban people for doing the exact same kinds of things?

I think the difference is that this completely broke the economy, while the exploit in EVE was much more fixable. All they had to do in EVE was take away some people's loot and they were good.
Post reply on HN