Quake Terminus: Hi RichMark and thank you for taking the time to do this interview. You
are the creator of Quakebot the Netquake & Quakeworld Proxy Bot. A Proxy Bot
sits between the Quake client and the Quake server and enhances the player's
abilities (i.e., aiming, firing and other functions). These Proxy Bots
effectively turn the individual player into a kind of cyborg. Can you
explain briefly how it does this?
RickMark: Sure thing. Quake uses a client/server architecture in which the player is
the client. Everybody who plays Netquake is familiar with the process of
connecting to the server. To get the proxy bot to sit between you and the
server is a two step process. First, the proxy connects to the server very
much as you would with Netquake. As far as the game server goes, the proxy
is the player. The next step is for the human player to start Netquake and
connect to the proxy instead of connecting to the game server. Now the proxy
is in place to modify the game information sent to you and modify the game
information you are sending to the remote game server.
Many proxies can actually play the game completely by themselves if the
right command line flags are set. Besides being about to ping spoof,
highlight opponents and time item spawning the proxies can project the
motion of an opponent and determine the proper lead required to compensate
for weapon speed and server lag. It is this enhanced firing ability that is
at the core of why some people use them and others hate them.
Quake Terminus: The question everybody wants to ask, is why do you work on Quake proxy
bot? Why do you work on something that is designed primarily for cheating?
RickMark: That's two questions...
a) Why work on Quakebot?
This answer is simple, it's because I enjoy it. The coding problem is
interesting and has forced me to expand my coding abilities. It is a way to
learn and improve a useful, employable skill with limited drudgery.
Debugging this code is a blast!
b) Why do you work on something that is designed primarily for cheating?
... Uhh, because I had to stop beating my wife? :)
Quake comes with standard cheats like "fly" "god" "give" and "quad". My
bots are limited by the server as to what cheats are allowed the same as for
any other player. The bot does not hack the server, nor violate any games
rules. There is no code that in any way impeeds the dataflow to the
opponents, such as ping flooding. I work on something that is designed
primarily to allow a player to play the game as best as possible. The
computer handles the jobs that can be automated and the human's job is to do
what the computer can't - THINK!.
Quake Terminus: A lot of people think proxy bots ruin game play on Quake servers. Do
you feel any guilt by knowing that you are the cause of that?
RickMark:
No, not at all. Time passes. Games change. Get over it.
I don't see that aimbots are as bad for Quake as are Cable or DSL modems
have been; but neither of them will kill off Q1. Today if you are on 56K (as
I am) without access to broadband, you can't play at 320 ping (against 32
ping) without some assistance. The inherent problem with Netquake and LPB's
has been intrinsic to the game since release. Quake just isn't fair, never
has been.
Quake Terminus: Some people out are fanatical anti-cheats. Have you been bothered by
nutcases trying to flame, flood and hack your computers?
RickMark: I love Q1, and am extremely tolerant of the high emotion of other players. I
would not use the term nutcases; but some are a bit over zealous. I view
attacks as tests of my defenses, and generally take action only when I feel
that the attacker truly does not understand they are committing a felony
offense. Last Sunday my Win98 machine was rebooted twice by another player,
for example. Big whoop; my attitude is to consider it as being hit by a BFG.
I go find the latest Win98 patch and load it. The skilled hackers are out to
get copies of my source, not to destroy it.
Quake Terminus: Did you create, and do you update Quakebot alone, or is it a team
effort?
RickMark: I started with Terminator by Olivier Montanuy. His code was very informative
to read, and I consider my proxy to be an updated version of his last
release. My current bot is based on the released source, and as such is my
updated version of Quake. The mods I have added are my personal code. I do
have about 40 users who have helped with various aspects of the bot over the
years, mostly by contributing good ideas and helping with the beta code
testing.
Quake Terminus: Not so long ago you expanded your Quakebot range by making a Quakeworld
version. Was that difficult, and what has the feed back on this been like?
RickMark: IQW-bot was done by popular demand, for many months it was far and away my
most common E-Mail request. The job was not difficult, but it isn't finished
yet, either. Feedback has been dominated by bug reports. I never knew there
that many TF snipers out there! :)
Quake Terminus: Quakebot is now very advanced for a Quake 1 bot. Have you finished
tweaking it, or are there features and tweaks you are still trying to add?
RickMark: Oh, it is never finished. I am not happy with the grapple code (I prefer
CTF). The autonomous code is substandard, and needs much more work. Many
users want a better item timer display. I want to add lag prediction. As
long as get ideas like the new anti-spam chat filter and the name editor
from Quakebot users there will always be another version in the works.
Quake Terminus: What one function on Quakebot are you most proud of designing.
RickMark: The lag prediction in V1.6. It may not be my best code, but it is relatively
unique in a terminator proxy. Now that the source is released, I expect to
improve on it in the Quakebot version when I reintroduce the predict mode.
The intent is to have the reduced lag feeling of QW over the Q1 net
protocol.
Quake Terminus: What other projects have you worked on?
RickMark: I guess I started modifying games a long time ago; by now I probably have
worked over maybe 20 games. Most all are for private consumption only, in
that the modified game can not be distributed (as can Netquake) without
copyright issues. My favorite was a rework of Commander Keen for my
daughter. Changing the monsters, powering up the weapons, modifying the maps
and adding cheat keys to suit her whim and fancy was always a challenge.
Seeing her face light up was my reward.
Quake Terminus: Tell us a little about yourself.
RickMark: Well, I'm 48; married with two daughters, ages 16 and 13. I grew up in
central California and have a PhD in physics from UCSB. I work at IBM in
the division that makes hard disk drives in San Jose.
I just love driving my GS 400. :)
I have been playing move and shoot games since I saw my first one on a
DEC PDP15. I have watched the FPS games progress from Keen and Duke Nukem to
Catacombs 3D to Wolfenstien to Doom to ROTT to Quake 1 to Duke 3D to Unreal
to.... ...to a complete explosion of FPS games.
Quake Terminus: Have you been interested in Quake long?
RickMark: At first when it came out I had a 486 machine; so it sat in the box until
I got a pentium class CPU. By the time I had a 133 Mhz P1 to play with, bots
were already rampant. When I figured out why I "woke up dead" so much
playing Netquake against certain other players I did a web search and found
much discussion of Stooge and Terminator. I then found the Terminator
source... ...and Descent and Duke 3D have been gathering dust ever since.
Quake Terminus: What are your long term plans. Have you got any other projects in the
works?
RickMark:
As to future game code? I have been recently been asked to write
anti-bot code for use on the server side. It seems to me to be an
interesting code challenge, in that a proper bot should be indistinguishable
from a first rate player. As I know the Bot side of things quite well I
suspect writing antibot code into the server side of quakebot would be an
interesting change of pace.
It would fit my sense of irony to have anti-bot servers running my bot as
the game server. :)
Quake Terminus: Thanks for your time.