Live data from Hacker News

Diablo III Economy Broken by an Integer Overflow Bug

minimaxir.com

101–110 of 129 posts

Re: Diablo III Economy Broken by an Integer Overflow Bug

#101

Earlier quoted context omitted.

Also, basically no-one uses the long scale anymore. Which is a shame. -illiard is a fantastic suffix.

So are thousands of billions called billiards? :)

Yes, it appears they are. In long scale it's million, milliard, billion, billiard, trillion, trilliard etc.

Re: Diablo III Economy Broken by an Integer Overflow Bug

#102
post #85

Earlier quoted context omitted.

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

The python example is good here, because originally the Python language had separate types for unbounded-integer and machine-sized-int. This happened as part of the move from Python 2.x to Python 3.x, right along with changing strings from byte-arrays to unicode.[1]

There has been lots of fuss and even pushback about the change to use unicode instead of byte arrays, but I have never heard anyone complain about semantics OR performance of the switch to a single integer type.

[1] - http://www.python.org/dev/peps/pep-0237/

Re: Diablo III Economy Broken by an Integer Overflow Bug

#103

Earlier quoted context omitted.

This game was an MMO.

Not any more than SimCity 2013 was an MMO. There may have been free-to-play MMO-like monitization of every little thing but the game mechanics are all single-player/small-group-of-players.

No, Asheron's Call was an MMO in every sense of the term. There was no free to play (at least in the pyreal scarab bug time period), monthly sub fee was it, and the game would have been wholly uninteresting without the full on massively multiplayer element.

Re: Diablo III Economy Broken by an Integer Overflow Bug

#104
post #3

Just another reminder that it's never worth bypassing the normal deployment process. Every year or two I learn a similar lesson myself: it's so tempting, the fix is so small, it couldn't possibly break anything (heck, I once had a data-gathering script that made a bunch of read-only calls to our system's API cause a live issue). Just say no.

Reminds me of a time a coworker at a previous job almost brought down a production server by opening a file in vi. That file was a customer log that had grown to 100+gb in size due to an error that she was debugging. She failed to check the log size, instead assuming that it was a small file left over after that night's log rotation. When vi tried to load the file to memory, it almost crashed the box before we could…

I've made this mistake, only I was too naïve at the time to realise my mistake, thinking that vim, because of its reputation, could surely handle it. A server reboot later and I was enlightened.

Re: Diablo III Economy Broken by an Integer Overflow Bug

#107
post #24

Reminds be of a bug waaaay back. In the original Elite, you could obtained a missile lock on a space station, then dock and sell all your missiles, launch, and finally fire a missile (you still had the missile lock). Suddenly you have 255 missiles! 0-1 = 255 in unsigned 8 bit integer math! You could then sell all your new shiny missiles for loads of money. Made a hard game a bit easier.

Those games (Frontier Elite and First Encounters included) had loaaads of bugs like that. Another one in FE had you put in passenger holds, fill them with passengers, then sell the holds -- this would obviously not work as you had to evict the passengers first, however the game logic credited you with the cash anyway because the check came after the money had changed hands.

The amount of cash you had was stored in savegame files as 4 bytes. A few changes with a binary editor and suddenly you had millions of cash ;-)

Re: Diablo III Economy Broken by an Integer Overflow Bug

#108
post #41

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…

That was the first thing which came to my mind when I read this, too. Of course, Asheron's Call didn't have an (official) real-money trading system to deal with too. A nightmare scenario for the developers in both cases.

Asheron's Call had a very viable (unofficial) real-money trading system via ebay. I never even played the game but knew some people who did and they made fairly substantial amounts of money selling virtual crap on ebay. This was before the rise of the hardcore Chinese gold farming industry, in-game limitations on item trading (ala WOW), ebay restrictions, etc.

Re: Diablo III Economy Broken by an Integer Overflow Bug

#109

Hard to understand why people spend so much time on a short game like Diablo III. Even before I finished it on inferno the game didn't make much sense, I just finished for the sake of it, which I regret. Most Super Mario games requires way more abilities than that and less time. Don't waste your limited time on earth playing consumption-driven games. I've been trying Eve online for a few days, It does not looks promi…

Incidentally, Eve is the source of my favorite overflow bug! By putting a ship into a region of space that reduces the range of its weapons and using various range-debuffs, players were able to decrease the range of certain weapons by enough to get the range variable to roll over. This gave them near-infinite range on weapons that were intended to be short range. Since the short range was a tradeoff for very high damage, suddenly having infinite range was game breaking. However, the people who discovered the bug were clever, and did not abuse the power enough to be detected for nearly a year.

http://massively.joystiq.com/2010/09/17/new-eve-exploit-give...

Re: Diablo III Economy Broken by an Integer Overflow Bug

#110
post #28

Earlier quoted context omitted.

Don't let the initial Eve gameplay get to you. Join an active faction and go on some roams. Pvp is where the game shines.

Every time that I've been blown up in Eve, it's happened so quickly that the fight didn't even render on my screen. Just one second I'm in a spaceship, and the next I'm back at my home station. That feeling doesn't make me want to learn combat!

And you were probably travelling in a simple shuttle or cheap frigate, against multiple players or smartbombing idiots. Likely not consensual, and you were probably not expecting combat. Yeah, it sucks, but that too different from other MMOs (WOW, I am looking at you).

Many of my small-scale engagements took several minutes to resolve, one way or the other.

Not to mention fleets. In fact, one of my fondest memories was taking part in Agony Unleashed's PVP classes. That took several hours of intense playtime - we had to have multiple 'bio breaks' for people to be able to go to the bathroom and eat something - while being guarded and with scouts to give early warnings to the fleet. And it was amazing. Instructors teaching game concepts and military-like tactics and command and control (and actually enforcing discipline).

I've never seen a game getting even close to that sort of organization and discipline. CCP should hire those guys as teachers to introduce players to more advanced game concepts.

Post reply on HN