botman's bots

Half-Life bot development

Building the SDK
SDK Humor
HPB Waypoint files

About me
E-mail me

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 I do.

Barney and me 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