Game bots in java?

N

no_sp4m

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
 
N

no_sp4m

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).
 
A

Andrea Francia

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.
 
N

no_sp4m

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
 
L

Luke

No API. This is not allowed.


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


This maybe an issue. Can someone confirm this?

Christian

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

Arved Sandstrom

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
 
C

Christian

Arved said:
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
 
O

Owen Jacobson

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
 
A

Arne Vajhøj

Luke said:
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
 

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,482
Members
44,901
Latest member
Noble71S45

Latest Threads

Top