Você está na página 1de 14

Gladiator v0.

91

Title Gladiator Bot for Quake2


Filename Gladq2091.ZIP
Version version 0.91
Date 1999-03-17
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
Game Settings
Xatrix mission pack 1 "The Reckoning"
Rogue mission pack 2 "Ground Zero"
Rocket Arena 2
Capture The Flag
Bot chats
The Bot Characters
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
zip/unzip tools
Info-Zip Team
(http://www.cdrom.com/pub/infozip/)
Adrian (Mr Pink) Finol beta testing
Dominic (Cube) Rutter beta testing
Matt (Genocyde)
beta testing
Freitas
Timm Stokke beta testing

Description of the add-on

State of the art Artificial Intelligence. The add-on simulates one or more
artificial players. Designed for everyone who wants to become a better
player in Quake2 or to experience the multiplayer feel without having a
fast network and/or Internet connection.
Menu in order to easily add bots to and remove bots from the game.
Several different bot characters included for the real multiplayer
experience.
The bot understands all the game rules, weapons and items.
Virtually human-like bot chats. (and if you've played online, you know
that this isn't difficult to implement..hahaha)
Ability to order bots on your team to do things by chatting to them.
Observer modes to observe the playing bots.
Autocam in order to get the best view of all the action in the game.
Easy extendible AI network.
Advanced goal evaluation AI.
Bot uses fuzzy logic which gives it an amount of flexibility when making
decisions and allows those decisions to appear much more intelligent.
Advanced routing and navigation.
A tool is included that needs to be run before the bots are played (The
tool can run from the game as well, but it is better to do this before
running the game). This tool creates a file (name.aas) that contains all
the information the bot needs in order to navigate the given map. This
tool operates without any human intervention, and it does not create
waypoints. The AAS removes the whole business of messing around
with (often?) badly placed waypoints. Waypoints are old-fashioned
anyway. Comparing the waypoint system with AAS, and B.D. Squatt
came up with this: AAS is like driving a Ferrari and waypoints are like
riding a bycycle. Both will get you there...but .....

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

a computer that runs Quake2 with a minimum of 32 MB, recommended:


Pentium 166 MHz with 64 MB or comparable computer. Also, although
we hate to say this, this only runs with the Microsoft virus called
Windows (9x/NT).
Quake2 version 3.14 or higher. Version 3.20 recommended.
newbies to computers: we assume that the typical user knows such
things as "command line", "parameters", "directory" ,and all that..if you
don't, go out there and familiarize yourself with it...we do not want to be
your teachers.
newbies to Quake2: read the quake manual on what and how Quake2
specific settings work out. You need to know what a multiplayer game
is, the console, how to activate it..etc.. We simply don't want any mail
on this subject. You (presumably) bought the game, we assume it is
your duty to read all it's manuals...or we will put you on "the Black List".
a sense of humor.

Installing the add-on


create a subdirectory in your Quake2 directory. (if E:\QUAKE2 is your
Quake2 directory you could create E:\QUAKE2\GLADIATOR)
copy the contents of the zip file (including the subdirectories) into the
created directory.
create .aas files with the BSPC tool for the map(s) you want to play.
start Quake2 with the command-line parameter '+set game' followed by
the name of the directory where the Gladiator bot is located (for
example: e:\quake2\quake2 +set game gladiator) Remember that you
need to start a server to enable the bots. This can be accomplished by
adding the parameters '+set deathmatch 1' the line would become
'e:\quake2\quake2 +set game gladiator +set deathmatch 1'. Since
Quake2 screws up the game directory setting after playing the demos
it's a good idea to prevent the demos from being played. You can
accomplish this by adding the command-line parameter '+disconnect'.
The full command-line will look like this: 'e:\quake2\quake2 +set game
gladiator +set deathmatch 1 +disconnect'. Quake2 will launch and the
console will be down. Just use the 'map' console command to start the
map you want.
type 'menu' on the console and you can add bots, see the administrator
menu

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> add one bot
<charfile> <charname> <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 *
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
teamhelp [name] ask for help in teamplay
teamaccompany [name] ask for company in teamplay
mstart start the match in RA2
mstop stop the match in RA2 mode
toarena <X> go to arena X in RA2 mode
* When "serveronlybotcmds" is set the 'addbot' and 'removebot' 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
nochat <0|1> enable or disable bot chatting
mstart_auto <0|1> enable or disable auto restarting of match in RA2
noitems <0|1> enable or disable no items in RA2
minimumplayers set the miminum number of players in the game, bots
<x> are added when to few players are in the game
autolaunchbspc
enable or disable launching WinBSPC automatically
<0|1>
serveronlybotcmds enable or disable the ability to use the bot commands
<0|1> (addbot etc) at the client side
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

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


Help menu help
Exit leave the menu

Bots menu:

add bot add a bot from the list


add random add a random bot from the list
remove bot remove a bot from the game
remove all remove all bots from the game
back back to the gladiator menu

Rocket Arena menu:

bot arena the arena to add bots to


teamplay teamplay mode
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

Game Settings
Several game settings can be enabled/disabled with the "dmflags" console
variable. This variable stores a number of flags denoted by numbers. To set
the flag the value is added to the console variable.

Flag value description


DF_NO_HEALTH 1 no health
DF_NO_ITEMS 2 no items
DF_WEAPONS_STAY 4 weapons stay after picking them up
no damage when falling from from
DF_NO_FALLING 8
DF_NO_FALLING 8
great heights
DF_INSTANT_ITEMS 16 powerups are activated instantly
DF_SAME_LEVEL 32 stay on the same level
DF_SKINTEAMS 64 teamplay based on skin
DF_MODELTEAMS 128 teamplay based on model
DF_NO_FRIENDLY_FIRE 256 no friendly fire
spawn as far away as possible from
DF_SPAWN_FARTHEST 512
the last death location
force respawn, players can't stay
DF_FORCE_RESPAWN 1024
dead
DF_NO_ARMOR 2048 no armor
DF_ALLOW_EXIT 4096 allow players to exit a level
DF_INFINITE_AMMO 8192 infinite ammo
quad damage is dropped when a
DF_QUAD_DROP 16384
player using quad dies
DF_FIXED_FOV 32768 fixed field of vision
players joining the server will
DF_CTF_FORCEJOIN 131072
automatically be assigned to a team
DF_ARMOR_PROTECT 262144 attacks won't harm teammates' armor
DF_CTF_NO_TECH 524288 no Tech Powerups
For example, say you wish to configure a server with weapons stay, instant
tems, spawn farthest, force respawn, quad drop, and armor protect, you
would use:

4 + 16 + 512 + 1024 + 16384 + 262144 = 280084

now type: "set dmflags 280084" on the console or add "+set dmflags
280084" to the command-line.

NOTE: when the dmflags console variable is changed all the bots have to be
reloaded. Otherwise the new game settings won't have any effect on the
bots.

Xatrix mission pack 1 "The Reckoning"


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"


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 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)


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.

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
some of your team mates might help you if he/she
"help me"
knows where you are
some of your team mates might help you near the
"help me near the rl"
Rocket Launcher
"hunk help me" Adrenaline Hunk should go to you and help you.
"babe help hunk near Silicon Babe should help Adrenaline Hunk near the
the db" Super Shotgun.
"accompany me" some of your team mates might accompany you
"messiah accompany
Shotgun Messiah should accompany you.
me"
"zero go with babe" Zero should follow Silicon Babe.
some of your team mates should get the enemy
"get the enemy flag"
flag.
"maxine capture the
Maxine should capture the enemy flag.
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

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 Alt Sex Attack Aim Aim Notes


Name Name Skill Skill Accuracy
Adrenaline Zeta male 0.70 1 0.5
Hunk
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 Delta female 0.60 0.60 0.60 She has a
Messiah 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.

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

Demigoddess should appear as a transparent female, but using certain


3D cards she's invisible. See it as an extra challenge.
Setting 'maxclients' to 256 and 'maxentities' to 2048 before loading
q2ctf8 crashes Quake2. This is probably a bug in Quake2.

Troubleshooting

When I type menu on the console I just see an echoed 'menu': make
sure you've installed the bot correctly and make sure no demos are
played before loading a map. note the menu only works when a map is
loaded.
The .AAS files I created for the previous version of the Gladiator bot
don't work with version 0.91: You'll need to compile the maps with
WinBSPC 1.1 (included with the bot) to create .AAS files that work with
this version of the bot.
None of the bot characters seem to use the grappling hook in CTF; you
are using an old .AAS file: re-AAS your maps.

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.

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.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

Você também pode gostar