An Oral History of Diablo II
usgamer.net
usgamer.net
Would like to have seen more of the nitty gritty about the game. This is a very project-manager-ish view of its development and as such sadly misses a lot of the work involved.
That said - it's also invaluable. Very interesting read.
Really interesting read, covers Diablo/Warcraft development from its humble beginnings.
Diablo and Diablo 2 had fairly simple but compelling stories that were dropped in at key moments. Diablo 3 is largely progressively more annoying demons telling you how unlikely you are to beat them. It just gets tiresome. That'd be true if they were separated cut scenes as in Diablo 2 or integrated dialog as in 3.
The hero him/herself was responsible for as much or more death than any of the enemies.
Isn't it so true about many popular stories? If you tally the body count, it often turns out that it's the protagonist who is the monster.
Mildly interesting on a pacifism run.
Another interesting but little-known story by Eliezer is http://lesswrong.com/lw/y4/three_worlds_collide_08/.
I like games that give you a non-violent path. I vividly remember enjoying Mirror's Edge trying to do a zero kill playthrough. It wasn't easy, because sometimes opponent jumped at you in such moments that you could kick them out of rooftops by accident. But it feels rewarding to play a game in a way that, at the end of it, will preserve both you and your opponents, who often aren't evil per se and don't deserve to die.
(I think Baal actually talks the most due to his conversation with Marius in one of the cinematics).
But I never played until Lord of Destruction exp though, maybe some stuff came after.
My only complaint is it feels too easy most of the time, and I cannot make it harder until I beat the campaign once. My long experience playing D1 and then D2 are probably showing though :)
Go in expecting a decent game in that style though and you'll enjoy it a lot.
Heh, the irony.. I am working on a (what I deem to be) quality one-purchase game.
But fuck me Diablo 1 was scary as hell, even when played multiplayer. Man.. that Butcher.
You can almost tell a gamer's age by how they react to that, said in the right voice.
Even the mishaps in the game like, Stone of Jordan dupes, overpowered Gambling feature in the original, some under powered classes in terms of PVP (eventually got more balanced) and so on, there are so many learning opportunities here.
Addition of Runewords in 1.10 really balanced the game even further. Magic Finding (MF) which was an attribute you would want to farm set/rare/unique items were pretty much invested in Sorceresses only for her Teleporting skill. Other classes without teleporting simply could not farm as effectively as her. With a new runeword "enigma" that gave you teleporting skill, it opened up the avenue for other classes to do what Sorceresses do. I can just keep going on and on about this game and how fun it was (even the grinding in cow level for exp).
I also remember a gamble hack, where the server gave too much info to the client. The hack would tell you which were Unique/Rare/Magic gambles.
Try Path of Exile [1] if you are looking for a spiritual successor. For me, that's the only game that comes close to Diablo 2.
- The plot was, to put it bluntly, some of the most generic fantasy glop imaginable. The second game was particularly bad in this respect.
- Item generation felt... off, somehow. Some combination of too many item bases and too uniform a distribution of affixes made items generally feel kind of boring.
I personally found Path of Exile to be significantly better. Your mileage may vary.
I used to run farming bots for Diablo II when I was 13-16 years old and had about 20 copies of the game. Bots would run all day (while I was in school), and all night. I'd wake up early in the morning. Check the loot and transfer it to mule accounts, then restart the bots and go to school. I'd then try to trade items for general commodity items, like high runes, or certain skill items that were used as a form of trading currency due to their high demand.
The bots had some custom features that would let you bypass IP bans by logging into your router's settings, changing the mac address, and restarting your internet connection so you can get a new IP address.
One of the bots I used was written in the AutoIt Scripting Language. Since the bot was open source, I was able to see how the code was structured and modify it myself.
I attribute my introduction to programming to this farming bot, and I believe is one of the reasons I chose to study Computer Science.
The cherry on top was that I made about $600-$700 when I was 14 or 15 years old by selling a lot of farmed items on ebay.
Personally, Diablo III was a big disappointment for me. The game felt quite different from a lot of aspects. Common loot was now split into player specific loot, too many crafting recipes, unique items were garbage, etc...
I'd be happy to answer any questions regarding Diablo II or even the hacking/botting community around it.
Blizzard really screwed themselves( and the players ) with the Auction House.
1. AutoIt bots that simulate human interaction
2. Other bots that manipulate game memory (usually caught by the anti-cheat dubbed 'Warden', more on that later)
The reason most bots were PindleSkin bots, is because the PindleSkin unique monster spawns on Act 5 and can be accessed through a red portal. The level generated is always the same, so the path taken to the monster is always the same.
1. AutoIt bots simulate keyboard input and mouse clicks, and can check pixel colors at an x,y location on the screen. This alone allows you to navigate to the portal, enter it, and reach the monster. Enter a predefined number of key strokes and mouseclicks to cast spells and kill the monsters, and afterwards collect the loot.
Some examples of usage: Check the health and mana spheres pixel colors. You could estimate what percentage of HP or Mana your character had, by using some basic math, since the HP and Mana spheres were symmetrical. If the percentage was below a threshold, send keystroke 1, 2, 3, or 4 (this tells the game to drink a potion from one of those slots in your belt).
Checking inventory space and unloading items into the stash was done in a similar matter. The inventory is a 2d grid of squares, and each square has the same pixel color at the center. You'd count how much space you have by checking the pixels of each square and building a 2d array. You could also figure out how big an item was in terms of inventory space, by checking the empty spaces before and after lifting it off your inventory, and subtracting to get the difference.
Collecting the loot was initially done by using a d2loader pick-it hack, which injects into game memory, and uses a predefined list of items you want it to pick up. Now since this modified the memory, it was easily detectable, so when blizzard released the 'Warden' anti-cheat, it became useless.
Some guy by the name manus-magnus came around and released a new PindleSkin bot, written in AutoIt, which had a built in OCR. He was able to literally scan the items that were dropped, turn them into text, determine if they are rare, unique, or normal (based on pixel color), and whether to pick them up based on the pre-configured data the user specified.
He also took advantage of the ability to modify sprites on the client side, and add colored blocks to key points of interest places on the level. This allowed him to use these colored blocks as markers and navigate to reach the monsters he wanted to kill. All without manipulating game memory. I believe his bot included the 2 other unique monsters on Act 5 (Shenk and something else?)
Blizzard had such a hard time catching this bot, some believe it is the reason they added a 20 game / hr limit, and if you exceeded it, you got a temporary 15 minute IP ban.
2. Non AutoIt bots relied on injecting into the game memory, and using a maphack to find the monsters on randomly generated levels. They were a lot more powerful, as they were able receive a lot more information from the game, but were usually banned swiftly. I don't know that much about the implementation details of the non AutoIt bots.
If you want to find more information, you can search around the AutoIt forums for a pindle skin bot, or search online for manus magnus pindleskin bot.
The TLDR is that a bunch of people get together and pool in Stone of Jordan rings, and then decide which servers they'll spawn the clone on, and once they're all sitting on a few of those servers, the initiate the selling and "popping" (spawning the clone) on the server.
No one knows what the exact number of SoJs is, so a community was created and it used irc.dclone.org as the IRC server to manage all of this and collect data over time. This gave some historical data on how many SoJ's were sold for a certain IP address before that server "popped" (the clone spawned)
Each Diablo game you create, has a unique IP address.
Let's say you're on a server with IP 123.123.123.XXX
When you sell SoJ's, all servers that end with XXX will eventually spawn a Diablo Clone and receive the "XYZ SoJs have been sold to merchants" message.
People would gather on irc.dclone.org and pool together say 100-150 SoJs on the NON-LADDER mode. Items were cheaper on NON-LADDER, so the SoJ's were sold on a NON-LADDER server, but, the people who organize the event, would in advance hog the predetermined servers that end with XXX on LADDER mode. That way, they'd get the annihilus charm the clone drops and it'd be worth more.
So in essence, you're selling the SoJs on the NON-LADDER servers, but their effect propagates to the LADDER servers. Thus, your returns are much higher.
In order to find these servers, you'd use a similar AutoIt bot to basically create a game every 3 minutes and use some basic netstat commands to extract the IP address and once a game has the .XXX address you want, the bot will idle in it, until your group spawns the diablo clone.
A private diablo clone spawning event would typically go in the following order:
1. Get number of people to transfer SoJs to one account (buy-in is usually 10 SoJs/person assuming ~10-12 people party)
2. At time T, the SoJs selling will begin
3. Announce the IP address XXX at (T - 5 hours), this will give you 5 hours to search for game servers with IP address XXX.
4. Start selling SoJs at time T
5. Clone Spawns, everyone kills the clone in the games they have found, and collects the annihilus charm.
When I was doing this regularly, an unidentified annihilus charm was worth $20-$30 on ebay, one with perfect or near perfect stats could go up to $100.
MMBot or Roots Pindle Bot? I was a forum mod and helped folks out with tech issues on the mmbot forums, and was in the community before Manus Magnus released MMBot to our forum admin. I still talk to Nicotine (MMBot siteadmin) every once in a while.
MMBot was closed source from what I remember.
Up until about the last few years of it's life when the full source was released. The only other autoit bot I was aware of was Roots, which is how I came to be involved with the forum in the first place.
I ran D2JSP (YAMB) a lot once I had enough wealth and a good enough cd key hookup to rotate and mule constantly banned accounts and bring up mf hammer pallies fast enough.
It is a much better game now, regardless.
They have brought it back around to more D2-ish style gameplay in the most recent patches.
As far as I am aware, the mac address is burned onto the hardware by the manufacturers, and there is no way of changing it. (Unless you are using a VM and you can give it any mac address you want)
How did you change the mac address?
A quick websearch indicates that even on Windows it's not a problem.
Some devices store the MAC in some sort of writable NVRAM.
ISPs assign IP addresses based on the MAC ADDRESS of the device connected to the modem.
You're spoofing the MAC ADDRESS, not changing the actual address of the hardware device.
I think the greatest thing about D2LOD was their dueling system, especially in hardcore mode. I had a friend (RIP) who used to have high level barbarian with teleport amulet. In the older patches it was a rare item, before the crazy rune words and so on. So naturally he was able to assassinate a quite a few naive players, who tried to run away, to collect the ear. Oh man, the rush of playing in hardcore. The thrill was real. There was a real consequence to your mistakes. I think that was the fun part until Blizzard sanitized the game to prevent easy PK.
One thing I wish Blizzard could do is to make a figurine of your character and send it to you. I'd love to have a small figurine of my lance barb that I've dedicated a lot of my time to. Too bad it's all gone now.
Nettrek probably invented anti-cheat practices including RSA signing the binaries and moving most of the logic to server-side. You could program info borgs to give you better display of information than other humans, and you could program combat borgs that simply reacted faster than humans could (particularly with automatic tractor/pressors, auto phasers at close distance, and auto aiming torps), but cloaked ships had their positions randomized server side so you couldn't get magic accuracy to lock on them, and torp wobble and hits were all computed server side so there was no way for client hacking to change the basic physics.
> It's amazing how many new standard things came out of Diablo and Diablo II. [...] The rarity thing [for loot], for example, just kind of made sense.
While Diablo certainly helped popularize quite a few such features and even arguably gave birth to a genre (I heard people calling various other games a Diablo), it would be overconfident for them to claim inventing it: Magic the Gathering [1] had it years prior. There, rarity was implemented with printed pages: you print all your common cards on a Common sheet, uncommon cards on an Uncommon sheet and rare on Rare sheet; then put 1 card from Rare, 3 from Uncommon and 9 from Common into each booster pack. (not actual numbers! there are also Mythic Rares and each card has a tiny chance to be a Foil version, which complicates the situation, but the basic idea is something like that; from memory)
Same goes for the idea of a quest log: I don't have a specific example in mind, but I have a hard time believing no game had it before Diablo II.
btw, Magic: the Gathering debuted in 1993.
> The rarity thing [for loot], for example, just kind of made sense. In some roguelikes, they would have your common item and your magic item, so they were different colors of text or whatever. If it was a magic item it was blue, if it was a normal item it was white, that kind of thing. And, so, we took a step further and went with the rarity levels. The rarer something is then it has a different color.
M:tG did not have a visual distinction for rares versus uncommon versus common when I played it in the mid 90s, and that is what they are talking about here, a visual indication of the rarity of an item.
What Diablo did (that M:tG didn't) was that the same weapon could have multiple rarities, with the rarer versions being more powerful. Each card in M:tG has only a single rarity, and the foil version is just a cosmetic difference with no gameplay effect. An Uncommon (or equivalent) in Diablo is not a sui generis item, it is a common with upgraded stats. A Rare is the same thing with magic effects added.
"...to the point where everyone was having to work seven days a week, all waking hours, for almost a year."