BOLO

The multi-player battle game

(Apple Macintosh Version)

History

Bolo was originally a multi-player game written in 1987 for the BBC micro§, a British microcomputer made by Acorn Computers of Cambridge in 1982.

§Although it cost only £235 ($400) and was 6502 based like the Apple II, the BBC micro had more in common with the Macintosh. It had its equivalents of QuickDraw, the sound manager, and an INIT loading mechanism. It supported cassette tape, floppy disks of various capacities, hard disks, and had a network file system, with the option of a quarter megabit CSMA network (called Econet) built in on the motherboard. It supported multiple additional slave processors of many different kinds, including the Acorn Risc Machine - the world's first dollar-per-MIPS processor ($27 for 27 MIPS) - which has now finally reached the USA in the form of the Apple Newton and the 3DO. Its incomparably good BASIC taught me to use functions, procedures, recursion, local variables, pointers, while loops etc. so that for years I never understood the "Goto Considered Harmful" debate - but then I had never used one, or a "gosub" for that matter. It had inline assembler, like modern C compilers, but still provided Operating System calls to do everything, with dire warnings that IBM PC style poking the hardware would cause your program to fail on multi-processor configurations or on later versions of the BBC micro hardware. I offer my gratitude to the geniuses who created this machine which gave me my start in the computer business.

Bolo has no connection with the game of the same name for the Apple II, although it is a similar game. The name is an unfortunate coincidence.

The game Bolo is fundamentally based on communication between the computers running the game, and on communication between the players working together as teams. Bolo is the Hindi word for communication.

How to get Bolo

As a shareware game, Bolo is undergoing improvements and modifications, so new versions are released fairly frequently - sometimes months apart, sometimes weeks apart, sometimes even days apart.

Bolo (and associated software) is distributed through the normal shareware channels - user groups, commercial BBS systems such as CompuServe, and Internet ftp sites such as Sumex-Aim.Stanford.EDU.

For further information see the Internet newsgroup "rec.games.bolo".

System Requirements

The Game

The game of Bolo is a tank battle set on an island, for up to 16 players, using separate computers and monitors, so that each cannot see what the others are doing. This enables players to lay minefields which others cannot see, and to hide under the cover of forest and watch (or ambush) other players without being seen.

Another important factor of Bolo is that it is not a two player game, where your objective is to kill your single enemy, but a multi-player game, where you can work as teams. In this game you are not alone when you find yourself cornered by the enemy - you can shout for help, and have your allies break cover and come out of the forest shooting, to wipe out your attackers and rescue you.

Getting Started

You need two or more Macintosh computers networked together. If your Macintosh computers are not yet networked together, then you can do this very easily. All you need to do is to buy a Farallon PhoneNet adapter (about $30) for each computer, connect them all together with standard telephone wire, and click the button in the Chooser that says "AppleTalk Active". You can connect up to 30 Macintosh computers together this way with standard telephone wire.

You are now running a network game of Bolo. Other players can join in by following steps 1 and 2, and then in the AppleTalk setup dialog box, instead of clicking "New", they should select your name on the players list and click "Join" to enter your game.

Driving the Tank

The preferred keys for the right hand are the ones on the numeric keypad (NK), but if you don't have a numeric keypad (eg on PowerBook) then the alternatives on the main keyboard (KB) can be used. The key assignments can also be changed if you prefer something different.

Left hand:Right hand:NKKB
AccelerateQTurn anticlockwise/O
DecelerateATurn clockwise*P
Lay MineTabShoot0Space

Beginning the Game

When you start the game, your tank is out at sea, on boat. You should head towards the island and drive off the boat onto the land. You may have to be going quite quickly to leave the boat.

Boats can sail up rivers, but not under the low floating bridges which are laid by tanks. To pass a bridge you must either leave the boat and proceed on land or shoot the bridge to destroy it. Do not rely too much on boats as they are extremely vulnerable - they are sunk by a single hit. If you are on a boat when this happens you will be dumped into the water and will be at the mercy of your attacker. If you are out in 'Deep Sea' (water shown with dark ripples in it) then your tank will sink and be destroyed immediately - so take care!

Terrain

On the island you will encounter different kinds of terrain and obstacles which have different properties.

Terrain Name Top speed Special notes
Grass medium Most of the island is covered with grass.
Water very slow (except when on a boat) If you stay in water for too long (without a boat) then the tank's stocks of shells and mines will be depleted.
Deep Sea instant death (except when on a boat) Don't drive your tank into deep sea without a boat - it will sink and be destroyed. You cannot build anything - roads, bridges, boats or buildings - on deep sea. Deep sea is immutable and unchanging throughout the game
Moored Boat fast You can drive your tank onto moored boats to travel quickly by river and sea.
Swamp very slow Swamp is usually found in areas near to water. It looks quite similar to normal grass, but will bog your tank down, so watch carefully where you go.
Mine You can lay mines on any terrain (except buildings, boats or water) and they will explode and damage any tank which goes over them.
Crater very slow Exploding mines leave craters in the ground. Craters adjacent to water will flood. You can make use of this to build artificial waterways, both for transport by boat and for defensive purposes.
Road fast Build roads where you expect to travel frequently.
Bridge fast Build bridges over rivers you expect to have to cross frequently so that you won't lose shells and mines by driving through the water every time.
Forest slow If your tank is completely enclosed in forest, surrounded on all sides, then other players and pillboxes will not be able to see you. Forest also provides the source of building materials.
Buildings none (barrier) You can build buildings to make a barrier and provide cover from enemy fire.
Damaged Building none (barrier) If you shoot a building then it becomes damaged.
Rubble very slow If you shoot a building repeatedly then you can reduce it to rubble which you can drive over, but only very slowly.
Pillbox none (barrier) Pillboxes shoot at any enemy tanks which come into range. You can capture them to make them loyal to yourself, so that they will shoot your enemies for you.
Damaged Pillbox none (barrier) When you shoot a pillbox, it becomes damaged. You can estimate how damaged it is from its appearance on the screen.
Dead Pillbox medium If you completely destroy a pillbox, then it becomes inactive and you can drive over it to pick it up.
Refueling base medium Refueling bases provide your tank with more shells, mines and armour.

Pillboxes

Once on land you will encounter automatic pillboxes which shoot at any enemy tank which comes within range. They are very accurate, and, when provoked, can fire very rapidly, so beginners should think twice before carelessly attacking one. In a straightforward confrontation, with a tank and a pillbox both firing at each other as fast as they can, a pillbox will win every time. To destroy a pillbox requires more subtlety. You must attack it quickly, score a few good hits, and then turn and run to get out of range before it has time to destroy you. Be patient, stay away from pillboxes unless you have full armour, and always remember the option of hiding in the forest when confronted by pillboxes or hostile players. Remember also that there is no reason why you should kill a pillbox in one go - after damaging it, you can go to a refueling base to replenish your shells and armour, and then come back to finish it off.

Pillboxes can never be totally destroyed, just disabled. When you are confident enough, you should try to do this, because then you can drive over the pillbox and pick it up. It will be repaired, and will become loyal to you and your allies. Later, when a suitable location is found, it can be placed back onto the map (see "Farming and Building" below) and left to attack enemy tanks. This is the key to the game - not fighting the other players yourself - but claiming a territory for yourself and using the pillboxes to defend it against other players.

Refueling Bases

Tanks enter the game with limited shells and mines, so the first thing you must do before you can attack pillboxes or other tanks is find a refueling base to replenish the tank's supplies of shells, mines and armour. Most bases are defended by nearby pillboxes, but there are a few which are isolated and easily accessible - it is up to you to explore the map and find them.

On the right of the screen you will see an indication of the stocks of shells, mines and armour of the nearest refueling base to your tank (if there is one nearby). When you drive onto the base, you will see the stocks go down as your tank is refueled. The base will slowly replenish its stocks automatically. The base will also be automatically captured, and will become loyal to you and your allies. An enemy tank cannot drive onto your base to refuel, although it can shoot your base and deplete the armour that it has. When the armour is all gone, there is nothing to stop the enemy tank from driving onto your base and capturing it.

The object of the game is, eventually, to have captured all of these refueling bases.

Farming and Building

Farm Trees
Build Roads or Bridges
Build buildings (or boats)
Place or repair pillbox
Lay mine

To build, first select the mode you require by clicking on the appropriate button on the left side of the screen, and then click on the map.

A man will leave the tank, run to the square, build the required object, and return to the tank. You can only build if you have sufficient building resources, so you will need to farm trees first before you can build anything. Building a road or bridge or building costs you 1/2 a tree from the tank inventory and building a pillbox requires a whole tree. Boats are expensive - they cost five trees to build.

Some other restrictions: You cannot build on deep sea, on a moored boat, or on forest (farm it or shoot it down first).

You can also repair a damaged pillbox by selecting 'Pillbox mode' and putting the cursor on top of it. Instead of putting down another pillbox, the man will repair the one which is already there - even if it belongs to someone else, although you probably won't want to do this normally. He may take up to whole tree, depending on how damaged the pillbox is.

Laying mines this way is an alternative to using 'Quick' mines. It does take slightly longer, but has the advantages that you don't actually have to drive the tank to the place to lay the mine, and that the mines you lay are invisible even if someone is watching you while you do it.

Your computer informs your allies' computers whenever you lay mines, so that they can be marked on their maps. Once they are marked, they are never erased, even if you break the alliance. Of course, any mines you lay after the alliance is broken are not shown on their maps, nor are any you laid before the alliance was formed - only those laid during the time you were actually in the alliance.

If the man gets shot by another player while outside the tank, you will not be able to build any more. A new man will be parachuted in for you, but this may take several minutes, during which time you will not be able to build anything. Forests grow all the time, so trees you farm will be replenished slowly.

Alliances

At first, when you capture a pillbox for yourself, it will shoot at all other players. When there are several people playing, one person does not have much chance of winning on his own, so you will want to work as a team with some of your friends. So that your pillboxes know not to shoot at your friends, a formal alliance must be declared. To do this:

  1. Select a person whose alliance you would like to join on the "Players" menu and select "Request Alliance" on the "Bolo" menu.
  2. If agreeable, that person should then select your name on their "Players" menu and then select "Request Alliance" or "Invite New Allies".

If you are in an alliance, the menu choices are "Invite New Allies" and "Leave Alliance". If you are not, then the menu choices are "Request Alliance" and "Cancel Request". Take care that you have the correct players selected on the "Players" menu when requesting/inviting.

If you are already in an alliance, you must select "Leave Alliance" first before you can join someone else's. Members of an alliance can also see each other's mines as they are layed, (this does not apply to mines layed before the alliance was formed - they remain secret.)

At any time, a player may opt to leave the alliance simply by selecting "Leave Alliance" and he is then on his own. Any pillboxes he is carrying at the time are his, but any active ones on the map remain with the members of the alliance.

Any member of the alliance may also invite a new member in at any time. To do this, the newcomer must select "Request Alliance" first. The alliance member selects "Invite New Allies" to bring in the new member.

If two people decide that they wish to 'go it alone' and break free from their previous alliances then they should both leave their old alliance(s), and then both select "Request Alliance" to begin a new alliance.

Note: once you have selected "Request Alliance" you become eligible to join an alliance. If you change your mind then you should select "Cancel Request" to prevent another player from making you an involuntary ally.

Building a Fortress

Players should pick a location in which to build a home base. The art of building a secure fortress is an important skill to be learned, and different players favour many different design strategies, but one common feature is that all bases rely on pillboxes for defence. Care must be taken in the placement of pillboxes so that they give each other adequate covering fire (a pillbox left alone at the corner of a base will be picked off easily by attackers) but they must not be placed too close or they risk hitting each other by accident when firing at the enemy.

Other common features of fortresses are thick walls of buildings around the edge, large areas of Tar-Mac in the centre, and invisible minefields hidden around the approaches. Minefields are invisible to everyone except the player who laid them and his allies.

When mines explode, they leave craters which will slow down any tank which tries to drive through them. An exploding mine will also set off any adjacent mines - so a long line of mines will all go off together in a chain reaction. If you don't want this to happen, you must lay mines in a checker-board pattern so that they don't set each other off. Craters adjacent to sea or river will flood with water, so setting off a long line of mines leading to the sea will have the effect of creating an artificial river. Using this method, you can create a moat around your fortress. As well as slowing down tanks, water also damages any shells and mines carried by the tank, so any tank caught in your moat will soon be helpless. Players may also take advantage of natural features such as swamps around the base to slow down the approach of attackers. Forest slows down the approach of tanks too, but this benefit is more than outweighed by the fact that tanks cannot be seen whilst they are under the cover of trees, and this enables enemy tanks to make surprise attacks. This means that a fortress surrounded by forest is extremely vulnerable. Unfortunately, you need forest in order to get the raw materials you need for making buildings, bridges and roads, so a fortress positioned well away from the nearest forest is also vulnerable because you will not be able to make the necessary repairs to keep it secure.

Mine Laying

You can lay mines in two different ways - by sending the man out to bury them (as described in "Farming and Building" above) - or by just dropping them onto the ground where the tank stands by pressing the "Tab" key. This can be quicker, but all other tanks which are near to you will see mines that you lay this way. If you're out of shells and low on armour and being chased along the road by an enemy tank, remember this. Don't assume that you can kill him just by dropping mines in his path, because he will see mines you lay this way and will be able to avoid them.

Mine Clearing

It is not normally necessary to change the range of the tank's gun, since shells hit the first obstacle in their path anyway. The time when you may want to control the range manually is when you want to deliberately land a shell on top of a mine to set it off. You can also use this if you suspect that you are near to an enemy minefield. Change range and fire at the same time and you will saturate a path in front of the tank and set off any mines which may be there.

If you want to use these features, the targeting controls work like this:

Press "decrease" once to turn on the targeting cursor.
Press "decrease" again to bring the cursor nearer to the tank (shorter gun range).
Press "increase" to move the cursor further away from the tank (longer range).
Press "increase" again when the cursor is at maximum range to turn it off.

The Screen

The Info Boxes on the right hand side of the screen show the status of the various tanks, pillboxes and refueling bases in the game. The screen display is complicated but learning the simple colour conventions should make it easier to understand:

A red square indicates a hostile tank/pillbox/base.
A green circle indicates a friendly tank/pillbox/base.
A hollow circle is a special case of the green circle (friendly) which indicates your own tank in the Tank Info display.

Each icon also has a shrunken version which indicates a pillbox which is currently being transported by a hostile tank, a friendly tank or yourself, respectively.

At the start of the game, all pillboxes are indicated by red squares because they are all hostile to you, but the drawn in a chequer-board pattern. This enables you to distinguish between pillboxes which are just hostile to everyone because no-one has captured them yet, and pillboxes which are actively hostile because they are now loyal to an enemy tank.

Similarly, all refueling bases are initially friendly so they are indicated by a green circle, but the circle is drawn in a chequer-board pattern. This is so that you can tell the difference between bases you actually own, and bases which are just friendly because no-one else has captured them yet.

Below the base indicators is the base stocks display. These indicate the stocks of the closest friendly refuelling base, if there is one nearby. The first bar represents the number of shells the base has in stock, the second bar represents the number of mines the base has in stock, and the bottom bar represents the amount of armour the base has in stock.
To the left are similar indicators displaying the current stocks of your tank. The bars show the number or amount of shells, mines, armour and building materials that your tank has.

The map view in the centre of the window uses the same basic red/green colour scheme as the status indicators:

For those who are red/green colour blind, a menu option is provided to switch Bolo to an alternative colour scheme.

Remote Views

If you leave your base defended by pillboxes and go out attacking someone else, you may be worried that your own base could be under attack itself. You can check by occasionally switching back to a 'Pillbox View'. Each press of the pillbox view key cycles to the next pillbox which is owned by you (or your alliance). When in Pillbox view, you can also use the cursor keys to switch view between neighbouring pillboxes.

Notes:

Other Maps

If you get bored of playing Bolo on Everard Island, you can play on other maps by clicking the "Choose Map" button in the Game Setup dialog. You can obtain other maps from software archive sites, Internet News Groups, or be creating your own using Bolo map editors (also available from software archive sites).

Brains

If you are forced to leave the keyboard briefly in the middle of a game, there is no way to "pause" Bolo like other computer games, because there are other live human beings out on the network playing also, and you cannot pause the universe by clicking a button. You can however switch your tank to Autopilot control by selecting "Standard Autopilot" from the "Control" menu, and it will defend itself so that (hopefully) your tank will not have been destroyed by the time you return.

Other programmers have produced more ambitious "AI Brains" for Bolo which can defend your tank and base better than Standard Autopilot, and can also offer other facilities:

Opponents
If you have spare Macintosh computers, you can run automated opponents on them, to play against when you don't have human opponents.
Allies
If you have spare Macintosh computers, you can run Bolo on them, ally those tanks with yours, and then hand control over to specialized ally Brains such as "Tonto" which will then follow you around the map as loyal servants.
Cyborgs
The most specialized AI Brains play in conjunction with you, and allow hybrid human/AI control of your tank. They can perform automatic targeting and mine clearing, control building and farming functions, or even provide "head-up displays" showing tactical information.

These specialized Brains are also available from software archive sites and Internet News Groups. They should be placed into the "Brains" folder before you run Bolo, and will appear on the "Control" menu for you to select them.

If you are an experienced programmer, you can also create your own Brains in C, C++, Pascal, or another language of your choice. Documentation is included with the Bolo package which describes how to do this.

Macintosh Menus

File Menu
CloseCloses the frontmost window.
SaveSaves the current state of the map to a map file.
Log Events to File...Records a log file of events happening in the game for later analysis.
Stop LoggingCloses current log file.
Change Logging Options...Changes filter of which events are to be recorded.
Give Disk Space WarningsWarns you if the event log file may be prematurely terminated by running out of disk space.
Game InfoDisplays information about game option settings.
System InfoDisplays information about Bolo's use of CPU time.
Network InfoDisplays information about current network statistics.
Map OverviewDisplays an overview of part or all of the map.
Overview Options...Allows selection of the zoom level and colour scheme for the map overview.
Hide WindowsHides Bolo's windows so you can easily see the contents of other windows on your screen.
Hide AutomaticallyAutomatically hides Bolo's windows whenever you switch to another application program.
QuitEnds your participation in the game of Bolo. If you were the last player in the game, then the game ends also.
Edit Menu
Undo/Cut/Copy/Paste/ClearStandard Macintosh functions.
QuickDraw onlyLimits Bolo to standard screen drawing mechanisms, in case of problems with non-standard displays (especially Macintosh emulators for Unix and X Windows).
Use QD Error DiffusionUses error diffusion to improve screen display (especially of overview window) at the expense of slower drawing.
Red/Green Colour blindAlternative colour scheme instead of red for hostile objects and green for friendly objects.
Frame RateSlower frame rates allow background applications more CPU time to get their work done.
Automatic ScrollingAutomatically scrolls the map view to show objects of interest instead of you having to do it manually with the cursor keys.
Show GunsightDisplays cross hairs to show where shots will land.
Message Sender NamesSelect name format to identify messages received.
Tank LabelsSelect name format to label tanks on the screen.
Don't label own tankDon't label your own tank, even if labels are selected for other tanks.
Bolo Menu
Set Keys...Views and changes preferences for keyboard controls.
Set Player Name...Changes the name your tank is registered as.
Sound EffectsSelects whether you want Bolo to play sound effects.
Background SoundSelects whether you want Bolo to play sound effects when it is running in the background while you work in some other application program.
Newswire MessagesSelects whether you want to receive news about other players.
Assistant MessagesSelects whether you want to receive advice such as explanations of why an action you attempted failed.
AI Brain Messages
Selects whether you want to receive messages from an AI Brain controlling your tank.
Request AllianceRequests to be invited into someone else's alliance.
Cancel RequestCancels a request that has not been granted.
Invite AlliesInvites a requesting player (or players) into your alliance.
Leave AllianceLeaves the alliance you are currently a member of.
Players Menu
Send Message...Compose a message to send to other players.
Select AllSelects all players on the menu, for alliance or message functions.
Select NoneSelects no players on the menu.
Select AlliesSelects all your allies.
Select Nearby TanksSelects tanks within 12 squares of your tank.
<<Player Names>>Selects or deselects individual players.
Control Menu
ManualSets tank to manual control by a human player.
Standard AutopilotSets tank to automatic 'autopilot' control.
<<Other AI Brains>>Sets tank to be controlled by any other "AI Brains" you have installed in Bolo's "Brains" folder.
Standard Autopilot Menu (only appears when Standard Autopilot is activated)
Default/Assassin/Pillbox Hunting/Base Hunting/Defensive SettingsPreconfigured sets of the options below:
Actively ExploreIf there is nothing of interest near to the tank, actively explore the island to seek out targets.
Lay MinesWhen fleeing a tank, drop mines as you go.
Clear MinesShoot any mines in your path.
Attack TanksAttack any hostile tanks that are seen.
Attack PillboxesAttack any hostile pillboxes that are seen.
Attack Refuelling BasesAttack any enemy refuelling bases that are seen.
Repair Damaged PillboxesUse building materials to repair damaged pillboxes.
Deploy Captured PillboxesPick up dead pillboxes and place them on the map.
OffensivelyUse pillboxes as offensive weapons to attack tanks.
Explain Actions/Show Route AlgorithmDebugging information windows