StoogeBot FAQ
Frequently Answered Questions about the Stanford StoogeBot
I want to run both Quake and the StoogeBot on the same machine, but I
can't get things to work. Can you please help me?
First of all, running Quake and the StoogeBot at the
same time on the same machine requires an O/S with preemtive
multitasking. For most of you, this means using either Windows 95 or
Windows NT. Second, the StoogeBot needs memory to run. Quake and Windows
95 can easily soak up 16 MB of memory, so make sure that you have quite a
bit more than this. Systems with at least 32 MB of memory seem to work for
most people.
That said, you should first take another look at the README file that came
with the StoogeBot, and if that doesn't help, then you should take a look
at the rest of the questions in this FAQ. If the FAQ fails to help, then
send us a short message describing the problems that you're having.
My Quake client says "no response" when I try to connect to
the StoogeBot. Why?
Either the server you've chosen is unreachable, the StoogeBot and your
Quake client have become out of sync, or you're connecting to the StoogeBot
incorrectly. If the StoogeBot is reporting that it received packets from
the server, try connecting to the StoogeBot again. If the StoogeBot isn't
reporting a response from the server, then server is probably down; try a
different server. If you're certain that the server is up, make sure that
your Quake client is attempting to connect to the "listen" port
reported by the StoogeBot when you started it. For example, if, when you
start it, the StoogeBot prints out something like:
[...]
using proxy address
100.200.666.42:26003
waiting for a
connection...
you should type:
port 26003
followed by:
connect
100.200.666.42
at the Quake console.
If the port number is 26000, you don't have to use the "port"
command.
When I try to connect to the StoogeBot, my Quake client says
"no response", but then I look at the StoogeBot output, and I see
that the StoogeBot has received packets. What's going on?
Unfortunately, the StoogeBot prints out some extra
information when it's sitting there waiting for a connection. The bottom
line is that you're probably connecting to the StoogeBot incorrectly. See
the answer to the previous question for more details.
Sometimes I notice that, when my Quake client says
"no
response," the StoogeBot says that the connection
was accepted. What does this mean, and what should I do?
This combination of events
means that the StoogeBot and your Quake client have gotten out of sync.
Try reconnecting to the StoogeBot so that it will attempt to make another connection with the server.
When I try to
connect to the StoogeBot, I sometimes get a "bad response". Why?
The StoogeBot and your Quake
client can become out of sync. If you have this problem, try
connecting to the StoogeBot again.
Can I run the StoogeBot in single player mode?
If you're a masochist with a really powerful
computer, then take a look at the next question. Otherwise, the answer is
no.
Is there a way to use the StoogeBot on a server running on my own
machine?
No, but if you're a masochist with a really
powerful computer, then you might want to try the following:
First, if you haven't done so already, download
and install the "winded" dedicated Quake server. The dedicated server can
be found at id Software's ftp site:
Once you've installed the dedicated server, start it from a DOS window.
For a single player game against monsters, start the server with:
winded -noipx -dedicated 1 +coop 1
For a sixteen-player deathmatch, start the server with:
winded -noipx -dedicated 16
In both cases, the -noipx switch is essential, as the StoogeBot
can't speak IPX. The -dedicated switch, while not strictly
required, is used to set the maximum allowed number of players.
The next step is to start the StoogeBot in another DOS window. Use the
following command to accomplish this:
stooge -port 26001 localhost
the -port switch tells the StoogeBot which port to listen on
while waiting for an incoming connection. It must be different from the
default port 26000 used by the dedicated server; here, port 26001 is used.
The last step is to launch a normal Quake client and to connect to the
StoogeBot. To do this, start Quake as usual, bring up the console, and
type:
port 26001
followed by:
connect localhost
In case you were wondering, localhost is a magic name which
automatically refers to the machine you are running on.
It's important to reiterate that running a dedicated Quake server, a Quake
client, and the StoogeBot all on the same machine at the same time is an
immense load in terms of both memory and processing power. Don't get your
hopes up before trying this, because it probably won't work.
I play Quake on an IPX network. Is the StoogeBot compatible with IPX?
Unfortunately, the StoogeBot requires TCP/IP and won't work with IPX.
How can I get my hands on the source code for the StoogeBot?
At the moment, you can't. However, once the
security issues in Quake have been resolved, we intend to release our
source.
It's impossible to make a secure network protocol with an
adversarial client. Are you guys morons?
While it's impossible to guarantee that somebody
isn't using unadvertised client-side "assistance" in a game like
Quake, the idea isn't to make a completely secure network protocol.
Rather, the idea is to discourage cheating, first by making the game's
network protocol "secure enough" to discourage trivial
circumvention, and second by adopting a means of allowing server
administrators to set bot policies which either permit or forbid bot use on
their servers.
Since a secure network protocol is impossible, it doesn't make sense
for you not to make the source code available now. Will you please send me
a copy?
No.
Having the in front of my name spoils my fun. Is there a way
to get rid of it?
Of course! Simply play Quake without playing
through the StoogeBot.
Aren't you worried that the StoogeBot will ruin Quake?
We are avid unassisted Quake players, and the last thing we want to see is
the StoogeBot ruin internet gameplay. While administrators can ban the
StoogeBot by including the phrase "no bots" in their
center-printed welcome screen, it is inevitable that some low-life will try
to work around this in an attempt to cheat.
Unfortunately, cheating in an internet game is relatively easy, and nearly
impossible to prevent. For the most part, this is true even if some kind
of client authorization scheme is used. Nevertheless, we hope that game
companies will include some sort of client authentication in future games
and that id Software will add authentication to both Quake and QuakeWorld.
At the very least, this will make it easier for server administrators to
identify bots and exclude them from play, should they choose to do so.
I think there are "hacked" StoogeBots on my server. What should I do?
Unfortunately, it is inevitable that some
low-life will try to remove the StoogeBot's safeties in an attempt to
cheat. We think that this is beneath contempt, and will gladly help
you if you think that your server is being harassed by one of these
boneheads. Simply drop
us a line. To get you started with a list of suggestions, we
reproduce an item from our so-called
StoogeBot Manifesto:
The Top Ten Ways to Spoil the StoogeBot's Fun
|
10.
|
Switch to running a QuakeWorld server.
|
9.
|
Change the speeds of the projectiles.
|
8.
|
Highlight a weapon other than the one the player is using.
|
7.
|
Send the client invalid packets and watch the StoogeBot crash.
|
6.
|
Place "no bots please" in your server's welcome message.
|
5.
|
Build a bot detector and allow it to kick bots off of your server.
|
4.
|
Forward all players to a hidden server port.
|
3.
|
Require the player to send impulse 128 to enter the game.
|
2.
|
Encourage id to make the network protocol more secure.
|
|
... and finally [drumroll, please] ...
|
1.
|
Three simple words: "humans only please".
|
Is the StoogeBot really a bot?
Yes, though a more
accurate term would be "cyborg". The StoogeBot is a proxy
which sits between a local Quake client and a
remote Quake server
and performs target selection and fire control. A human player is
responsible for everything else, including navigation, dodging
hostile fire, seeking out items and targets, and most importantly,
thinking and acting strategically.
How good is the
StoogeBot?
When the bot is being
operated by somebody who is also a good "unassisted" player,
and when the bot has a decent connection to the server, the result is
usually a very effective gib-generating team. In straight deathmatches
on public servers, frag ratios of 3 to 1 in the StoogeBot's favor are
very common.
Does the bot ever
miss?
Absolutely. Weapons
like the rocket launcher take time to reach their
intended targets, and the bot must predict the motion of its targets in
order to hit them. Even for "instantaneous" weapons like the shotgun,
there is a network-imposed delay between the time that the bot decides
to fire and the time the server acts upon that decision; the bot must also
predict player movement during this delay. In either case, if the bot
mispredicts, it can miss.
How can I tell if
somebody is using the StoogeBot?
First, the player
will have an "SBot" prepended to his or her
name. Secondly, you will notice that the player can jump over obstacles
and navigate twisty passages while facing backwards. Third, you might see
the player rapidly switching between multiple targets, hitting them
with uncanny accuracy. A player matching this
description might be using the StoogeBot.
The StoogeBot is
firing too late, or behind players. What's wrong?
Your latency setting
is too low. Increase it using the StoogeBot Options menu until shots
seem to be on target. A good first guess for the proper value is one
half of your ping time as reported by the "ping" Quake
console command.
The StoogeBot is
firing too early, or in front of players? Ideas?
Your latency setting
is too high; decrease it using the StoogeBot Options menu.
I'm having trouble
getting out of the water when the StoogeBot is firing at somebody. Why?
There are some subtle
interactions in the movement/firing direction decoupling that can cause
underwater movement to be counter-intuitive when the bot is targeting
an enemy. If you have problems getting out of the water, try shooting
your weapon manually while exiting; this should solve the problem.
The StoogeBot fired
a rocket into the wall and killed me, even though my splash damage was
set to a high number. What's wrong with that knucklehead, anyway?
The Stooge can
accidently hurt itself if it mispredicts your motion, or if somebody
unexpectedly gets in the way of a shot. The moral? Be careful with
those quad rockets!
Last updated on Friday, March 14, 1997.
|