Slashdot Mirror


Diablo II JavaScript Parser Automates D2 Gameplay

mikegogulski writes "d2jsp is an embedded implementation of a JavaScript engine for executing user program code (scripts) inside Diablo II. d2jsp can be used to make Diablo II do almost anything that can be done in the game by a human player, and some things (such as knowing the immunities of monsters four screens away) that cannot. d2jsp has an installed base in the tens of thousands, an active user community of over 6500, and hundreds of active projects in its script database. Work progresses toward the Holy Grail of Diablo II hack development, the Complete Diablo Bot, which will eventually enable the entire game to be played automatically without human intervention. All Your RPG Are Belong To Us!"

16 of 108 comments (clear)

  1. Normally.... by heldlikesound · · Score: 5, Funny

    if I don't understand the motivation behind a project or hobby, I just keep my mouth shut and move on. In this case however, I feel compelled to say this seems like a really dumb waste of time.

    Paco: "Hey man, did you beat Diablo 2 yet?"
    Dignan: "I dunno, my computer is playing it now..."
    Paco: "Oh, so you paid for a game your not playing, and you have to share your computer with a scripting engine?"
    Dignan: "Yes, I am stupid, I am a stupid head, a huge stupid headed freak."

    Since I wrote the script to that exchange, I took some liberties with Dignans last reply, but you get my general point.

    --


    Cloud City Digital: DVD Production at its cheapest/finest
    1. Re:Normally.... by PD · · Score: 5, Insightful

      The game was purchased with the intent of it providing many hours of entertainment. The Diablo bot is being written with the purpose of providing many hours of entertainment.

      I don't mean watching the stupid thing play, I mean writing the bot. It's fun to code, you know.

    2. Re:Normally.... by Spy+Hunter · · Score: 3, Insightful

      At least it's not as bad as Progress Quest.

      --
      main(c,r){for(r=32;r;) printf(++c>31?c=!r--,"\n":c<r?" ":~c&r?" `":" #");}
  2. Time by moc.tfosorcimgllib · · Score: 3, Funny

    All of my work is automated to do itself.

    My oven cleans itself.

    Garden Waters itself.

    And now my games are all automated to play themselves.

    Time to start drinking a glass of wine a day.

  3. Non gamers, unite! by njaguar · · Score: 3, Insightful

    A waste of time is investing literally hundreds of hours a week on a video game. This is quite the contrary, it gives you the ability to play when you want, with the awesome items/characters, without having to spend the countless hours to build them up yourself.

    It's a concept even a non gamer should understand. If you already don't enjoy something, of course anything branched off of it will be of ill regards in your mind. This allows people that still enjoy the game a chance to still play and compete, while being able to fulfill other facets of their life.

  4. Treadmill by cgenman · · Score: 4, Funny

    So... It's like building a segway to run on your treadmill?

    Honestly, this is a quite amusing cheat, and one that has plagued MUD, MOO, and RPG developers for years. If you have a game that requires no real thought or interaction, and whose gameplay consists of "hack monster, pick up shiny thing," the real fun can be in teaching a computer to play the thing while you read the paper in the morning.

    Quite frankly, this brings Diablo to a whole new plateau of intellectualism that I have never thought the series would achieve. Besides, the program collects shiny things for you. Shiny things!

    1. Re:Treadmill by ivan256 · · Score: 4, Insightful

      A few years back, my roommate was addicted to neopets. It's basically a website where you play silly little games, some strategic and some mindless, to earn points that you can spend on your "pet". The better your pet was they better your chances of beating up other people's pets. I knew nothing about it at the time, but saw him playing around with it a lot, so I thought it must be fun and I'd give it a try. It was boring after 5 minutes. Instead of playing more, I spent a week writing some perl scripts to play the games for me and max out my points. By the time the scripts were done, I only ran them for one day when I realized that the fun was in writing the scripts, not in using them, so I stuck them in an archve directory and never did anything neopets related again.

      My point? To some people, mindless games are no fun by themselves, but it is fun to try and describe the activity of playing the game in code, since it requires you to consiously describe the actions that make the game playable without consious thought. It also adds some chalange to a game that has none. For example, not only did my neopets scripts have to perfect game interaction for the optimal outcome, but they also had to convince the server that there was a real person with a real browser at the other end (they tried to figure that out). Trying to out-wit the server admins was the most chalanging part. Writing the scripts is fun. Of course, the people who download and use such scripts simply to be at the top of the high-scores chart have problems, but that's another story entirely.

      BTW, I never distributed my neopets scripts, so don't go blaming me for people "cheating".

  5. This is a GOOD THING by snowlick · · Score: 5, Insightful

    Do you know how tedious finding items is? This is a bot that will do it for you. I've been able to start doing my homework again, as well as other 'real life' tasks. When I want to play I stop the bot and see what it found. Good items: YAAY! No items: oh well... No hours lost to the game! It's brilliant.

    --
    Crystal Meth: Would you ingest somthing made from a poisonous gas and an explosive metal? You do it every day -- Salt!
  6. Know what your talking about first by hAlO325 · · Score: 3, Interesting

    Most of the comments are idiotic. You don't understand the concept of the game. Diablo II is an ITEM based game. The better the ITEM, the more valuable it is. Out of this came an economy. A virtual trade for better items or to sell for cash thru auction houses. Now the bots and scripts were created to get these items out greed for more cash. It was designed to automate repetive runs on boss monsters that yield the best items. Its not unheard of bots making 20,000, 40,000, 100,000+ runs to get the item drops.

  7. Re:How does it work? by njaguar · · Score: 3, Informative

    In theory, this would be possible for any game.
    How it works is, let's say you want to move.

    script: move(x,y);

    This would move your player as if you clicked those coordinates on the screen yourself (though other stuff is involved, it's game x y, which is not actual screen coordinates at all, so requires other things as well). d2jsp calls the function that "clicking" would, but does NOT use keypress or mouseclick events. It calls the functions as though the game itself were calling them.
    In short, it requires lots of reverse engineering, as you can imagine. "Move" is about as simple of a function as one could imagine, other than "print", which again hijacks the print function inside Diablo II. d2jsp (in the latest version I am working on) can literally do almost *everything* that a player sitting there could. It's no longer a matter of can't. :)

    Of course, a picture is always worth a thousand words, so getting someone to demo you a script in action would probably answer all of your questions. That, and of course looking at the scripts themselves.

  8. Re:d2jsp license by Decado · · Score: 3, Interesting

    I just want to know whether the person who wrote this program realiazes the irony of them slapping a licence agreement on a program whose sole purpose is to violate another programs licence agreement.

    --

    Slashdot: Proof that a million monkeys at a million typewriters can create a masterpiece

  9. The right concept for the wrong game by oren · · Score: 4, Insightful

    Adding scripting into games is a great idea, but it is (mostly) wasted on first-person games. Where it is really useful is in real-time strategy games (Command and Conquer, Homeworld etc.). A player with prepared "smart" scripts would be able to give high-level orders to his units and have them act with rudimentary intelligence, gaining a real advantage. It would also make the games more realistic.

    Sure, most such games allow one to group units and perform rudimentry "smart" actions (such as returning for repair/refuel when damage is high or fuel is low) but that isn't sufficient, especially when handling a large number of units. Everyone who played these games knows the sinking feeling of watching helplessly when some critical units take the most inane course of action... The game then reduces to a glorified ardace game, won by the faster-clicker instead of, well, the better strategy.

    Does anyone know of a reasonable scriptable real-time strategy game?

  10. Or, you could just play progressquest by eb4x · · Score: 3, Funny

    Progress Quest is a next generation computer role-playing game. Gamers who have played modern online role-playing games, or almost any computer role-playing game, or who have at any time installed or upgraded their operating system, will find themselves incredibly comfortable with Progress Quest's very familiar gameplay. Progress Quest follows reverently in the footsteps of recent smash hit online worlds, but is careful to streamline the more tedious aspects of those offerings. Players will still have the satisfaction of building their character from a ninety-pound level 1 teenager, to an incredibly puissant, magically imbued warrior, well able to snuff out the lives of a barnload of bugbears without need of so much as a lunch break. Yet, gone are the tedious micromanagement and other frustrations common to that older generation of RPG's.

    Progress Quest belongs to a new breed of "fire and forget" RPG's. There is no need to interact with Progress Quest at all; it will make progress with you or without you.

    http://www.progressquest.com/

  11. Re:d2jsp license by njaguar · · Score: 3, Insightful

    I wrote this after all the hacked items, all the Iths, etc. These ruined the game. Duping ruined the game. Botting came long after these "bad cheats", and if anything, has only made the game better. It puts LEGITIMATE items back on the market, instead of hacked and duped ones. This gives players that refuse to use these cheats the only semi acceptable advantage possible. All items and experience gained with this bot is 100% legit, it does not make use of any exploits or bugs in Diablo II's code.

    Blizzard went after bnetd because it allowed people to use pirated copies of their games on public servers. Since the people playing on Battle.net have already bought the game, they are in fact customers, and since we get over 100,000 unique hits a month, I'd say a huge portion of their customer base uses this (for whatever reason). That would be pretty silly of them to piss off such a huge chunk of their customer base, especially considering they aren't making nor losing any money in either case by the existance of this product. If anything, it only increases the longevity of the game, and popularity of the company, which can only mean positives for their marketing.

    Blizzard punishes the legit players. I started getting into Diablo II hacking after being falsely accused of using hacks/cheats in the first place. This was back when they first started tagging "cheaters". I had never used a single hack or cheat before. They insisted I must have used some form of cheat, which was complete bull. After that I pretty much gave them my mind and decided "why not, I'm getting accused of it anyway, and am forced to play with other people that HAVE in fact cheated." Unfortunately, my case isn't the lone example. Remember the fix for the Soul Stone? Realm down for 30 minutes! Good job blizzard! What about the realm downs people still get all the time while playing legit? Funny, my bot and scripts never get realm downs... The storys just go on and on... So, if you want to continue playing the game "legit", and try and tell other people what to do, go right ahead. But don't expect people to voice their reasons as to why things are the way they are. Blizzard created the path on which its users have followed.

  12. Why Diablo II bots are often frowned upon... by Jugalator · · Score: 3, Insightful

    1. They increase the server load, since Blizzard never intended people to be able to play the game 24/7. In practice, this is often seen as increased game creation queues.

    2. The bots decrease the item value and skews the game economy. This would be no problem if players ran the bot on the Open Realms this game has to offer, but since they're usually used on the Closed/"Secure" Realms to harvest items that should normally take a lot of patience to find (and therefore be rare), many legit players not using bots are affected. Simply because the very rare items non bot users have found is suddenly not worth as much anymore in in-game trades. Bots inflate the item values.

    What surprises me, is that there are so many bot users that seem to find using the best items this game has to offer as the best part of the game. Personally, I find the process of earning the items through some effort the best part. Without any effort put in the game, I would feel no accomplishment whatsoever and no pride about finally getting some "uber item", but I suppose bot users still do, even if their computer play for them while they sleep.

    --
    Beware: In C++, your friends can see your privates!
  13. This is why we have our own realm by rossz · · Score: 3, Insightful

    The pkers, dupers, bots, and excesive lag drove us off of battle.net. Blizzard's refusal to aggressively go after the cheaters was bad enough, but when they accussed the bnetd crowd of piracy, they lost me as a customer. I own two copies of the original Diablo, Warcraft, Starcraft, a few expansion modules, and Diablo 2 and D2X. I didn't even consider their newest game. They won't get another dime from me. They lost a loyal customer.

    Yes, we have our own bnetd realm. No, we do not pirate. Every single person on the realm owns the damn game. Blizzard has no right to tell us we can't play it the way we damn well want. We have realm rules, break them and get booted forever. We've only needed to boot two people so far (one for using cheats, the other for being an annoying asshole).

    Blizzard says we are pirates because we don't validate the CD serial number. Well, we can't. Blizzard won't tell us how to do that and won't set up some kind of validation server for us to go through. The bnetd development crowd has offered to work with Blizzard. Blizzard refuses to cooperate.

    The people running the diabloii.net (and diabloii chat room) are just as bad. They are so busy kissing the Blizzard ass that they alienated their biggest supporters by banning any and all discussion of bnetd.

    --
    -- Will program for bandwidth