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!"
Normally.... (Score:5, Funny)
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)
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)
Re:Normally.... (Score:1)
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!
Re:Normally.... (Score:1)
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.
Or, you could just play progressquest (Score:3, Funny)
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/
Re:Or, you could just play progressquest (Score:1)
Re:Normally.... (Score:1)
Re:Normally.... (Score:1)
Noone:
Heldlikesound: There I wrote it.
Noone:
Heldlikesound I am all alone. I guess I better eat some pizza.
Time (Score:3, Funny)
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.
Re:Time (Score:1)
Irony (Score:1)
Is there nothing I can do without it being automated?
Re:Irony (Score:1)
Re:Irony (Score:1)
Electric Monk (Score:1)
Re:Electric Monk (Score:1, Funny)
Re:Time (Score:1)
But then again, where is the nerdiness in that?
Re:Time (Score:2)
Non gamers, unite! (Score:3, Insightful)
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.
Re:Non gamers, unite! (Score:2, Informative)
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.
Re:Non gamers, unite! (Score:1)
E.g. for the picky:
one and a half gallonS of milk.
It is also fair to say gallons of milk.
A
Do you mean (Score:2, Funny)
Treadmill (Score:5, Funny)
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)
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)
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 :)
lol same here (Score:1)
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
Re:lol same here (Score:1)
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)
This is a GOOD THING (Score:5, Insightful)
Re:This is a GOOD THING (Score:2)
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.
Re:This is a GOOD THING (Score:1)
Quite lucrative "hobby", I'd say.
Re:This is a GOOD THING (Score:2)
Once the bot finds the items, I use them.
Progress Quest (Score:1, Redundant)
Sounds like you should try playing Progress Quest
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.
Know what your talking about first (Score:3, Interesting)
Re:Know what your talking about first (Score:1)
Re:Know what your talking about first (Score:2, Interesting)
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.
Re:Know what your talking about first (Score:2)
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...
Re:Know what your talking about first (Score:1)
You were saying?
Re:Know what your talking about first (Score:2)
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...?
Re:Know what your talking about first (Score:1)
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
Look at it this way... (Score:1)
Diablo2 + ProgressQuest + Robocode (Score:1)
I love it! I can't wait to try it.
How does it work? (Score:1)
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)
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.
Re:d2jsp license (Score:4, Interesting)
Re:d2jsp license (Score:1)
As such, no company can tell you which programs you can and cannot use with their software. There is no EULA like that that would stand up in a court of law.
The license was written back when the program was originally going to be open source. I realized quickly that this would be folly, and decided against open sourcing it, and have been the sole developer ever since. This license is just a remnant from that era, and also a means of protection so people cannot sell my program on eBay. Yes, people have and do attempt that from time to time.
Re:d2jsp license (Score:2)
Battle.net isn't software. It's a service. And as such, it has terms of service. If you want to use Battle.net, you have to abide by the terms of service.
Re:d2jsp license (Score:2, Informative)
In neither case does it violate any user agreement, or laws.
Re:d2jsp license (Score:1)
Can I create and/or distribute hack and cheats for your games?
No. Blizzard Entertainment® does not support or condone the use or distribution of cheats and/or hacks for use with Blizzard Entertainment® games under any circumstance.
This script allows a person to progress in the game without being present; as such, under some definitions (i.e. the ones Blizzard would use) users of your script could risk being banned, especially since it gathers information from monsters not currently on the screen.
Is it strong legally? No, but neither was their action against bnetd, and I think we all know what happened there.
I would also like to say, as a struggling legitimate Diablo II player on the Realms, that Pindlebot, Maphack, and other cheats, hacks, and scripts like yours make it very difficult for players such as myself to avoid being killed by overpowered pks in public games, or to compete in a crowded Pindlebot and hacked item economy. Honestly, I would very much appreciate it if you specified in your license that your product could not be used on the Realms, or if you instituted some form of technical control. I think other legit players would as well.
Re:d2jsp license (Score:3, Insightful)
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.
Re:d2jsp license (Score:2, Interesting)
Re:d2jsp license (Score:1)
Go back to your socialist country and stop trying to impose your opinions as word of god.
Re:d2jsp license (Score:2)
Re:d2jsp license (Score:2)
Re:d2jsp license (Score:1)
1) I pretty much quit playing D2 when I started work on d2jsp. The state of the realms is in fact so bad that it is both not rewarding, nor fun, due to the sheer number of cheaters out there. I have only recently even USED it [d2jsp], and that was for the enjoyment of writing intelligent scripts, and of course getting items for the free item giveaways that I host.
2) When I do play, and did play, I never once used any hacks/chea
Re:d2jsp license (Score:2, Interesting)
Just like it's impossible to write a program that cannot be cracked, it is also impossible to stop someone from being able to write a cheat or hack for a game. Given enough time, and enough interest, anyone with the skills necissary would be able to accomplish something like this for *any* game out there, past, present, or future. The only way to prevent this is to make it on a console (a very hard to hack medium). And even then, it's always going
Re:d2jsp license (Score:2)
No, not *instead*, because it doesn't *remove* hacked and duped ones. What bots do is to *add* more botted items to the market along with the hacked and duped ones that previously were there, something many don't like since they skew the in-game economy even more.
Déjà vu (Score:1)
slapping a licence agreement on a program whose sole purpose is to violate another programs licence agreement.
You mean like airlines vs. farechase [slashdot.org]?
Server-side scripting (Score:2)
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.
The right concept for the wrong game (Score:5, Insightful)
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?
Scripts (Score:1)
truly a new era of bizarreness (Score:2)
Reminds me of RealTimeBattle [sourceforge.net], only not as flexible.
It's a hall of mirrors!
Definition of a good game... (Score:1)
Let's rewrite the turing test, buddy ;-)
Re:Definition of a good game... (Score:1)
Re:Definition of a good game... (Score:1)
So, any candidates in that room ?
CAPTCHA (Score:1)
I don't belive it would be possible to program anything on conventional computers with known technolgies that another program couldn't be written to automate.
Take a look at a Slashdot story [slashdot.org] and an article I wrote [everything2.com] about the CAPTCHA project [captcha.net].
Re:CAPTCHA (Score:1)
Oh no, Am i a bot ???
Re:Definition of a good game... (Score:1)
Re:Not the first... (Score:2, Interesting)
a) No javascript engine has ever been "incorporated into" DiabloII. Probably never will be.
b) njaguar didn't copy the idea from smoke, and he didn't do it out of "smite" (could you possibly have meant "spite"?). The idea has been around since '98 or before when Jared Armstrong wrote the first console for the game "Sin". For DOS, even. The console has a familiar name if you have looked through
c) d2jsp is by no means a reverse-engineered JED, and njaguar has better means of "exercise". d2jsp is utterly different at the very core of the program. To be certain, DiabloWorld, morg, et. al., would have loved to have njaguar hang around and give them all this glory and thunder. But since he did not have to use the same hacked/phony packets (he uses none), nor be reliant upon programs such as d2HackIt in his scripting, he properly did NOT name his program a JED release, and he SHOULD take the full credit that he deserves. The credit for going this distance is his alone.
And just so that you stay current, Anonymous Coward, Smoke is still posting at DiabloWorld. Check out his comments in morg's DiabloWorld forum, in her piteous attempt to slam njaguar in any manner possible. I won't corrupt this post with a link to that ugliness. In that very post, smoke recognises d2jsp's superiority, and I suspect that this will forever be the thorn in morg's side. Anyhow, If smoke needs additional credit (and it appears that he does not), by all means, let him do the work. Elsewise his programming time was up long ago; his work finished on a console which has hit an obsolescence out of his own complaisance or lack of interest, remaining utterly and fully dependant on d2hackit and/or other people's code.
So please, take smoke's own advice to stop sniping, and just play quietly in your own sandbox. Honestly, the folks at d2jsp won't miss hearing you whine a bit, I promise.
Re:Not the first... (Score:1)
Re:Not the first... (Score:1)
Re:Not the first... (Score:1)
History repeats itself... (Score:3, Informative)
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!
Re:History repeats itself... (Score:1)
okay ... I'll be the one to say it ... (Score:1)
Re:okay ... I'll be the one to say it ... (Score:1)
Why Diablo II bots are often frowned upon... (Score:4, Insightful)
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.
Re:Why Diablo II bots are often frowned upon... (Score:1)
This is why we have our own realm (Score:4, Insightful)
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.