Game bots in java?

Discussion in 'Java' started by no_sp4m@arcor.de, May 2, 2008.

  1. Guest

    Hi everyone,

    I was wondering if it is possible to write bots for computer games in
    Java. I know there are planty of them online, but it would be nice to
    develope one just for fun. At the moment I am planning to write one
    for World of Warcraft. I know it is against the rules but I do not
    care and I am only interested in the technology and do not want to
    make profit of my application.

    The question is: how it is done? Does anyone have experience with this
    kind of applications? Can you give me some hints?

    In few sentences I would try it like this:

    1. Read game's memory (process), find information about player (like
    life, position, are there any monsters near the player etc.).
    2. Send actions to game's process like key combinations or mouse
    position/clicks based on information read from game's virtual memory.

    What do you think about the technology?

    Christian
    , May 2, 2008
    #1
    1. Advertising

  2. Luke Guest

    Luke, May 2, 2008
    #2
    1. Advertising

  3. Guest

    On 2 Mai, 14:13, Luke <> wrote:
    > Checkhttp://robocode.sourceforge.net/.


    Well ok, these are bots but the code has nothing to do with moving
    characters by sending data to the game process (just independent
    application with objects moving around).
    , May 2, 2008
    #3
  4. wrote:
    > Hi everyone,
    >
    > I was wondering if it is possible to write bots for computer games in
    > Java. I know there are planty of them online, but it would be nice to
    > develope one just for fun. At the moment I am planning to write one
    > for World of Warcraft. I know it is against the rules but I do not
    > care and I am only interested in the technology and do not want to
    > make profit of my application.
    >
    > The question is: how it is done? Does anyone have experience with this
    > kind of applications? Can you give me some hints?
    >
    > In few sentences I would try it like this:
    >
    > 1. Read game's memory (process), find information about player (like
    > life, position, are there any monsters near the player etc.).
    > 2. Send actions to game's process like key combinations or mouse
    > position/clicks based on information read from game's virtual memory.
    >
    > What do you think about the technology?


    If this game (World of Warcraft) doesn't have an API it could be very
    difficult to interface your bot to it.

    I suggest you to search if a such interface is already written before
    thinking about create it by yourself.

    I don't know if it is possible access to some other process memory in Java.

    --
    Andrea Francia
    alias rm='trash' #use trash command instead of removing
    rm -Rfv file #put the file in the KDE trashcan
    http://www.andreafrancia.it/trash
    Andrea Francia, May 2, 2008
    #4
  5. Guest

    On 2 Mai, 14:57, Andrea Francia <> wrote:

    > If this game (World of Warcraft) doesn't have an API it could be very
    > difficult to interface your bot to it.


    No API. This is not allowed.

    > I suggest you to search if a such interface is already written before
    > thinking about create it by yourself.


    There are several interfaces (not open source) but I want to create
    one by myself ;-) And not only for this one game.

    > I don't know if it is possible access to some other process memory in Java.


    This maybe an issue. Can someone confirm this?

    Christian
    , May 2, 2008
    #5
  6. Luke Guest

    On 2 Mai, 15:09, wrote:
    > On 2 Mai, 14:57, Andrea Francia <> wrote:
    >
    > > If this game (World of Warcraft) doesn't have an API it could be very
    > > difficult to interface your bot to it.

    >
    > No API. This is not allowed.
    >
    > > I suggest you to search if a such interface is already written before
    > > thinking about create it by yourself.

    >
    > There are several interfaces (not open source) but I want to create
    > one by myself ;-) And not only for this one game.
    >
    > > I don't know if it is possible access to some other process memory in Java.

    >
    > This maybe an issue. Can someone confirm this?
    >
    > Christian


    It is not possible using pure Java.. But you may use little JNI Magic..
    Luke, May 2, 2008
    #6
  7. <> wrote in message
    news:...
    > Hi everyone,
    >
    > I was wondering if it is possible to write bots for computer games in
    > Java. I know there are planty of them online, but it would be nice to
    > develope one just for fun. At the moment I am planning to write one
    > for World of Warcraft. I know it is against the rules but I do not
    > care and I am only interested in the technology and do not want to
    > make profit of my application.

    [ SNIP ]

    Just out of curiosity I took a look at the WoW EULA. That's a hell of a
    document. I don't know why anyone in their right mind would agree to it.

    AHS
    Arved Sandstrom, May 2, 2008
    #7
  8. Christian Guest

    Arved Sandstrom schrieb:
    > Just out of curiosity I took a look at the WoW EULA. That's a hell of a
    > document. I don't know why anyone in their right mind would agree to it.
    >
    > AHS
    >
    >

    WoW has a 3 times higher addiction rate than Crack.

    I think that should answer the question doesn't it?

    Christian
    Christian, May 2, 2008
    #8
  9. On May 2, 2:53 pm, "Arved Sandstrom" <> wrote:
    > <> wrote in message
    >
    > news:...> Hi everyone,
    >
    > > I was wondering if it is possible to write bots for computer games in
    > > Java. I know there are planty of them online, but it would be nice to
    > > develope one just for fun. At the moment I am planning to write one
    > > for World of Warcraft. I know it is against the rules but I do not
    > > care and I am only interested in the technology and do not want to
    > > make profit of my application.

    >
    > [ SNIP ]
    >
    > Just out of curiosity I took a look at the WoW EULA. That's a hell of a
    > document. I don't know why anyone in their right mind would agree to it.


    The EULA, like many, is essentially unenforcable beyond the provisions
    of copyright law in your country. If you happen to be in the U.S.,
    well, lobby for saner software copyrights and customer rights.

    The Terms of Use (TOU/TOS) is the document that matters: it dictates
    the terms under which you are permitted to play on Blizzard's servers,
    and it includes some fairly hilarious items of its own (such as: they
    can terminate your service if you play on unsanctioned servers, or if
    you are reverse-engineering the protocol, or if you automate gameplay,
    or if it happens to be the third Tuesday of the month and you're not
    wearing blue). The OP's project is a violation of specific terms in
    the TOU, and will therefore not be permitted for very long against
    Blizzard's servers. See, eg., WoWGlider for an example of how quickly
    Blizzard acts to shut down attempts to automate gameplay.

    To the OP: of course, Java can in theory automate gameplay in any
    network game, by emitting network traffic indistinguishable from the
    traffic emitted by a real client. However, you would have to reverse-
    engineer the network protocols involved, since Blizzard does not
    publish a specification. This is not a trivial task.

    Reaching in to manipulate and monitor an existing client, instead, is
    somewhat complicated because the only interface most game clients
    (including WoW's) expose is the client/server network protocol. As
    others have suggested, for any given platform you may be able to write
    some native glue to reach into the client's address space and monitor
    or modify data there directly, but at that point you might be better
    off writing your bot in a language with a less-onerous native
    interface.

    -o
    Owen Jacobson, May 2, 2008
    #9
  10. Arne Vajhøj Guest

    Luke wrote:
    > On 2 Mai, 15:09, wrote:
    >> On 2 Mai, 14:57, Andrea Francia <> wrote:
    >>> If this game (World of Warcraft) doesn't have an API it could be very
    >>> difficult to interface your bot to it.

    >> No API. This is not allowed.
    >>
    >>> I suggest you to search if a such interface is already written before
    >>> thinking about create it by yourself.

    >> There are several interfaces (not open source) but I want to create
    >> one by myself ;-) And not only for this one game.
    >>
    >>> I don't know if it is possible access to some other process memory in Java.

    >> This maybe an issue. Can someone confirm this?

    >
    > It is not possible using pure Java.. But you may use little JNI Magic..


    If the network protocol is known, then it is possible in pure Java.

    Arne
    Arne Vajhøj, May 2, 2008
    #10
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. BlackHawke
    Replies:
    12
    Views:
    1,564
    Andrew Thompson
    Jan 26, 2004
  2. judith
    Replies:
    0
    Views:
    1,646
    judith
    Nov 1, 2006
  3. Max Kubierschky
    Replies:
    10
    Views:
    1,839
    pabloreda
    Mar 31, 2007
  4. Advertiser for `2D Games Development Central`

    {Game Development} 2D Game Development Central

    Advertiser for `2D Games Development Central`, May 7, 2008, in forum: Java
    Replies:
    2
    Views:
    410
    RedGrittyBrick
    May 8, 2008
  5. Advertiser for `2D Games Development Central`

    {Game Development} 2D Game Development Central

    Advertiser for `2D Games Development Central`, May 7, 2008, in forum: C++
    Replies:
    0
    Views:
    389
    Advertiser for `2D Games Development Central`
    May 7, 2008
Loading...

Share This Page