Slashdot Mirror


Rogue and Tetris ported to . . . . . Diablo II?!?!

lord2800 writes "While Diablo II is nearing the end of it useable life-cycle, it would seem that Diablo II hacking is still alive and well. Diablo II hacking pioneer Syadasti (Mike Gogulski), has recently ported and released both Rogue and Tetris for Diablo II. Since Blizzard has not yet released their upcoming patch, is it left up to the open source programmers to breathe some life into modern games, with a little retro twist. A quote from the author: Finally, an answer to the question "what the hell do I do while my bot is running?" Play Tetris! Grab yours today at from Otaku-Elite. Requires bind.d2h and d2hackit. Self-documenting. (tetris.d2h features an autopilot mode as well, so if you get as tired of playing Tetris as you are of playing Diablo II, well just turn that puppy on and let the computer play for you) Syadasti (Mike Gogulski) is also the Head of Research for the d2jsp Development Team which, among other things, has embedded a Javascript engine within Diablo II to facilitate the creation of AI "bots" which can play the game on their own, "thus freeing the user from the tedium of playing with ... er ... for ... himself," he says."

31 of 127 comments (clear)

  1. It's appropriate by PenguinLord · · Score: 5, Insightful

    After all Diablo really is just a slick commercial version of rogue/nethack

  2. Progress Quest by BabyDave · · Score: 5, Informative
    ... which, among other things, has embedded a Javascript engine within Diablo II to facilitate the creation of AI "bots" which can play the game on their own, "thus freeing the user from the tedium of playing with ... er ... for ... himself," he says."
    Sounds like Progress Quest
    1. Re:Progress Quest by PhoenxHwk · · Score: 3, Funny

      The sad thing about Progress Quest is that it can be almost as addictive as Diablo (or similar games based on leveling up). But at the same time, it's funny as hell! "Oh look, I just got a +25 vicious biting poleaxe of destruction!!"

  3. Progressquest by Frank+of+Earth · · Score: 4, Interesting

    thus freeing the user from the tedium of playing with ... er ... for ... himself

    Why bother playing at all? I gave up playing mud for Progress Quest

    Nobody can beat my level 66 battle finch!

  4. Employ him! by e8johan · · Score: 5, Funny

    Get this guy to work with your applications, and suddenly your word processor turns into an adventure game, you surface plots fill with small creatures fighting and, well, your internet browser turns into a pacman clone.

    I'd say that this shows that todays game engines are pretty flexible, to say the least. How about hacking Quake into a Pacman clone, imagine your own mirror image: big, yellow and round with a mouth covering 50% of your body. And wouldn't it be nicer to get hunted by yellow, pink and blue ghosts instead of really scary corpses and zombies...

    1. Re:Employ him! by ActiveSX · · Score: 3, Informative

      your internet browser turns into a pacman clone

      Not that that would be too particularly innovative.

    2. Re:Employ him! by vrmlknight · · Score: 5, Funny

      you mean it's turning into Emacs

      --
      This must be Thursday, I never could get the hang of Thursdays.
  5. Re:i guess this answers the question.. by cei · · Score: 4, Interesting

    Sure. It's not even particularly new. (ok, hacking totally diffferent platform styles into an existing game MAY be...) but back in 1990 I was using the level editor that came with Arkanoid 2: Revenge of Doh to build self clearing boards of increasing complexity. Since all the angles in paddle/ball games are predictable, you could arrange bricks in such a fashion that releasing the initial ball from center, far right or far left would clear the board without further player input.

    --
    This sig intentionally left justified.
  6. "Gem Game" by c.emmertfoster · · Score: 5, Funny

    In EverQuest, there's a built-in feature similar to this called the "gem game," which is what one plays while EQ itself becomes tedious. I would assume that this feature is used a great deal.

    --
    We can neither love nor pity nor forgive. If you make a slip in handling us you die!
  7. Disappointment by Per+Abrahamsen · · Score: 5, Interesting

    I hoped it was classic rogue implement as an ordinary Diablo II quest.

    1. Re:Disappointment by carlhirsch · · Score: 3, Funny

      Agreed - using Diablo II as a 3d frontend for Nethack or Rogue would be nice, right down to the 3d textured pound signs for walls and a view of your character as a giant ray-shaded "@" symbol.

      Pehaps another 3d fps would be more up to that level of customization.

      --
      . We've got computers, we're tapping phone lines, you know that ain't allowed - Talking Heads, "Life During Wartime"
  8. Sounds like... by Jubii · · Score: 5, Funny

    It's for people with really short attention spans who don't like to swap CD's. "Well I'm bored with Diablo... hey how 'bout Tetris" and then, "Stupid Tetris, I'll just play some Diablo."

    Now Doctor Mario! There's a game to port!

    --

    I planned on inserting something witty here but never got around to it.
  9. Trivial.... by jukal · · Score: 4, Interesting
    Now, a real challenge would be to port Diablo II to run inside .... The original tetris. Or even better: port tetris to run inside the bricks - ohh, but that's already done.

    LONDON, England -- A newlywed man has been jailed for four months after playing a game of Tetris on his mobile phone during the flight back from his honeymoon

  10. Tetris for Diablo 2 might be ILLEGAL by yerricde · · Score: 4, Interesting
    --
    Will I retire or break 10K?
    1. Re:Tetris for Diablo 2 might be ILLEGAL by Sinistar2k · · Score: 3, Offtopic

      Never mind the Tetris mark, watch out for Blizzard/Vivendi who HATE anything that makes their game more fun for people.

  11. Working link to Tetris trademark by yerricde · · Score: 3, Informative

    TESS expires URLs at the end of a user's session. Here's a permane nt link to the TETRIS trademark registration record.

    --
    Will I retire or break 10K?
  12. Golf Hack by Perdo · · Score: 5, Insightful

    There was a flash based golf game that was the rage several years ago. I got tired of playing so I wrote a macro to play for me. After some script tweaking and 2 days of run time I had the top 10 scores sewn up out of over 3 million users.

    The game was pulled by the website hosting it.

    Using a bot to play a game is pretty lame.

    I was working on a CS bot at the time too. It never saw the light of day after I realized just how lame it was.

    Play for fun. Hack AI to provide yourself challenge. Do not hack to play.

    --

    If voting were effective, it would be illegal by now.

    1. Re:Golf Hack by Perdo · · Score: 5, Interesting

      Actually it took only a few seconds. I used key express to record mouse movements and button presses. I tweaked the timing by hand later. There is no point letting a bot play that is not perfect. Perfect timing is one of the few things that computers have when it comes to games. Well, they can also play perfectly for two days straight to compensate for the randomness inherent to the game.... without getting bored.

      The golf game was not even reasonably complex. It was just a driver distance game. Five commands: Begin the swing, Wait .975 seconds timed for cut/slice then click again, wait a second and "try again". A high score would inturrupt the macro with a fault, because an "enter you name" dialog box would appear instead of a "try again" button.

      It took some coder a week to code and I broke it in a few seconds. Made me feel like an utter piece of crap. It would have been neat to have just one high score up there. But I had all ten, was playing 4 games every second with 12 instances running. What I did was DOS the game out of existance. Inelligant and Ignorant.

      --

      If voting were effective, it would be illegal by now.

    2. Re:Golf Hack by Rogerborg · · Score: 4, Insightful
      • Using a bot to play a game is pretty lame.

      Writing a game that a bot can beat a human at is pretty lame. I spent years hacking a netrek cyborg/bot client, and finally came to the conclusion that I was, by and large, wasting my time. Info features were useful, but as for getting it to fly and aim weapons, it got smacked by clued human players nearly every time, because the mechanics of combat meant that you had to beat the opponent, not beat the game engine. It shocks me just how badly designed most commercial game are in this respect: they give too much info to clients, they trust clients too much, and they allow dreadful behaviour like "Make an immediate turn to point right at opponent X, and fire the railgun. Gib!" Tsk tsk.

      --
      If you were blocking sigs, you wouldn't have to read this.
  13. That's been done better: Dark Rain by Qbertino · · Score: 5, Interesting

    Dark Reign II has an official add-on that lets you play a Tetris Clone called "Dark Rain" when you're in a warroom waiting for a match.
    *That* is cool.

    --
    We suffer more in our imagination than in reality. - Seneca
  14. Re:Ultima Online by jukal · · Score: 5, Funny
    > I'm at school right now and I'm playing UO at home^^

    Uh, can you hear *ban*, RUSH home, UO moderators are closing your account right now. Ever heard that they kind of dislike unattended macroing (and that they might also be rather active slashdot readers). ;) ?

  15. Next in Game Hacking... by DragonMagic · · Score: 5, Funny

    Hacking the game hack in the game hack in the game!

    Tired of Tetris in Diablo II? Play NetHack in Tetris in Diablo II!

    Well, it would be an interesting thought, how far into a game can you hack before it becomes useless to do so?

    --

    Human nature is the same everywhere; the modes only are different. -- Earl of Chesterfield
  16. Pong by CTRamsden · · Score: 3, Funny

    What we need next is a Pong hack.

    You can't beat Pong.

  17. Potty break, or Core Wars by yerricde · · Score: 3, Interesting

    Using a bot to play a game is pretty lame.

    Not always. What if you really have to use the restroom? Slashdot previously covered an effort to have the game take over for you during a potty break, which is better than pausing an online game.

    I was working on a CS bot at the time too. It never saw the light of day after I realized just how lame it was.

    Ever heard of Core Wars? That was one of the first popular bot vs. bot games. You wrote a program, and your opponent wrote a program, and both programs ran in the same memory space. First program to segfault loses.

    --
    Will I retire or break 10K?
    1. Re:Potty break, or Core Wars by Zathrus · · Score: 4, Insightful

      What if you really have to use the restroom?

      So go to the restroom. Oh, you might lose? Yeah... so what? If you're playing on the stratospheric level where there's actually money involved that's one thing. Otherwise does it really matter?

      And yes, I play online games. I know that there's other people playing as well and that in team games they're relying on you -- if you can't just quit the game to go AFK, then let them know you're AFK and they'll cover for you.

      Ever heard of Core Wars? That was one of the first popular bot vs. bot games

      Non sequitor. The OP was not playing a bot-vs-bot game, where the purpose is to write a better program than your adversary. It's a level playing field.

      Writing a bot for a human played game may show you have programming skill, but actually using it to defeat other players is just lame. It doesn't prove you have any skill regarding the actual game. It just proves that you can code and are willing to cheat to make you look better.

      Using a bot written by someone else to play is even lamer. That just shows you have no skill in any manner.

    2. Re:Potty break, or Core Wars by Loki_1929 · · Score: 3, Interesting

      "Using a bot written by someone else to play is even lamer. That just shows you have no skill in any manner."

      From the point of view of an outside observer, I can see this point. However, one of the things I used to do when playing Quake II: Weapons of Destruction was to hop on a server where at least a couple of bots were running around. It used to annoy the hell out of me when I found what was obviously a bot playing on a server (firing rail shots without facing you, etc), but once I started to get a bit better in the game, I began using them for practice. It's like playing against the best players in the game any time you like; after a while, that's the level on which you're playing. Once you become a difficult target for a bot, you become an nearly impossible target for a human. And if you've only got two or three chances at most to kill your target, you learn to fire accurately and quickly. The end result was that I could log on and cream some of the best players in the game at the time. It was even more fun when logging onto a server with 15 or 20 mediocre players and slaughtering all of them while they complain about how you must be a bot, because no one can move like that and fire that accurately. ;)

      Props to RAV, we were young and cocky, but hot damn we were good. :)

      --
      -- "Government is the great fiction through which everybody endeavors to live at the expense of everybody else."
  18. so, what language are these things in? by kisrael · · Score: 3, Interesting

    So are these written in some clever macrolanguage, or are they external modules using some kind of plugin, or what? Obviously the games don't look very Diablo-y (save for the font), and it seems the programs are just using some kind of console feature as a text display.

    I guess my Diablo experience is pretty limited anyway, all I remember is cow-orkers playing it in '97 and the one shopkeeper who'd say "wot kin I DEWWWW fer ya?"

    --
    SO YOU'RE GOING TO DIE: The Comic for Dealing with Death
    1. Re:so, what language are these things in? by Anonymous Coward · · Score: 4, Interesting

      Here's how it works. There is a clever hack called d2hackit. The way it works is very complicated but to put it short...

      1) Gain access to the running diablo ii process
      2) replace the diablo 2 window's message handler with a dumby one to trick diablo ii into loading some assembly code.
      3) The assembly code loads up a dll and therefore causes the dllmain function to be executed.

      That's how the loader works.
      Now, let's get an idea of how d2hackit works.

      1) Patches variuos diablo ii functions so that it can intercept them and then run custom code. (replace an assembly call with a jmp call to your own code, execute... have another jmp call return it back to the diablo code.
      2) Locates various functions for send messages, packets, etc... (makes them available so that the d2hackit can print messages to the user or spoof packets to the battlenet servers)
      3) Creates a sort of command line system using the text message prompt.
      4) implements various commands for loading up other custom dynamic libraries

      Okay, now that you have an idea of how the hack actually inserts itself into the diablo runtime, let's evaluate what it took to get this example to work.

      1) Locate the Diablo II call for printing text to the D3D context.
      2) Port a text based tetris game to the windows api and modify it to print the text to the diablo ii window instead of to a terminal.

      To all you /. computer geeks... you should take a look at some of the source code for d2hackit. Pure genious... definitely the route to take when you want to write some insanely cool hacks for your favorite games. However, it's not for the faint of heart!

  19. What's the point!!! by nexusone · · Score: 4, Funny

    What's the point of having a AI play your game for you.

    To me sort of like having someone else make love to your girl friend for you, while you watch!

    Then again some of you may enjoy that...... :-)

    --
    Wise men speak because they have something to say, Fools because they have to say something!!!!
    1. Re:What's the point!!! by frost22 · · Score: 3, Insightful

      Two words: Item hunt.

      Some people run bots that kill the same highlevel monster over and over and over, and looks for valuable items dropped there. Doing that yourself is tedious and boring (its called boss runs) but its the only way to get hold of the items you need to survive in the higher levels. So people either do Boss runs by hand (ultra boring, and you never stand the chance to even get close to what the bots make), run bots doing it for them, use cheating and hacking tools to dupe or steal their way into the item economy or buy stuff on ebay and friends, spending real dolares (or euros).

      All 4 ways suck.

      And Blizzard, in its eternal wisdom, has announced to make the game even harder to beat, thus making the pressure to get good items even more urgent.

      Dont believe those assholes claiming DiabloII is "too easy" or such. People who say that are those who already have all the über items.

      There is a kind of glass ceiling in the game. If you dont have the right items, you never stand a chance to get to a place where you might find them.

      I've tried for months to break through that ceiling while doing neither runs nor the other methods. No friggin chance in hell.

      --
      ...and here I stand, with all my lore, poor fool, no wiser than before.
  20. Speaking of Rogue... by saddino · · Score: 3, Interesting
    has embedded a Javascript engine within Diablo II to facilitate the creation of AI "bots" which can play the game on their own, "thus freeing the user from the tedium of playing with ... er ... for ... himself," he says."


    Interestingly, Rogue also spawned the first (AFAIK) game playing bot, Rog-O-Matic back in 1984. In a way, it really ruined the game, as top ten lists on mainframes all over began to fill up with "Rog-O-Matic" entries. However, watching it play (ultrafast) was mesmerizing.

    I don't think it took advantage of the infamous arrow bug though... ;-)