Bolo Brains Archive Guide

====================================================================

* Intro

This document provides short descriptions on, and links to, the contents of the brains directory of the Official Bolo Archive. The idea is to provide those interested in Bolo brains a rundown of what's what, in order to save the work of each person checking everything out for themselves. There is a also a number of links to interesting offsite pages relating to brains at the end. This document is maintained by Paul Joswig, the author of the Bolo brain aIndy. Feedback - suggestions, corrections, whatever - is welcome at joswig@picknowl.com.au.

* Brains, Borgs and Others

To facilitate access the brain modules are broadly divided firstly into two categories, brains and borgs. The brains subdir contains brain modules that offer the ability of independent tank control. The borgs directory contains brain modules that offer assistance to a human tank controller. Note that some brains (in the strict sense of the word) also offer borg functionality which can be switched on and off.

There are two other top level subdirs, others and resources. The others subdir contains brain modules that offer neither independent tank control nor human controller assistance, e.g. Spielborg, which can make Quicktime movies of Bolo games. The resources subdir contains resources for developers of brain modules.

Earlier brain modules were written to utilise the information provided by the Bolo brain interface, version 2, which was current up to and including Bolo 0.99.2. With the release of Bolo 0.99.5, the brain interface changed somewhat and was called version 3, this version is current as of Bolo 0.99.7. Because of the differences in the interfaces, the brains and borgs subdirs have been further subdivided by interface type. One caveat here is that those brains and borgs using the old interface are not necessarily "useless", so don't be completely put off by their lack of use of the latest interface, in particular version 2 interface code can still be used in Bolo 0.99.7.

Finally, a number of really early brains were primarily based on early versions of Standard Autopilot, and so a dir called sa_based has been created for this class of brain. It is a subdir of the old interface brains dir.

Each archive is described below in sections matching the brains archive structure you've just read about. For each archive, the file size given is of the archive itself, the date is of the contents.

* Brains

* Current Interface Brains

aIndy 3.1 (281Kb, Nov 23 97) is currently the best brain available, if I don't mind saying so myself :-). aIndy is based on the Indy 2.02 source code with extensive improvements. It has been proven to be the best in battles against other brains, as well as serving as an opponent or ally with a real human.

Ladmo 0.7b8 for 68K (142Kb, 26 Sep 95) is the most recent Ladmo release. Ladmo is up there with aIndy, but according to the authors, in this 0.7 beta version, they "modified the strategy mechanism and ruined the current strategy in the process". In that case you might be interested in Ladmo 0.60 (see the Old Interface Brains section). There is a Ladmo homepage you can visit for more info.

Ladmo 0.7b8 for PPC (157Kb, 26 Sep 95) is the PowerPC native version of Ladmo 0.7b8.

* Old Interface Brains

AK Brain/Nexus 1.4c (85Kb, Dec 94) are two brain modules in this archive, specifically the brain AKBrain0.95c, and the borg Nexus 1.4c. I haven't personally tried AKBrain, so have to go on the document in this archive. Although AKBrain is based on DK movement code it has little strategy, but accepts a wide array of commands - this makes it probably the first commandable brain module, and as such makes it a candidate for use as a "dumb" ally for humans. However according to the docs again, commanding AKBrain is cumbersome, and so Nexus 1.4c has special features to allow the commanding of AKBrain. Note that Nexus 1.4c is usable in its own right as a borg, see the Old Interface Borgs section for more info.

Dumbot 0.5 (19Kb, originally Sep 93) is contained in this archive, along with the Dumbot 0.4 documentation and a note by me explaining the archive - in short, I created this as a "clean" archive of Dumbot 0.5. Dumbot is an early brain, with some borg functionality, which uses a fairly good form of route finding - it isn't based on the "route finding" of early Standard Autopilot - and has some basic but effective strategy. As such, Dumbot acts with much greater intelligence than other early brains like SA, Milo, Tonto! and Maxwell. Fairly easily beaten by the newer brains Indy 2.02, Ladmo and aIndy.

Indy 2.02 (63Kb, 25 Feb 94) is the 68K version of the Indy brain, version 2.02. This brain was a landmark in Bolo brain programming, for a long time holding the position of best brain. The authors eventually released the source code for our benefit (see the Resources section).

Indy 2.02 for PPC (44 Kb, 26 Oct 94) is the PowerPC native version of Indy 2.02. There is no documentation in this archive, I seem to remember it was released by one of the original authors, but maybe not - it was released after the Indy 2.02 source code (see the Resources section). In any case, if you want documentation, you'll need to get it from the 68K version archive.

Ladmo 0.60 (96Kb, 6 Sep 94) contains Ladmo 0.60 for the 68K Mac. Although earlier than version 0.7b8 (see the Current Interface Brains section), this version is arguably better because of it's "working" strategy engine. Ladmo is one of the best brains, generally better than Indy 2.02, and not based on Indy 2.02 like aIndy. It has so far unique features like base spiking and removing walls near friendly bases and pills, and was the first brain to build and use walls to attack pills.

Ladmo 0.60 PPC (169Kb, 12 Sep 94) is the PowerPC native version of Ladmo 0.60.

Threader (18Kb, 29 Jan 94) is a brain by one of the Ladmo authors, Will Uther, done before his Ladmo work. There is no documentation in this archive, but I seem to remember Will saying it was an attempt at using the Mac OS Thread Manager to enable code execution even when Bolo is executing.

Will's Brain (20Kb, 18 Jan 94) is a brain by one of the Ladmo authors, Will Uther, done before his Ladmo work.

* Old Interface Brains, Standard Autopilot Based

Helper Autopilot 0.2 (8Kb, 14 Jun 93) is an early brain based on an early Standard Autopilot (0.2?).

Maxwell 1.4 (47Kb, 12 Jul 93) is an early brain based on an early version Standard Autopilot (0.2?). The source code for this brain is available, see the Resources section.

Milo's Brain 1.01 (13Kb, 9 Jun 93) is an early brain based on an early version Standard Autopilot (0.2?). A later version was released with a name change to "Tonto!" (see the Tonto! item below), this Milo version is available for posterity.

Rover 0.1 (10Kb, 22 Jun 93) is an early brain based on an early version Standard Autopilot (0.2).

Standard Autopilot 0.2 (9Kb, 10 Dec 93) is an early version of Stuart Cheshire's Standard Autopilot brain. A more recent and much better version is included in the Bolo 0.99.7 archive. This old version is here for posterity. I've created a new archive, with name changes to the brain and archive, to reflect the contents better - I added the version number to the name. The source code for a Standard Autopilot of around this era is available, I'm not sure if it matches this brain exactly (see the Resources section).

Tonto! 1.0 (18Kb, 21 Jul 93) is a name changed later release of Milo's Brain. Another early brain based on an early version Standard Autopilot (0.2?). The readme says that this brain does base spiking, so I'd say this is the first brain to do it. It also has a follower mode, where it follows an allied tank around.

* Borgs

* Current Interface Borgs

Brainwave 1.2 (127Kb, 26 Aug 95) is the best general borg so far, with many features and great configurability. I'll attempt to list it's better features. First the usual auto building of road, boat and bridge when deemed necessary. These are all are switchable in a setup dialog, in addition there is a "mask" which can be set to specify what trees are to be auto farmed, an option to not farm under the tank when it's hidden, and an option to slow the tank when man is out. Like many (all?) aspects of Brainwave, keys can be specified for the builder functions, so, e.g. you could switch 'auto build bridge' off, and invoke it yourself by a defined key as needed. Brainwave facilitates messaging by having a messaging window which displays a list of received messages; it has a dialog for setting up auto responses to messages, where you can use syntax like {pills} for Brainwave to replace with the number of carried pills; it has a command window where you click on targets/define target areas, and then send commands to brains using buttons (you can even define new command sets). For windows, Brainwave has a Terrain Map, a Tactical map, a Radar, messages and Command windows (already mentioned) and an Information Bar. The information bar has an area regarding your LGM, including when he is due to land if dead, your current target (pointed to object) and two mini maps (select via menu from Tactical, Terrain or Radar). There is more to Brainwave, these are the highlights. Again Brainwave is extensively featured and configurable, the best borg there is.

Builder Helper 0.14b (37Kb, 1 Sep 96) is a recently released borg with only one feature, it opens a window which displays the position and status of your tank's LGM, and if the LGM is dead, the landing location (relative to your tank) is displayed, and an estimate of the distance he is from that point. This is simple but probably quite effective, I haven't tried it in a real game.

Hugh 0.27b (41Kb, 3 Sep 96) is the most recently released borg, which has no man assistance type features, but rather is designed to help with team play. When started it opens two windows, one which displays received messages in a list, the other displays info on your tank allies' tanks, where they are, the number of pills they are carrying and info on LGM.

* Old Interface Borgs

Headset 00.8d (23Kb, 11 Aug 93) is a simple borg in that it doesn't assist the builder or anything like that, instead it has one purpose, to improve the messaging system of Bolo. When you start HeadSet, three windows are created. A message window allows you to type messages, and shows a history list of messages so far. A destination window allows one button selection of who is to receive your message. Lastly there is a window for altering your key setup. I haven't yet played using HeadSet, but will be shortly - it looks cool, maybe everyone else already knows about this borg, but I feel like I've just discovered a really useful Bolo extension. Perhaps Stuart will include these features in future Bolo versions. The HeadSet archive also includes the HeadSet source code.

Navborg 0.2 (5Kb, 29 Jul 93) is a simple borg that doesn't aid the builder or anything, all it helps with is direction and distance to pills and bases. The way it does this is novel, instead of a separate window, it uses the Bolo window for I/O. You click on a base or pill icon in Bolo's "status" area (on the right of the Bolo window) and the id and distance to that object is printed across the bottom edge of the Bolo screen, also, an arrow appears in Bolo's "LGM direction" area showing the direction to the object. If you hold the mouse button down, the info is printed continuously so you can see the direction to the object. Finally, there is a function where if you hold the 't' key down, the borg will turn your tank toward the direction of the current object. This borg uses it's own key setup, which you can't alter. How useful this borg would be in practice I don't know.

Nexus 1.2.1 (24Kb, 18 Sep 93) is an early general purpose borg, with the following features. It allows assigning keys to do certain tasks - building road under tank, wall in front/behind tank, drop pill, and clear mines, which shoots mines in front of the tank. It also has menu options for automatic road paving, tree harvesting and random mining. Three other menu switches are used for display of a map window, a radar window and a window giving your current x,y location. It doesn't read it's key settings from Bolo, but they are user definable.

Nexus 1.4c (88Kb, Dec 94) is a more recent version of the Nexus borg. It is found in the AKBrain archive (see Old Interface Brains section for more info). This version has the same features as the 1.2.1 version, and some cool new ones, including a navigation window that has icons for each pill and base, which when clicked on have their current strength displayed. Damaged pills flash with a red dot. It also has a cool looking command window, designed for sending brains commands. I haven't experimented with this so don't know how effective it all is.

* Others

Spielborg 1.0b3 (121Kb, 11 Mar 95) is a brain module that can capture Quicktime movies of Bolo action. Enough said, get it and use it.

Trawler (18Kb, 8 Mar 96) is a simple brain module which helps get games together. After starting a game, Trawler is started and left to sit. If anyone joins your game, Trawler brings up an alert box and plays a distinctive sound. Trawler sends messages to the new player to keep them around.

* Resources

BBRN Loader 1.1 (8Kb, repackaged Apr 97) is a source code archive of a tool originally created to enable symbolic debugging of code resources (i.e. Bolo brain modules) under Metrowerks CodeWarrior. This functionality appears to be redundant in current CW versions, but BBRN Loader can be used to easily build a FAT brain, and is strongly recommended for that purpose.

Borg Template 0.29b (98Kb, Sep 96) is a source code archive of a simple borg shell, intended obviously as a starting point for programming a Borg (or brain for that matter).

Decayed Brain 0.4 Code (78Kb, mostly Oct 93) is the source code archive of the last released Decayed Brain movement code, by Daniel Kallander. This is a fundamental work implementing modern Bolo brain route finding. Used in Bolo 0.99.7's Standard Autopilot, Ladmo, Indy 2.02 and aIndy; although each of these has gone their own way with the code. The Indy 2.02 code contains a modified version of DK algorithms, which may or may not be better and/or less buggy (I think at least the latter is true).

Headset 00.8d (23Kb, 11 Aug 93) contains the source code and binary of HeadSet, a borg aimed at improving the Bolo messaging system (see the Old Interface Borgs section for more info).

Indy 2.02 Code (398Kb, 11 Sep 94) is the source code archive of Indy 2.02. This is a good start for writing a bolo brain, containing a good brain strategy framework, borg functionality, and reasonable tactics implementations. If you are going to write a self controlling brain, I strongly recommend using this source code as a starting point; supplemented with whatever you see fit.

Maxwell 1.4 Code (177Kb, Jul 93) is the source code archive of an early brain, Maxwell 1.4 (see the Old Interface Brains, SA Based section). The source code was released in 94 sometime (from memory) on the brains list. I have uploaded it here without permission, after failing to contact the author. I am confident though that he won't mind, after all it is available at at least one other public ftp site.

BBMPL 0.8 (65Kb, Nov 93) is the source code archive of the BBMPL (Bolo Brain Message Parsing Library) version 0.8. Potentially a good way to get started implementing a messaging system in your brain or borg. aIndy and Ladmo use this code, modified as needed. Unfortunately this version 0.8 implementation has some serious drawbacks. I intend to release an update to this project, which will contain the working code used in aIndy.

RicklesBot 1.0 (56Kb, 5 Sep 93) is a source code archive (including a copy of the compiled brain) of a simple brain - it doesn't do anything except send messages at random times (with definable bounds). Doesn't include any borg functionality, not even driving. Given Indy 2.02 code et al, this is probably worthless, but may contain some useful string handling code, I haven't looked.

Rocky (19Kb, 9 Jul 93) is a little Pascal project from long ago. I haven't looked at the code, but the readme indicates it is extremely basic. On running the brain on a 68K Mac, it crashed almost immediately.

Early Standard Autopilot Code (34Kb, 23 May 93) is contained in this archive. Since the current version of Bolo, 0.99.7, contains a much more recent and better Standard Autopilot and it's code, this archive is obsolete, but kept for posterity.

* Links to offsite webpages of interest

The Home Pages of Norma, the Bolo brain tell of KevDog's Bolo brain project. Norma 1.0 beta code may be available soon, here at the Official Bolo Archive.

BuilderKiller 2000 web pages describe a borg project for LGM killing. The current version is available, I'm still waiting for permission to upload it here.

Will Uther's Bolo Brains Homepage is a place to visit on Bolo brains. A little dated, but still very useful if you are a brain programmer.

Programming a Bolo Robot: Recognizing Actions By Example is a site on "Inducting Indy", an interesting research project.

Bolo Page Links at this site contains a complete list of general Bolo links.


Paul Joswig
joswig@picknowl.com.au

Last updated 14 Oct 1997.

====================================================================

[ Intro | News | Links | Archive | Guides | Gallery | People | Misc ]
The Bolo Home Page is copyrighted by
Joseph Lo & Chris Hwang