The mikeBot Project Times


Progress August 6, 1997 $1.50 Sundays

mikeBot Improving Weekly

[ May 11, 1997, mikeBot press ] Sources near Mike say he is currently still working on mikeBot, despite spectulation he may have quit after the suicide of ZeusBot, an advanced Quake-C bot.

We were able to talk to Mike, and convinced him to give us weekly updates, as well as a Done, To Do and Working On list. All are reproduced below.

august 27 1997
I have been working steadily on the Windows version of the source, getting ready to release version 0.30 soon. It now compiles (with MSVC++ 4.0) and runs, but there are still problems with the qacknowledge queue; it probably has to do with the fact that the windows version has to communicate over a modem and I have never tested mikeBot with a connection that slow ;)

august 06 1997
I am now working on floor-polygon-based navigation. The polygon class is done; I have just have to integrate it with the current bspGraph class, determine links (no problem; just have to see which polygons share a line and are the correct z distance apart) and voila, navigation (hopefully).

Also, I have been working on the Windows version of the source, and hope to have version 0.3 out within a month. (I know it's been a while, but hey...)

june 25 1997
Redoing navigation. The low-level stuff is now done (mikeBot will avoid walls and lava) so he can run around the levels in a semi-intelligent fashion. I am working on a way to pre-process the links into the graph. I need a way to determine which plane(s) divides two leaves in the BSP-tree and also a way to determine if they are adjacent. Any help greatly appreciated.

june 4 1997
Got a crude version of navigation working. Check it out on the navigation, fire summary page.

june 2 1997
Implemented somtimes-miss. What this does is if the fire target has less frags than mikeBot, he calculates a probablity-of-hitting based on the hatelevel. So, if the target's hate is 100% (i.e. he is the player mikeBot hates the most) then the bot won't miss. However, if player just entered the game, mikeBot will not hate him right away and will have a probability of hitting of 50% (the minimum probability possible). This should appease complainers...

june 1 1997
Improved mbtalk with some canned phrases for when he is hurt by people. The name of the offender is appended to the phrase (things like "That's all you can do, <name>). proxyVision is now better (the bot-runner can talk to and kick clients, you connect on port 26000 instead of 25999 as before and he advertises the feature when he connects)

may 28 1997
nav code is improving; mikeBot now links new nodes together provided they both have a floor face (a face on a z-facing plane) and are not above lava. Improved proxyVision allows the client to turn status bar, particles and locked view on or off.

may 21 1997
proxyVision now works. This allows some number of clients (currently #defined as 4) to connect to mikeBot and watch what he's doing. Currently, the status bar and particles are not sent (to reduce lag), but your view is locked to mikeBot's. Plans include allowing the spectators to talk (amongst themselves), send impulses to change their settings (particles, status bar, etc.) and sending the "say" messages reliably so they actually get through ;)

may 20 1997
Whoa! big update gap...anyway, mikeBot is progressing again...i have implemented leaf-link-learning, which means mikeBot is now manually learning the links between BSP leaves; the preprocessing was taking too long (it's still being worked on, but this will allow some nav progress in the meantime). Also, proxyVision(tm) is coming along. This will allow a few clients to connect to mikeBot a watch what he is doing, but not interfere in any way. The clients will be able to select either locked view where they look where mikeBot is, or free view where they look around. Nav and fire particles will be added, as will the status bar present in the .DEMos. Also, i recommend checking out FAQ-proxy if you are interested in recording demos or having observers watch you. Up to 30 observers can be tied to a single player and talk amongst them selves...very cool.

may 6 1997
Pitch bug is fixed :) :) Also, lava avoidance works, as long as mikeBot isn't "sliding" along a wall, and line-of-sight has been slightly improved. Also, prediction code works for RL and SNG, and works fairly well :) Also added the ability to record .DEMos starting anywhere in the level (not just from the beginning as before)...

may 1 1997
mikeBot still has a pitch bug ... grrrr! But, line-of-sight now works well; a new demo will be up soon. He only loads the DM levels (and e1m8) so those are the only levels line-of-sight works in...

april 28 1997
Long update delay again...sorry. mikeBot now has the following additional capabilities:

  • loads DM (dm1.bsp ... dm6.bsp) and e1m8.bsp (I only have 12 megs of space on my account at university, so these are the only maps i have uploaded for know)
  • determines which leaf he is in...and will swim up if in water and not use the LG. Working fast on lava-avoidance; won't be too hard...
  • Better navigation target selection formulas...can't wait 'till nav is done and i can work on GA (genetic algorithm) for tuning the target selection parameters.
  • Added the disconnect packet at the end of .DEMos so the ``disconnected'' icon doesn't show up in quake at the end of the demos.
  • will add some more .DEMos shortly demonstrating mikeBot's new-found abilities.
april 10 1997
Long update delay again; mikeBot can now do the following:
  • rates nav targets (more later)
  • dodges missiles, grenades and spikes
  • added more mbtalk words.
  • selects weapons now, so no more killing himself with RL :)

march 22 1997
Woops; havn't been updating the update page ;) Client server code was released, a new .DEMo was added and mikeBot can now talk; he takes random verbs, nouns and adjectives (both good and bad, depending on hate level of talk-target) and randomly combines them. I just started, so there's only 5 of each noun and verb, but that leaves 25 possible insults :) mikeBot insluts people at random intervals, and support for "Awww! you killed me" type sayings and "Bwaaaha! I kicked your spodely ass" type things are planned.

march 14 1997
client-server code will be available very soon...

march 8 1997
BSP/PAK loading code released. Links fixed. Another .DEMo added.

march 7 1997
Big update to the web page. There will be some BSP code to download real soon. (i.e. when it is 100% bug-free ;) )
march 3 1997
BSP loading code is coming along nicely; i may release it, too...look for the notes page soon, too

march 1 1997
mikeBot has finally seperated his navigation and firing systems completely, with help from Iikka. I will be putting a "Notes" page up in the near future.

february 7 1997
mikeBot successfully connects to a server (quake.oanet.com) and kills the odd person. He only navigates by running straight at his firecontrol target.

february 14 1997
mikeBot has been improving steadily -- he now runs after health, ammo, etc. when there are no firecontrol targets around. He has no concept of his own health, however, and will not give up on a target 'till they leave or he dies. He also doesn't conceive of different weapons and simply shoots whatever the server assigns. He has won a couple of levels, and can record .DEM files.

february 29 1997
Lately, midterms have put a cramp in mikeBot development, and he has shown little outward improvement. I have, however, been reorganizing the code a little and contemplating releasing the client-server communication code when it is 100% bug-free :) tell me what you think about releasing code.

TO DO

  • lava avoidance
  • prediction code
  • line-of-sight
  • BSP loader code incorporation
  • BSP-based navigation
  • GA to tune target selection parameters
  • fix pitch bug
  • weapon selection
  • improve projectile avoidance
  • improve inter-bot communication
  • improve talk module
  • improve proxyVision
  • polygon-based navigation
DONE

  • BSP-based navigation (doesn't work too hot)
  • sometimes-miss
  • proxyVision
  • arbitrary demo record start
  • prediction code for rockets/nails
  • lava avoidance
  • weapon selection
  • BSP loader code incorporation
  • line-of-sight
  • BSP leaf-type determination (eg I now know if im in water)
WORKING ON
polygon based navigation


mike warren welcomes your
comments and suggestions

Fully-autonomous
mikeBot Now
client-side quake bot
Best experienced with
Microsoft Internet Explorer
Click here to start.
Proud member of
Bot Author's Guild
The Bot Author's Guild