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!"
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.
If tits were wings it'd be flying around.
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!
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?
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".