123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482 |
- Official 'Cube with Bots' readme.
- Current version: 0.32
- AUTHOR:
- Rick Helmus
- E-Mail: rickhelmus@gmail.com
- MSN: rick_helmus8@hotmail.com
- ICQ: 224332897
- AIM: rickakame
- CONTENT
- 1. Features
- 2. Installing & Uninstalling
- 2.1 Installing
- 2.2 Uninstalling
- 3. Starting a game
- 4. Bot settings
- 4.1 Bot names & teams
- 4.2 Bot skills
- 4.3 Bot configuration file
- 5. Bot commands & CVARS
- 5.1 How to execute a command
- 5.2 List of all server side commands
- 5.3 List of all client side commands
- 5.4 How to change a bot CVAR
- 5.5 List of all bot CVARS
- 5.6 List of all waypoint commands
- 6. Waypoints
- 6.1 What are waypoints?
- 6.2 When should I make my own waypoints?
- 6.3 List of all waypoint commands
- 6.4 How to use & Tips
- 7. Dedicated servers
- 8. Source code
- 9. Credits
- 10. Questions, suggestions, comments etc
- 1. FEATURES:
- See the file 'changelog.txt' in your cube/bot folder.
- 2. INSTALLATION & UNSTALLATION
- 2.1 Installing
- Extract all the files to your cube folder.
- Don't worry it won't overwrite any cube specific files.
- Note: Since the file structure changed a bit, it might be handy to uninstall previous cube bot versions first.
- 2.2 Uninstalling
- If you want for some reason uninstall the bots you have to delete these files:
- - The bot folder,
- - bin/cubebot.exe
- - 'cube_bot_linux',
- - 'cube_bot_fbsd',
- - 'cube_bot_win.bat',
- - 'cube_bot_linux-ded',
- - 'cube_bot_fbsd-ded',
- - 'cube_bot_win-ded.bat'
- - This file
- 3. STARTING A GAME
- Run either cube_bot_win.bat (for windows users), cube_bot_fbsd(for FreeBSD users) or cube_bot_lin (for linux users).
- For linux/unix users: if you have problems with running cube, you might want to 'chmod it'.
- Type this in a console in your cube directory:
- chmod +x ./cube_bot_lin
- To add a bot you can simply open the main menu(esc) and open the bot menu, from there
- you can add a bot in a team or change the default bot skill.
- You can also use the addbot command(see section 6) to add a bot.
- Bots work for every singleplayer and multiplayer mode. In singleplayer they will help you to fight monsters and finish a level.
- In multiplayer they try to kill you instead ;-)
- For dedicated servers see section 7.
- 4. BOT SETTINGS
- 4.1 Bot names and teams
- When you add a bot and don't specifiy a name, the bot will pick a name from the file
- 'bot_names.txt' in the folder cube/bot. This is a plain text file, you can modify existing names
- and add up to 150 names. Note that names in cube can't contain more than 16 characters.
- When you add a bot and don't specify his team, it will pick one from the file 'bot_teams.txt'
- found in the cube/bot folder. This file can contain 20 different team names with a maximal
- length of 5 characters.
- 4.2 Bot skills
- There are 5 skills for the bots. The skill for a bot can be specified from the menu or via the console(see section 6).
- Each skill can be modified by editing the file 'bot_skills.txt' found in the bot folder.
- 4.3 Bot configuration file
- 5. BOT COMMANDS
- 5.1 How to execute a bot command
- There are 2 ways to execute a (bot)command:
- - Hit the chat key(default t) and type /<commandhere>
- - Hit the console key(default ~) and type the command.
- 5.2 List of all server side bot commands
- Server side commands(works if your the host, otherwise people have to vote for it):
- addbot <teamname> <skill> <botname>
- Adds a bot in the current game. Command arguments:
- <teamname>: Specifies the team for the bot, when you leave it blank or
- use "random" as team the bot will choose a team from the file
- 'bot/bot_teams.txt'.
- <skill>: The skill of the bot; can be best, good, medium, worse, bad, default or random.
- When blank or "default" is used as skill, the bot will use skill good. When "random" is used,
- the bot will use a random skill.
- <name>: The name for this bot. When blank the bot will pick a name from the
- file 'bot/bot_names.txt'
- Examples:
- To add a bot with a random team, default skill(good) and a random name:
- addbot
- To add a bot in team red, default skill with the name Joe:
- addbot red default Joe
- addnbot <count> <teamname> <skill>
- Adds multiple bots to the game. Command arguments:
- <count>: Number of bots to add.
- <teamname>: Specifies the team for the bots, when you leave it blank or
- use "random" as team the bot will choose a team from the file
- 'bot/bot_teams.txt'.
- <skill>: The skill of the bot; can be best, good, medium, worse, bad, default or random.
- When blank or "default" is used as skill, the bot will use skill good. When "random" is used,
- the bot will use a random skill.
- kickbot <botname>
- Will kick the bot with the name <botname> from the server.
- Example: To kick bot Joe from the server:
- kickbot Joe
- kickallbots
- Will kick all bots from the server
- botskill <botname> <skill>
- Will change the skill of the bot with the name <botname> to <skill>.
- <skill> can be best, good, medium, worse or bad.
- Example:
- To change the skill of the bot Joe to best:
- botskill Joe best
- botskillall <skill>
- Will change the bot skill and the default skill to <skill>.
- <skill> can be best, good, medium, worse or bad.
- 5.3 List of all client side commands(Works if you're a host or joined a server):
- drawbeamtobots
- Will draw some particles(same as the rifle) to all bots. This more used for
- debugging to see where the bots are :-)
- togglegrap
- Will toggle the focus of the mouse in game. Normally you can use your mouse to look around,
- when you type this command your mouse cursor is visible and can be used as normally. This is only
- usefull when you run cube windowed ofcourse.
- togglebotview <botname>
- When used you will see what the bot with the name <botname> sees. Type it again
- (with or without name) to return to the game(you will respawn).
- 5.4 How to change a bot cvar
- This works like bot commands: First open the console (with the chat key or the console key),
- then just type the variabele name and put the desired value after it.
- 5.5 List of all bot CVARS (Server side variabels, host only)
- botsshoot 1|0
- Enables or disables bot shooting. 1 is enabled, 0 is disabled. Default is 1.
- idlebots 1|0
- When enabled, all bots are idle(they won't 'think'). 1 is enabled, 0 is disabled. Default is 0.
- maxbots 0-50
- Specifies how many bots can be in a game. Ranges from 0 to 50, default is 7.
- Note that there cannot be more bots than maxclients-1(so atleast one human can be in the game).
- allowaddbotvotes 1|0
- When enabled, clients are able to add bots through voting. 1 is enabled, 0 is disabled. Default is 1.
- allowbotskillvotes 1|0
- When enabled, clients are able to change the bots skill through voting. 1 is enabled, 0 is disabled.
- Default is 1.
- allowkickbotvotes 1|0
- When enabled, clients are able to kick bots through voting. 1 is enabled, 0 is disabled.
- Default is 1.
- monstersperbot 1-25
- Specifies how with how much the total monster count should be increased in DMSP mode. This number also depends on the skill:
- nr of monsters = monster skill x monstersperbot cvar.
- So for example, if monstersperbot is 7(default) and the monster skill is 8, the total monster count will be 7x8=56.
- monsterspawnmillis 1-2000
- Specifies the delay in milliseconds for when new monsters should be added in DMSP mode. The default is 1000(=1 second).
- Decrease this value if you want a monster war :) You should use it with caution though, since many monsters at the same time will
- be very CPU intensive.
- Note: The formula for the number of new monsters per spawn is: 1 + 1/3 of the number of bots ingame.
- So for example, if monsterspawnmillis is 1000 and there are 3 bots ingame, there will be
- 1 + 1 (1/3 of 3 = 1) = 2 monsters that will spawn every second.
- 6. WAYPOINTS
- 6.1 What are waypoints?
- Waypoints are used by bots to help them navigate through a map. A waypoint
- is simply a spot in a map, by connecting them with other waypoints bots know how to
- move from waypoint to waypoint. Note that waypoints can be connected 1 way or 2 way,
- if a waypoint is connected 1 way this means that waypoint A can be connected with B, but
- B is NOT connected to A.
- The waypoints are stored in the directory bot/waypoints in your cube directory.
- When waypoint viewing is enabled(see the 'wpvisible' command below) you can view all the waypoints
- in the current map. Jump waypoints are red lines, the nearest normal waypoint
- is a green line and all the others are blue lines. Connections between waypoints are
- white lines. If a waypoint has a yaw(see the 'setwpyaw' command below) a short red line from the waypoint
- in the direction taken from the yaw will be drawed.
- 6.2 When should I make my own waypoints?
- If a map is loaded and no waypoints exist for this map, it will be flooded with waypoints(Automatically waypointed).
- For most of the multiplayer maps this is enough(except complex maps like '32') but for SP(Single Player) maps
- its better to make your own waypoints. This because these maps are generally more complex and there are one or more goals.
- However the following SP maps are already waypointed by me or can be played without custom made waypoints:
- - cruel01 & cruel02
- - kksp1
- - nsp2
- - wsg1 & wsg2 & wsg3
- - mpsp4
- 6.3 Waypoint commands
- addwp
- Adds a waypoint at the place where you are, all nearby waypoints will be connected with it.
- delwp
- Deletes the nearest waypoint.
- wpsave
- Saves the waypoints to a file.
- wpload
- Loads waypoints from a file, only handy when you want to undo your changes.(Waypoints will
- be loaded automaticly when a map is started).
- wpclear
- Will clear all waypoints from the map. You usually want to use this to clear all automaticly generated
- waypoints when you start making your own waypoints.
- wpvisble 1|0
- When enabled(1) you can view all the waypoint in the current map, 0 will
- disable this. (Waypoints will be automaticly visible when you use any
- waypoint command). Jump waypoints are red lines, the nearest normal waypoint
- is a green line and others are blue lines. Connections between waypoints are
- white lines.
- autowp 1|0
- Enables(1) or disables(0) autowaypointing. When enabled you will drop waypoints while
- you walk around in the map.
- wpinfo 1|0
- If enabled(1)(disabled=0) you can view info(such as waypoint property flags, trigger numbers, yaw etc) from
- a nearby waypoint.
- addtelewps
- Adds waypoints on all teleporters and their destination in the current map and connects
- the waypoints at a teleporter with the waypoint at its destination.
- addtriggerwps
- Adds waypoints at all triggers(such as carrots and switches) in the current map.
- setwptriggernr <nr>
- Assigns a number to the nearest waypoint. This is only used for trigger waypoints, so that the bots go to triggers in the
- right order. If you don't do this bots will search for every trigger, even when they are not reachable yet.
- setwpyaw
- Sets the yaw of this waypoint. If a bot reaches a waypoint with a given yaw, it equalize his yaw with the one from
- the waypoint. This is usefull for very narrow spaces or jump waypoints.
- The yaw is taken from the yaw of the player.
- addpath1way1
- Selects first waypoint to connect with another waypoint.
- addpath1way2
- Will connect the waypoint you selected with the command 'addpath1way1' with the
- nearest waypoint.
- addpath2way1, addpath2way2
- Same as above, though it will connect both waypoints
- with each other(that is there is a connection between the one
- you select with 'addpath2way1' and the nearest waypoint AND there
- is a connection between the nearest waypoint and the one you
- selected with 'addpath1way1').
- delpath1way1, delpath1way2, delpath2way1, delpath2way2
- Same as above, but will remove connections between waypoints.
- setjumpwp
- Makes the nearest waypoint a "jump waypoint" this simply means that a bot will
- jump when it reaches this waypoint(usefull when the bot has to jump over an obstacle
- for example).
- unsetjumpwp
- Removes the jump flag from the nearest waypoint.
- startflood
- Starts flooding the map with waypoints. This is normally done when the game starts and no waypoints exist for the current map.
- 6.4 How to use & Tips
- 6.4.1 Simple howto
- Lets say you want to make waypoints for map 'foo'. This map is a singleplayer map you found on Quadropolis(http://cube.snieb.com/).
- Here are some simple steps to waypoint the map:
- - Start the game(see section 3) and load the map. Since its a singleplayer map it may be better to load it in
- multiplayer mode, so you won't get killed during waypointing ;)
- - Now since the map is automaticly waypointed, the best thing todo is to clear these waypoints first.
- Simply type 'wpclear' in the console to remove them.
- - Map foo has several teleporters, therefore its handy to put some waypoints on them and their destination. Luckely there is a
- command which does that and will even connect the waypoint on the teleporter with the waypoint on the teleport-destination.
- Simply type 'addtelewps' in the console to add them.
- - Like most maps, foo has several triggers to open doors, unlock monsters etc. The command 'addtriggerwps' will put waypoints on all
- the triggers for you.
- - Now you can actually start waypointing. On simple, not complex places you can type 'autowp 1' so it will drop
- waypoints (within a certain radius) where you walk and connect them(2 way) with each other. However on more complex places
- (for example a place where you have to climb up) its better to place them manually with the command 'addwp'.
- - After thats its a good thing to givbe the 'trigger waypoints' a number. Bots will go to the trigger with the
- lowest number(except 0) first, then go to the next one and the next one etc etc. First type 'wpinfo 1' so you can see which
- waypoints are trigger waypoints and which not. Now go to the trigger waypoint which should be triggered first and type
- 'setwptriggernr 1'. Then go to the next trigger waypoint and type 'setwptriggernr 2' and continue like that untill you're done.
- Note: If the order doesn't matter(very rare) you can skip this step.
- - When you're done type 'wpsave' to save the waypoints, reload the map and add some bots to check if they can finish the map by
- their selves :-)
- 6.4.2 Waypoint tips
- - If you start with new waypoints, its mostly better to type 'wpclear' in the console to remove the waypoints which where automaticly
- generated. If, however, you just want to make some minor modifications you can leave them.
- - When you waypint a singleplayer map, its better to load the map in multiplayer mode so you the monsters won't annoy you.
- - On narrow spaces its better to manually waypoint with 'addwp' and disable autowaypointing('autowp 0').
- - Always check if every waypoint is connected with the right waypoints. Waypoints can be connected with to
- much waypoints or not connected at all. The following commands can be used to solve this: addpath1way1, addpath1way2, addpath2way1,
- addpath2way2, delpath1way1, delpath1way2, delpath2way1 and delpath2way2.
- - If a bot should jump somewhere you can set the jump flag with the command 'setjumpwp'. Its handy to set the direction to where
- the bot should jump to with the command 'setwpyaw'.
- 7. DEDICATED SERVERS
- As of release 0.3 there is dedicated support! :) Though the standalone server binary is less light than the one
- for cube. It also needs some additional directories/files:
- - The bot folder
- - The packages folder, however it only needs the map files so you can remove all the sounds and textures.
- - Server script file
- If you want to configure bot cvars, add a few bots on startup etc. You should edit the bot.cfg file in the bot folder.
- Explanation can be found in the file itself.
- You can start a server by executing on of the following scripts:
- cube_bot_linux-ded (linux)
- or
- cube_bot_fbsd-server (FreeBSD)
- or
- cube_bot_win-ded.bat (Windows)
- 8. SOURCE CODE
- You can find the modified source in the "bot/bot_src" directory. Atleast 90% off all the changes are
- marked by me with comments(mostly something like 'added by Rick').
- 9. CREDITS
- Wouter van Oortmerssen aka Aardappel and all the other people
- that made cube as what it is now(see the cube readme).
- Pierre-Marie Baty (PMB): for most of the current navigation code and other misc. code.
- Check out his RACC bot for half-life at racc.bots-united.com
- Botman : 'The father of all half-life bots'. He created the HPB bot(hpb-bot.bots-united.com) which
- is the base for almost all half-life bots. A lot of ideas are inspired by him.
- arghvark : Fix for ATI based gfx cards on linux.
- Internet Nightmare : Optimizing waypoint file reading/writing
- People at bots-united forums and cube forums: For feedback, suggestions, reporting bugs
- and bot names :)
- 10. Questions, suggestions, comments etc
- Feel free to send them to me :) (check top of file for contact info)
- You can also visit the forums: http://forums.bots-united.com/forumdisplay.php?f=77
|