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) | |
mrelusive@botepidemic.com | |
Bot Homepage | http://www.botepidemic.com/gladiator |
Contents
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 | |
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".
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) |
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) |
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 | |
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
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. |
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 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.
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.
When reporting a bug please include the 'botlib.log' file and fill in the bugreport.txt
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.
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 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