Gladiatorv0.93


Title Gladiator Bot for Quake2
Filename Gladq2093.ZIP
Version  version 0.93
Date 1999-05-09
Authors  Mr. Elusive (concept, design & programming)
Squatt (concept, design)
Mr. Freeze (gladiator page)
Email mrelusive@botepidemic.com
Bot Homepage http://www.botepidemic.com/gladiator

Contents
 
Credits
Description of the add-on
System and other requirements
Installing the add-on
BSPC Tool
New console commands
New console variables
Administrator menu
The Bot Characters
Bot chats
Xatrix mission pack 1 "The Reckoning"
Rogue mission pack 2 "Ground Zero"
Rocket Arena 2
Capture The Flag
Known problems/bugs
Troubleshooting
Copyright and distribution permissions
Availability
Version changes

Credits
 
ID Software  Quake2
Allan (Strider) Kivlin Stimulating conversations, and beta testing
Philip Niewold ideas on AI
Info-Zip Team zip/unzip tools (http://www.cdrom.com/pub/infozip/)
Adrian (Mr Pink) Finol beta testing
Dominic (Cube) Rutter beta testing
Matt (Genocyde) Freitas beta testing
Timm Stokke beta testing
Rhea Gladiator bot integration with Tourney
Raven Gladiator bot Internet server
Karel Suhajda aka KASUHA the Auto-cam idea

Description of the add-on

With the AAS the bot can theoretically play any map ever made. However keep the following in mind. The bot isn't finished yet and doesn't know how to go about with some 'trains', rotating objects, lasers, secrets, buttons, etc. As a result the bot might sometimes do seemingly stupid things or simply get stuck on maps with lots of these features. For your convenience a list has been included with maps the bot can play fairly well.
 

System and other requirements
 


Installing the add-on


BSPC Tool

The BSPC tool creates data which the bot uses to navigate a map. The program 'winbspc.exe' is included with the Gladiator bot. Launch this program to create .aas files.

Read the WinBSPC readme for more details.

Note: several (optimized) .aas files can be stored together in an "aasX.zip" where X is in the range [0-9]. The "aasX.zip" file should be placed in your Gladiator directory. The bot library will read the .aas files directly from the zip file. However you should only zip .aas files that have been loaded at least once with bots. The first time a newly compiled .aas file is loaded, some additional data is calculated and the file is optimized. These calculations should be finished before adding the .aas file to an "aasX.zip".
 

New console commands
 
menu [rcon password] show administrator menu
NOTE: the rcon password is only required when "serveronlybotcmds" is set.
addbot <botlib> <name> <skin> <charfile> <charname>  add one bot
<botlib> name of the bot library
<name> name of the bot
<skin> skin of the bot
<charfile> file with the bot character
<charname> name of the character *
removebot [name] remove a bot or the bot with the given name *
addrandom [X] add one or X bots randomly chosen from the bot cfg file or custom bots*
botpause pause the game in multiplayer mode*
observer toggles observer mode
observerhelp displays observer mode help
cyclecam cycle the camera to the next bot or player
setcam <name> set the camera to player with name
autocam enter Automatic Camera mode
lag <msec> sets the number of milli seconds lag
lagvariance <msec> sets the lag fluctuation in milli seconds
teamhelp [name] macro to ask for help in teamplay
teamaccompany [name] macro to ask for company in teamplay
checkpoint <name> macro which creates a chat to tell people there's a checkpoint at your location
mstart start the match in RA2
mstop stop the match in RA2 mode
toarena <X> go to arena X in RA2 mode (arena 0 is the observer room)
* When "serveronlybotcmds" is set these commands can only be used on the server console. To execute the commands on the server console "sv " needs to be added in front. For instance : ' sv addbot gladiator.dll "Pinky" "male/viper" "bots/chars.c" "hunk" '.
 

New console variables
 
botfile <filename> sets the file with bots to use in the menu
botlib <filename> bot library to use (for instance: gladiator.dll)
nochat <0|1> enable or disable bot chatting (have to reload bots after chaning this setting)
minimumplayers <x> set the miminum number of players in the game, bots are added when to few players are in the game
autolaunchbspc <0|1> enable or disable launching WinBSPC automatically
serveronlybotcmds <0|1> enable or disable the ability to use the bot commands (addbot etc) at the client side 
allow_pause <0|1> enable or disable pause option
freebotlib <0|1> free the bot library after all bots are removed (default: 1)
altnames <0|1> enable or disable alternative names for the boring people
ra <0|1> enable or disable Rocket Arena
ctf <0|1> enable or disable CTF
xatrix <0|1> enable or disable Xatrix mission pack 1
rogue <0|1> enable or disable Rogue mission pack 2
botctfteam <0|1|2> the CTF team the bots will be assigned to (0 = auto assign, 1 = red, 2 = blue)
mstart_auto <0|1> enable or disable auto restarting of match in Rocket Arena
ra_playercycle enable or disable Rocket Arena player cycling
ra_botcycle same as ra_playercycle but there will always be a human payer in the arena
noitems <0|1> enable or disable no items in Rocket Arena
selfdamage <0|1> enable or disable Rocket Arena self damage
healthprotect <0|1> enable or disable Rocket Arena health protect
armorprotect <0|1> enable or disable Rocket Arena armor protect
shotgun <0|1> enable or disable the Shotgun in Rocket Arena
supershotgun <0|1> enable or disable the Super Shotgun in Rocket Arena
machinegun <0|1> enable or disable the Machinegun in Rocket Arena
chaingun <0|1> enable or disable the Chaingun in Rocket Arena
grenadelauncher <0|1> enable or disable the Grenade Launcher in Rocket Arena
rocketlauncher <0|1> enable or disable the Rocket Launcher in Rocket Arena
hyperblaster <0|1> enable or disable the Hyperblaster in Rocket Arena
railgun <0|1> enable or disable the Railgun in Rocket Arena
bfg <0|1> enable or disable the BFG10K in Rocket Arena
armor <x> set the amount of armor in Rocket Arena (default: 200)
health <x> set the amount of health in Rocket Arena (default: 100)
shells <x> set the amount of shells in Rocket Arena (default: 100)
bullets <x> set the amount of bullets in Rocket Arena (default: 200)
slugs <x> set the amount of slugs in Rocket Arena (default: 50)
grenades <x> set the amount of grenades in Rocket Arena (default: 50)
rockets <x> set the amount of rockets in Rocket Arena (default: 50)
cells <x> set the amount of cells in Rocket Arena (default: 150)

Administrator menu

Using the menu

The move forward and backward keys (usually the arrow up and arrow down keys) are used to go to the next or previous menu item. The keys normally used to scroll through your inventory can also be used to move through the menu. Activating a menu item can be done with the 'use inventory' key (usually the [Enter] key). It's also possible to use strafe right and left keys to enter and leave a sub-menu. To exit the menu at any time press the [Esc] key.
 

Gladiator menu:
 
Bots bot menu
DM / CTF / RA2 one of the game settings menus
Help menu help
Exit leave the menu

Bot menu:
 
add bot add a bot from the bots.cfg
add random add a random bot from the bots.cfg
remove bot remove a bot from the game
remove all remove all bots from the game
back back to the gladiator menu

Deathmatch menu:
 
teamplay teamplay mode
allow health allow health
allow powerups allow powerups
allow armor allow armor
weapons stay weapons stay after picking them up
falling damage damage when falling from from great heights
instant items powerups are activated instantly
same map stay on the same level
friendly fire friendly fire
spawn farthest spawn as far away as possible from the last death location
force respawn force respawn, players can't stay dead
allow exit allow players to exit a level
infinite ammo infinite ammo
quad drop quad damage is dropped when a player using quad dies
fixed FOV fixed field of vision
quad fire drop quad fire damage is dropped when a player using quad dies *
allow mines allow rogue mines *
allow stack double allow rogue stack double *
allow nukes allow rogue nukes *
allow spheres allow rogue spheres *
back back to the gladiator menu
* only available when Xatrix mission pack 1 is enabled
* only available when Rogue mission pack 2 is enabled

CTF menu:
 
bot team the ctf team the bots will be assigned to
force join players joining the server will automatically be assigned to a team
armor protect attacks won't harm teammates' armor
allow techs allow tech powerups
allow health allow health
allow powerups allow powerups
allow armor allow armor
weapons stay weapons stay after picking them up
falling damage damage when falling from from great heights
instant items powerups are activated instantly
same map stay on the same level
friendly fire friendly fire
spawn farthest spawn as far away as possible from the last death location
force respawn force respawn, players can't stay dead
allow exit allow players to exit a level
infinite ammo infinite ammo
quad drop quad damage is dropped when a player using quad dies
fixed FOV fixed field of vision
back back to the gladiator menu

Rocket Arena menu:
 
bot arena the arena to add bots to
teamplay teamplay mode
self damage cannot damage yourself
health protect attacks won't harm teammates' health
armor protect attacks won't harm teammates' armor
Shotgun enable/disable the Shotgun
Super Shotgun enable/disable the Super Shotgun
Machinegun enable/disable the Machinegun
Chaingun enable/disable the Chaingun
Grenade Launcher enable/disable the Grenade Launcher
Rocket Launcher enable/disable the Rocket Launcher
Hyperblaster enable/disable the Hyperblaster
Railgun enable/disable the Railgun
BFG enable/disable the BFG10K
back back to the gladiator menu

The Bot Characters

The bot characters available in this version come in 18 flavors, 6 boyz, 6 girlz and 6 cyborgs. Each character is specified with over 50 characteristics, item selection code, weapon selection code, variable chats etc. For each bot just a few characteristics (attack skill, aim skill, aim accuracy) and a short description are listed below.
Attack Skill is the ability to avoid getting damage (dodgeing, jumping running, circlestrafing, making coffee). Aim Skill is whether the character knows stuff like where to shoot an enemy to inflict maximum damage, such as shooting rockets in front of a target's feet for instance, and Aim Accuracy defines how well the bot can keep the crosshair positioned on the target during battle.
 

Character Name Alt Name Sex Attack Skill Aim Skill Aim Accuracy Notes
Adrenaline Hunk Zeta male 0.70 1 0.5
Bill Gates Beta male 0.9 0.60 0.30 Yes it's Bill Gates, the guy we all know from the Omicron bot. Any similarity between this Bill and the guy from a certain software company is totally on purpose and with malicious intent, I mean..let's face it, would it give you the same satisfaction if this guy was called Bill Cosby?
Byte Iota other 0.15 0.15 0.15
Demigoddess Omicron female 0.95 0.95 0.95 Back from the Omicron bot, the Demigod (or goddess if you will) will show you enlightment..with the aid of violence. She's better than S.babe, and she is transparent as well...it's a feature, not a bug
Java Man Alpha other 0.75 0.1 1
Laura Craft Upsilon female 0.30 0.30 0.30 Any similarity to any person, living or dead is purely coincidence...we're not sure if this also applies to the digital world...heh heh....  :)
Luuzr Eta male 0.10 0.10 0.10
Maxine Mu female 0.25 0.8 0.5 -
Number 9 Rho other 0.75 0.75 0.75
player Pi male 0.25 0.25 0.25 -
Quad bitch Labda female 0.2 0.6 1
Reaper Reaper other 1 1 1 named after "father" of all bots
Shotgun Messiah Delta female 0.60 0.60 0.60 She has a preference of the shotgun above anything else. That doesn't mean she won't pick up the railgun....
Silicon Babe Epsilon female 0.85 0.92 0.82 For all of you who have a failing grade in the English language; it's Silicon Babe, not Silicone Babe (my guess is that Pamela Anderson falls into this category). Silicon is the stuff your CPU is made out of, not the stuff used for lubrication or breast implants.
Spartacus Sigma male 0.5 0.5 0.5 This guy is supposed to be the original gladiator.....you know..the roman empire...the slave revolt...he's a Greek guy as well....I would like to dedicate this character to Stanley Kubrick...I really like Spartacus the movie.
Steroid Stud Tau male 0.20 0.20 0.20 -
Trash Omega other 0.80 0.80 0.80
Zero Kappa other 0.001 0.001 0.001 If you lose from this guy, you're worse than a 0, and that means you can't impress the other sex, unless you're loaded (and we don't mean that you're drunk), or have the looks...or both.

Bot chats

The Gladiator bot tries to interact with it's environment like a real player, including chatting with other players. The system isn't perfect, but for those of you who know didley squatt (heh heh) about programming, its just a matter of finding a balance between realism and cpu load. The bot can (but will not always) reply to phrases from other players (including other bots).

In teamplay and CTF, you can tell the bots on your team what to do by chatting to them. If a bot decides to do what you tell it, you will be notified by the same method, otherwise, if it rails you, it might become clear to you that it does not agree with your "commands". Listed below are a few of the possible ways to patronize your (bot) team mates:
 
 
chat reaction
"help me" some of your team mates might help you if he/she knows where you are
"help me near the rl" some of your team mates might help you near the Rocket Launcher
"hunk help me" Adrenaline Hunk should go to you and help you.
"babe help hunk near the db" Silicon Babe should help Adrenaline Hunk near the Super Shotgun.
"accompany me" some of your team mates might accompany you
"messiah accompany me" Shotgun Messiah should accompany you.
"zero go with babe" Zero should follow Silicon Babe.
"get the enemy flag" some of your team mates should get the enemy flag.
"maxine capture the enemy flag" Maxine should capture the enemy flag.
"defend the base" some of your team mates should defend the base
"rush to base" all your team mates should go to the base

For instance you're in a team with four bots: Bill Gates, Adrenaline Hunk, Silicon Babe, Shotgun Messiah. You want to organize an attack in CTF and you're at the base.
 
"everyone accompany me" everyone will go to you at the base
"bill follow hunk" bill will accompany hunk
"hunk go capture the flag" hunk will try to capture the flag and bill will follow and help him
"babe and messiah defend the base" babe and messiah will defend the base

Several bot and human players can join sub-teams. For instance:
 
"bill and hunk create team bravo" bill and hunk will be in a new sub-team bravo
"babe join team bravo" base will join sub-team bravo
"bravo follow me" all members of team bravo will follow you
"hunk leave your team" hunk will leave team bravo
"bravo dismissed" all members of team bravo are dismissed

A list with all the sentences the bot understands can be found in the file match.c in the .pak file included with the Gladiator bot. Please don't ask any questions related to the bot chat interpretation. More details will be available in the future.
 

Xatrix mission pack 1 "The Reckoning"

Mission pack 1 can be found at http://www4.activision.com/games/quake2mp1/. The Reckoning should be installed in order to play it with the Gladiator bot. Copy all the Gladiator bot files to your The Reckoning folder (you might want to backup your original The Reckoning files first!). At this point you launch Ground Zero as you'd normally do. Type 'set xatrix 1' on the console and then load the Xatrix map you want to play.
 

Rogue mission pack 2 "Ground Zero"

Mission pack 2 can be found at http://www4.activision.com/games/quake2mp2/. Ground Zero should be installed in order to play it with the Gladiator bot. Copy all the Gladiator bot files to your Ground Zero folder (you might want to backup your original Ground Zero files first!). At this point you launch Ground Zero as you'd normally do. Type 'set rogue 1' on the console and then load the Rogue map you want to play.
 

Rocket Arena 2

Rocket Arena can be found at http://www.planetquake.com/arena. Rocket Arena 2 should be installed in order to play it with the Gladiator bot. Copy all the Gladiator bot files to your Rocket Arena 2 folder (you might want to backup your original Rocket Arena 2 files first!). At this point you launch Rocket Arena 2 as you'd normally do. Type 'set rocketarena 1' and 'set deathmatch 1' on the console and then load the Rocket Arena map you want to play. Type 'toarena X' on the console to go to the arena you want (X is the number of the arena, 1 or higher is an arena, 0 is no arena, it's the observer room). Type 'set arena X', where X is the arena you want to spawn a bot. Use the menu to add a bot to the specified arena. Type 'mstart' on the console to start the match. Type 'mstop' on the console to stop a match.
 

Capture The Flag (CTF)

Zoid's CTF can be found at ftp://ftp.idsoftware.com/idstuff/quake2/ctf/. Zoid's CTF should be installed in order to play it with the Gladiator bot. Copy all the Gladiator bot files to your CTF folder (you might want to backup your original CTF files first!). At this point you launch CTF as you'd normally do. Type 'set ctf 1' and 'set deathmatch 1' on the console and then load the CTF map you want to play. Use the menu to add bots to the game. The bots will automatically be assigned to the teams.
 

Known problems/bugs

When reporting a bug please include the 'botlib.log' file and fill in the bugreport.txt


Troubleshooting
 


Copyright and distribution permissions

By using this product you agree to exempt, without reservation, the authors and owners of this production or components thereof from any responsibility for liability, damage caused, or loss, directly or indirectly, by this software, including but not limited to, any interruptions of service, loss of business, or any other consequential damages resulting from the use of or operation of this product or components thereof. No warranties are made, expressed or implied, regarding the usage, functionality, or implied operability of this product. All elements are available solely on an "as-is" basis. Usage is subject to the user's own risk.

We grant to you the non-exclusive and limited right to use the Gladiator bot for recreational purposes only. You are not receiving any ownership or proprietary right, title or interest in or to the Gladiator bot or the copyright, trademarks or other rights related thereto. You shall not rent, sell, lease, lend, offer on a pay-per-play basis or otherwise commercially exploit or commercially distribute the Gladiator bot. You are only permitted to distribute the Gladiator bot for free, without any cost or charge.
Serious inqueries about buying a bot technology license for commercial purposes can be made to MrElusive.

Note: The Gladiator bot incorporates compression code from the Info-ZIP group. There are no extra charges or costs due to the use of this code, and the original compression sources are freely available from http://www.cdrom.com/pub/infozip/ or ftp://ftp.cdrom.com/pub/infozip/ on the Internet.
 

Availability

You are reading this, so you must have it, so why would you need another one? Oh well... you can find the most recent version at http://www.botepidemic.com/gladiator.
 
 

Version changes
 

version 0.93

- added RA2 "ra_botcycle" option, same as ra_playercycle but there will always be a human player in the arena
- added RA2 "ra_playercycle" option, player cycling where the winner stays and the longest waiting enters as opponent (works in teamplay as well)
- fixed the CTF userinfo bug which caused the bots to shoot at human team mates in CTF mode
- added patrol AI and chat interpretation
- fixed wrong view angles after entering autocam when dead
- added area tracing
- fixed the synonym inside synonym replacements
- added context dependent match templates
- removed space in front of message to reply to
- moved all language dependent stuff to match.c
- added "addrandom [X]"
- added bot checkpoint understanding
- added checkpoint macro command
- fixed underwater teleporters
- fixed button handling
- fixed and optimized area clustering
- make defend, camp, help, accompany etc. times adjustable
- added waypoint and checkpoint synonyms
- rewrote match templates, now allowed to have multiple fixed at the same place
- added message to rocket arena commands when used when ra disabled
- adjusting ping in rankings screen with the lag feature
- fixed id bug in ClientDisconnect
- added credits menu to the bot menu
- fixed "CTF team select" menu doesn't go away after selecting chasecam mode
- added allow_pause option
- fixed console message heap overflow
- fixed "help me" crash
 

version 0.92

- new CTF AI
- new team AI
- added lag feature
- added botctfteam console variable and menu option to assign bots to a specific team
- create subteams with your bot team mates, chat with them and tell them what to do (help you, follow or cover you, guard key areas, camp somewhere etc.)
- added some bot model taunts
- added some strategically looking around for enemies
- added RA2 health protect
- added RA2 armor protect
- added Rocket Arena option to turn off self-damage
- added pause game option
- added console command to add a random bot
- added more bot team chat interpretation and team chats
- added loading of all *.cfg files from the "bots" sub-folder (for custom bot characters)
- enabled some dynamic obstacle avoidance code
- removed potential crash bug from the menu code
- fixed minimumplayers removebot bug
- enabled characteristic_char_reply, characteristic_gender, characteristic_alt_name, characteristic_reactiontime
- fixed chat enter_game, chat death, death_bfg, kill_telefrag, random_praise
- fixed changing level directly after entering when fraglimit is set with bots
- fixed defend key area (defend key area, accompany, help, get flag, rush base)
- fixed RA2 bots in waiting room always free flight observers
- fixed several (command) chat interpretation bugs
- added several sound infos
- disabled shooting in observer mode in Rocket Arena
- fixed menu options now actually setting dmflags
- fixed elevator reach
- fixed ltg dedication
- fixed walk back navigation bug
- split AI network
- fixed the recursive evalutation of fuzzy relations
 

version 0.91

- ported game library to Linux-i386
- ported gladiator library to Linux-i386
- disabled bot editing/maximum number limiting algorithm
- added option to disable the gladiator library log file
- added grappling hook usage
- added grappling hook reachabilities
- fixed several rchat bugs
- bot end game chat message appears after bot has disconnected (as a result the bot name does not shows up)
- crash when changing level after "not allowed to have more than x bots on this map" message
- decreased map load time
- added BotAddPointLight to botlib interface
- added light level calculation to AAS
- changed BotUpdateSound into BotAddSound in botlib interface
- fixed add random bot
- added "minimumplayers" console variable with functionality
- fixed grapple hook precache
- fixed jumping onto and from elevators
- fixed grapple reachabilities screwing other reachabilities
- fixed %'s in gi.Xprintf (thanks to Rhea)
 

version 0.9

- RA2 support
- CTF support
- Xatrix mp1 support
- Rogue mp2 support
- added 12 new bot characters
- tweaked some bot characters
- added more weapon specifications
- added new chat engine, rchat, ichat, synonym list, random string list
- fixed weapon weights
- several bot characteristics changed
- fixed jumping during battle
- fixed unzip.dll crashes under WinNT & Win95
- changed AAS version to 2
- fixed obstacles towards teleporter
- fixed bspc area 'center'
- fixed 'natural' area clustering with teleporters
- fixed random chat string pieces
- fixed "goal heap overflow"
- fixed AI network internal loop between Battle_Ret and Battle_NBG
- fixed "BotUpdateSound: client number out of range" due to multicast with "maxclients 256"
- prevented repeating reply chats
- tweaked several reachabilities
- fixed bot picking up dropped weapons (keep repositioning movable items)
- fixed shootable doors & secrets doors
- added func_rotating_door to AAS
- fixed under water elevators
- adjusted bot aim and response time
- added workaround for train.bsp entstring bug line 2906 "175\"
- enabled evolution of the goal selection
- fixed misplaced trains due to Rogue support
- fixed failing goal selection on moving objects