Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×
Games Entertainment

Diablo II JavaScript Parser Automates D2 Gameplay 108

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!"
This discussion has been archived. No new comments can be posted.

Diablo II JavaScript Parser Automates D2 Gameplay

Comments Filter:
  • by heldlikesound ( 132717 ) on Wednesday March 12, 2003 @01:56PM (#5495245) Homepage
    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.
    • Re:Normally.... (Score:5, Insightful)

      by PD ( 9577 ) <slashdotlinux@pdrap.org> on Wednesday March 12, 2003 @02:12PM (#5495388) Homepage Journal
      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.

    • Re:Normally.... (Score:4, Insightful)

      by Spy Hunter ( 317220 ) on Wednesday March 12, 2003 @04:15PM (#5496560) Journal
      At least it's not as bad as Progress Quest [progressquest.com].
      • Not as bad as Progress Quest??? Diablo 2 has the 3D Mode right from the start! In Progress Quest you need to look for this mythical 3D Mode for a loooong time! And most people haven't found it yet! It's l33t!

        And what's wrong with Progress Quest? It's far more fun than any other MMORPGs I've heard of, especially for someone like me who would rather play difficult games instead but is, yes, is interested of XP And Gold. It focuses on what matters!

    • Man, all those people sharing their computer with utilities like SETI, Folding, UD, etc, must really be kicking themselves for being such "stupid heads."

      And we won't even delve into the details of the OS, and everything you're sharing your computer with in regards to THAT.

      Summary: Mildly humorous, if you throw away all logic.
    • 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/
      • Once again, you can't play Progress Quest. You can still play Diablo II. There are many other types of scripts than 100% automation. There are many utility scripts that add features to the game, such as an onscreen dashboard that displays extended stat information that Diablo II hides from you.
    • Wow that was incredibly well thought out. The reason this was developed is that it is useful for the player and at the very least an interesting programming feat. Diablo 2 is item based and some of the best items have a 1:1000000 chance of dropping from a defeated monster. D2jsp implements procedures to allow you to get the better items without spending all your time sitting at the computer. How is that hard to understand? Heldlikesound: I don't understand something so I better write a well thought out
    • Alas my beautiful formatting dissapeared. Heldlikesound: I don't understand something so I better write a well thought out opinion.
      Noone: .......
      Heldlikesound: There I wrote it.
      Noone: .......
      Heldlikesound I am all alone. I guess I better eat some pizza.
  • Time (Score:3, Funny)

    by moc.tfosorcimgllib ( 602636 ) on Wednesday March 12, 2003 @01:58PM (#5495270) Journal
    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.
    • by Jahf ( 21968 )
      Actually, shouldn't you be looking for a machine that will drink it for you? Maybe a garbage disposal with a VBScript engine?
    • You need an electric monk to believe things for you now.
      • by Anonymous Coward
        What you need is the "Jesus 2000": the self-worshiping Jesus! [fluxing.net] The new and improved Jesus for the new millennium who will forgive you faster for your sins, save you 14.99 every time you pray, and doesn't mind if you don't pray because he's a self-worshiping Jesus!
    • If these folks just spent the time playing the game instead of programming a script/scripting engine to play the game, maybe they could have beat it for now.

      But then again, where is the nerdiness in that?
    • I see that the TV (namely, the Simpsons) hasn't become automated yet...
  • Non gamers, unite! (Score:3, Insightful)

    by njaguar ( 658584 ) on Wednesday March 12, 2003 @02:11PM (#5495377) Homepage
    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.
    • A waste of time is investing literally hundreds of hours a week on a video game.

      Not to be picky, but there are 168 hours in a week. Unless there's some time machine involved, I'm not sure how you'd go about getting "hundreds of hours" of gameplay in that time.

      • Well if you are going to be picky then you will realize that English requires that when you speak of more than one unit whether it be a fractional portion beyond the initial whole you use the plural. In this situation the unit is hundreds. You would not say hundred hours per week nor would you say one hundred hours per week. The former being incorrect usage and the second not being a correctly quantified statement.
        E.g. for the picky:
        one and a half gallonS of milk.
        It is also fair to say gallons of milk.

        A
  • This thing has the power to make Diablo2 even less interesting ? How cool...
  • Treadmill (Score:5, Funny)

    by cgenman ( 325138 ) on Wednesday March 12, 2003 @02:48PM (#5495727) Homepage
    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!

    • Re:Treadmill (Score:5, Insightful)

      by ivan256 ( 17499 ) on Wednesday March 12, 2003 @06:30PM (#5498449)
      A few years back, my roommate was addicted to neopets [neopets.com]. 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".
      • Re:Treadmill (Score:3, Interesting)

        by Danse ( 1026 )

        LoL :) I remember playing a MUD on a BBS that a friend of mine an I used to spend a LOT of time on. Eventually the MUD became boring, so we started writing scripts to build up our characters while we were sleeping. Not only did it have to perform well enough to not get lost or killed, it had to look like it was a human playing because the sysop didn't allow scripting. So we ended up writing in all sorts of little things like typos, responses in case someone talked to us (that was the tough part), and the occaisional check of who else was on or account status. It was great fun :)

      • paying an interest in my lad's online activities I got into Neopets in exatly the same way. I spent hours finding which games could be played by html alone (they have a lot of flash games) and ran a bot to monitor the stock market and pick up the free stuff from the donations tree.

        likewise once I'd written the code and ran it for a few weeks I took it out of the cron as my interested faded.

        I think my pets have starved to death by now
        • I think my pets have starved to death by now

          I just logged back in for the first time in 600 days to see. Apparently pets NEVER starve to death...

          My Dice-A-Roo script still works, too! There's no more jackpot though.
  • Wisecracks (Score:2, Insightful)

    by Anonymous Coward
    From here on, I declare all wisecracks about not playing the game to be Redundant. The jokes been made. If you don't understand the fun is programming to beat the game, think about it. If you don't think programming can ever be fun, go back to Fox [foxnews.com].
  • by snowlick ( 536497 ) on Wednesday March 12, 2003 @02:53PM (#5495782) Homepage
    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.
    • 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.

      Brilliant? Why do you need the items in the first place? If the game is so tedious and boring that you'd rather have the computer play for you, of what value are the items it finds? I honestly just don't understand.

    • Progress Quest (Score:1, Redundant)

      by cpeterso ( 19082 )

      Sounds like you should try playing Progress Quest [progressquest.com]:

      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.

      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.

  • by hAlO325 ( 658592 ) on Wednesday March 12, 2003 @03:09PM (#5495908)
    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.
    • Not only that, but botters creating and exiting games quickly has created enormous lines to create games. It's rather annoying to have to wait up to a minute before you can play.
      • There are bots that run every boss in the game and take up to 10 minutes or more.

        People manually running these bosses often take up just as much time, and can do them in the same amount of time, so that arguement is completely moot.

        This [d2jsp and botting] has extended the fun and enjoyment that Diablo II gives people (and more many different reasons, unique to each person that uses it), so as such, it's a win win situation for everyone. Happy customers are more likely to be repeat buyers of a product.
        • People manually running these bosses often take up just as much time, and can do them in the same amount of time, so that arguement is completely moot.

          No, since you can't play when at work or at sleep, when hanging around with your girl/boyfriend, when watching TV, etc. Blizzard probably never designed Battle.net for players playing the game 24/7 day after day -- that would be insane from a hardware perspective. Well, now they can...
          • Their computer hardware is lightyears better than it was when Diablo II first came out. There are far less players + bots active now then there was then.

            You were saying?
            • Their computer hardware is lightyears better than it was when Diablo II first came out

              How do you know that? I have noticed increased game queues since bots became common.

              There are far less players + bots active now then there was then.

              Far less? How many less then, since you seem to know...?
              • When D2 first came out, it was not uncommon for there to be 200,000 + people on any given realm at any given time. The sheer # of games was always around 75k to 100k on any realm at any time. Now it's more like 10k-15k .. Hmm?

                Total Games Allowed is an option on their bnet software, just because there are lines now doesnt mean there are more games, on the contrary; they are using less machines and bandwidth dedicated to D2 because they are pushing other games like Warcraft 3, and World of Warcraft. And al
  • Everyones opinion on this seems to be negative, but what is so horrible about it? It has made money for many people involved... For kids that just want to find items, but don't have the time to sit there and do a boring task to get them, they can have the bot play the boring part while they do the fun part. Is there something wrong and horrible with that? Everyone involved has had a great time coding or playing the part of the game they want to... Not every aspect of a video game is meant for everyone, so why force yourself to do the boring part to compete at the fun part? If something could do your job for you (better than you), and all you wanted to do was spend time with your significant other or party, would you take that oppurtunity? For someone who loves a game, it's the same thing.
  • Diablo2 meets ProgressQuest [progressquest.com] but with the programmability of Robocode! [ibm.com]
    I love it! I can't wait to try it.
  • Can anybody tell me how the JavaScript engine interacts with the game? Do they somehow intercept all player input (key, mouse etc.) and let the script generate those inputs? Or is there some other hackery at work? Docs are brief on this.

    Any chance the same ideas could be used for other games? A general game scripting environment? It would free all those everquest addicted people, or at least let them go to the bathroom once in a while.
    • Re:How does it work? (Score:3, Informative)

      by njaguar ( 658584 )
      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.
  • If only Blizzard could provide server-side scripting support, we could conquer lag!

    This is said only half in jest. First point: for a game designed to be played over the Internet, Diablo II is shockingly lag intolerant. If you're on the same continent as a server, then it's not too bad. If you're stuck on a modem in Australia, whole swathes of skills or gameplay styles just don't work well or at all.

    Second point: server side scripts represent a way of dealing with a game at a higher level. Instead of making a click-fest of a game where latency and fast mousing skills count -- such as Warcraft 3 for example -- what about a competetive game where all the twitch aspects are handled by programs at the business end of the game, instead of by hand over a slow internet link? The skill and fun then comes into selection, deployment and generally higher level strategy. Or even into script writing. (Self and friends are working on such a game, but even we aren't holding our breaths for it to become a playable thing. Free time coding and all that.)

    PS: It was always more fun writing client robots for LPMUDs than it was to play the MUDs themselves.

  • by oren ( 78897 ) on Wednesday March 12, 2003 @05:15PM (#5497424)
    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?
  • Is their webserver running from this same script engine?
  • When are they going to have code libraries that write code to write code to play a game?

    Reminds me of RealTimeBattle [sourceforge.net], only not as flexible.

    It's a hall of mirrors!
  • Well, a good game is one that cannot be solved by any bots, because it requires real intelligence !

    Let's rewrite the turing test, buddy ;-)

  • by WWWWolf ( 2428 ) <wwwwolf@iki.fi> on Thursday March 13, 2003 @07:34AM (#5501908) Homepage

    First there was Rogue [wichman.org], then someone wrote Rogomatic [princeton.edu]. Then someone wrote a limited but cool-looking clone of Rogue called Diablo II, and someone wrote d2jsp. History repeats itself!

  • Modifying your client breaks your EULA, if you use it and get banned its your own fault.
  • by Jugalator ( 259273 ) on Thursday March 13, 2003 @01:01PM (#5504011) Journal
    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.
  • by rossz ( 67331 ) <ogreNO@SPAMgeekbiker.net> on Sunday March 16, 2003 @04:14PM (#5524720) Journal
    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.

Money is the root of all evil, and man needs roots.

Working...