Building the SDK
HPB Waypoint files
I get e-mail all the time from people wanting to know who I am, how old I am,
how did I learn to make bots, where did I learn C++, what's my favorite MOD,
what's the meaning of life, etc., etc., etc.  I thought I would provide a little
information about myself, my background, what I like to do and why I do what
You can see an image of me on the right, with my pal Barney, having a cold one.
You know me as "botman", but my real name is Jeffrey Broome.  I've been
programming and playing on computers since I was 16 (some 21 years ago, you do
the math).  I started on a TRS-80 running at a whopping 4.77 Mhz with all of
16 K of RAM (yes, that's kilobytes, not megabytes).  I gradually moved up to
an IBM PC clone, but have worked on VAXes, mainframes, embedded microprocessors,
and other various types of computers.  I've worked with 8 bit processors, 16
bit processors, 32 bit processors and 64 bit processors.  I've worked with
several different types of operating systems including CPM, MS-DOS, Windows,
VMS, MVS, and Unix.
After graduating high school, I attended North Carolina State University where
I earned a BS degree in computer science.  I learned how to program in
FORTRAN, Pascal, C, Ada, LISP and Assembly Language.  I loved the Algorithms
and Data Structures classes that I took.  I also loved the Operating Systems
class that I took and have always liked digging down into the very lowest levels
of computer operating systems and applications.  I spent many nights and
weekends hacking away on my computer and read as much as I could find about what
was going on inside it.  I learned about the disk drive hardware and software.
I learned about the video hardware and software.  I learned about the serial
port hardware and software.  I learned about the keyboard and mouse hardware and
software.  I learned everything that I could about what was actually going on at the
bit level in my computer.
During my years in college, I worked part-time for Data General in the Research
Triangle Park.  I worked on computer projects in the prototype lab at DG.
I learned to use oscilliscopes, in-circuit emulators, logic analyzers, and a whole
slew of other electronic test equipment.  After graduating from college, I went
to work for a company that created pagers and 2-way radios (no, it wasn't Motorola).
Several years later I left that company and went to work for a larger company writing
software applications for a nationwide paging network.  Working for these companies
I learned all about networks and protocols and RF communications.
In July of 1999, I first played Half-Life and loved it!  Soon after that I
discovered the only two bots that were available for Half-Life (Phineas Bot and
The Jumbot).  I loved playing against the bots but wanted to be able to create
a bot myself to see what I could get it to do.  I downloaded the Valve Half-Life
SDK in August 1999 and began doing research into how to create a bot for Half-Life.
Leon Hartwig (of Phineas Bot) and Rich Whitehouse (of The Jumbot) were both kind
enough to answer some of my early questions, but almost all of the code I had to
create myself.  At the time, there weren't any web sites with source code to
a fully working Half-Life bot. Rich had his bot framework and Leon had posted
bits and pieces of code to various Half-Life coding forums, but there wasn't
anyplace where you could download source code to a fully functional Half-Life bot.
I decided that if I did manage to create a bot, I would create a web site that
provided my bot source code for anyone else to use.  I was hoping that this
would encourage other would-be bot authors to create Half-Life bots.  The
source code from my web site did help a few other bot authors create bots for
Half-Life (Rho-Bot was one), but there weren't nearly as many as I had hoped.
Everybody kept e-mailing me asking me to make a bot for Counter-Strike or Team
Fortress Classic.  At that time I didn't think it was possible to create a
bot for other MODs because you needed to have the source code to those MODs to
be able to add bots to them.  Then in January and February of 2000, I
began to experiment with a way to create a separate DLL file that could load
the MOD DLL file.  I knew that Valve would not release the source
code to Team Fortress Classic and I knew that Gooseman would not release the
source code to Counter-Strike, so if bots were ever going to be added to these
MODs they would either have to come from the original MOD authors and be part
of the MOD, or I would have figure out a way to add bots without the source code
to the MOD.  The method that I eventually came up with allowed me to create bots
for MODs that I did not have the source code to.
After several months of effort, I was able to post some screen shots of bots
running around in TFC maps.  These early bots didn't shoot at anything.  They
didn't capture the flag.  All they did was spawn into the level and randomly
wander around.  Once I released the source code to my new method of creating
bots, the Counter-Strike bots began showing up all over the place.  At one
time I counted over a dozen Counter-Strike bots that were available for download.
Soon after that bots began to appear for Team Fortress Classic, Counter-Strike,
Front Line Force, Firearms, and other MODs.  I finally felt like I had
done something that encouraged other people to create bots for Half-Life MODs.
My favorite MOD is still plain old Half-Life deathmatch.  I like the crazy weapons
and the fast and furious gameplay.  I don't care much for "realistic" MODs and
would much rather play something with weapons that don't exist in real life.  I
don't like MODs where you always get killed in one shot.  I think many of the
MODs that are available for Half-Life are very professional and well done.  As
a developer I know what kind of effort it takes to put together something like this
and have great respect for all of the guys and gals that work to make these MODs
a success.  I also commend the developers at Valve for all of the help and
suggestions that they provide to the MOD community.  Some people claim that
Valve only caters to the "big" MODs like Counter-Strike.  I know that this
isn't so because I've seen the responses that they give to developers and always
received a response to any questions that I had.  It only makes sense for
Valve to want as many MODs as possible to be popular.  The more MODs that are
available, the more copies of Half-Life they will sell, which gives them more
money to put into developing new games.
If you are a developer, don't think that everyone will always answer every question
for you.  You need to do a lot of research on your own.  Valve isn't going
to teach you how to create maps or build models or learn C++ to write source code.
These things you will have to learn on your own.  There's plenty of information
available on the Internet to aid you in doing these things.  You need to try
things out on your own to figure out what works and what doesn't.  And when you
get stuck with a particularly difficult problem that no one else seems to be able to
answer, then (hopefully) Valve will come to your rescue.  If you don't have the
perseverance to keep trying over and over again then you will probably not be able
to complete a MOD.  It helps to be stubborn and never give up, no matter how many
failures you've had.  If I had given up on creating a bot for Half-Life, this
web page wouldn't be here and you wouldn't be reading this.
Oh, by the way, the meaning of life is 42 (thanks to Douglas Adams and the "Hitchhiker's
Guide to the Galaxy").
Now what are you doing still reading this?  Get out there and frag some bots!
Jeffrey "botman" Broome