-------------------------------------------------------------- CAJUN BOT v0.98 by Martin Collberg --------------------------------------------------------------- Title : CajunBot Author : Martin Collberg (Yoghurt) Homepage : www.doomworld.com/doombot Email Addresses : yoghurt@telia.com Description : Human-like AI for Simulated Doom Deathmatch play, lately it has been some coop to. CTF will also be supported. Additional Credits to : id Software- for being id Software and for releasing the DooM code. Fab & Boris- for making the Legacy port and then releasing the source Andreas (my little brother)- for many hours of play testing, and advices. All bug reporters out there for helping me find the bugs so I can fix them. Paradox- for pre-release testing and chat comments You- for downloading my first big programming project. ---------------- Getting started: ---------------- Simply unzip the Cajun zip into your DooM or Legacy folder. Please make sure, that you unzip it with subfolders, if not using winzip use the -d parameter. Then read this document. --------------------- Starting a slaughter: --------------------- type (in DOS promt, maybe shortcut window) cajun -deathmatch -warp x where "x" is the mapnumber. Then from within the game, press the 'b' key to add a random bot or type "addbot " (Look in the "bots" folder for their names). It is possible to play the CajunBot on any map. New from version 0.85 and up is that you DON'T have to make a nodetable! The bots navigates after the structure of the level. 0.98 and up has the optional node system. -------------- Stuff to know: -------------- Bot Names / skills / Personalities. You can edit the names and attributes of the bots, by editing the "bots.cfg" file, located in the cajun directory (same as this readme). There will hopefully be more skills later. Weaponpref order is: (same as for ordinary players). Fist, Pistol, Shotgun, Chaingun, Rocketl, Plasma, Bfg, Chainsaw, Ssg higher number = fancier weapon. The new nodesystem doesn't do that much difference for now, since the bot just chooses a random node as destination. I will add smarter use of the path system in the future, Note: the nodetables people create now will 99% certainly be forward version compatible. Bad things: - Demorecording is still unstable, a good rule is to avoid any console command's while recording with bots. nodes and demorecordning doesn't work together. - Bot could roam bad on level's with no/little items on it. ---------------- Teamplay ----------------- Teamplay is set ingame with the "teamplay" console variable. You can have teamplay with bots by skins or by color (1 or 2). Bots are best added with the addbot to get them into a specific team or you can use the next_color variable for quicker (random) spawning with the 'b' key. In teamplay mode the bots will avoid shooting at friends, and they create groups or group with you by themselves, no babysitting needed. more teamplay things will come in the future. like bots guarding tactical areas of the map. ------------- Cooperative: ------------- Just launch doom without any parameters. Start a new game add some bots, then you should be there. The game is automatically set to coop style (i.e. player respawns instead of reloading the level when dead) as soon as one or more bots are ingame. Note: the cooperative part is just a one days work, so it's rather dull. Im planning to do better coop later. -------------- Key commands : -------------- these are commands bind to a key via the setup keys menu. -Freeze world freezes the whole world except real players. Fun to play with. -Spawn bot Adds a random bot to the game. -Guard order Not done yet. -------------- Console stuff: -------------- The following new commands are available: addbot color> spawns a specific bot if a second parameter is given (optional) the bot will be spawned in that color, overriding it's original color from the bots.cfg. Note: Doesn't work under demorecording. teamplay 0-2 Teamplay set to 1 allows teamplay by color, i.e.- the bots with the same color will team up. Set this to 2 to get teams by Skin. Teams by skin is unsupported by CTF. next_color 0-11 Sets the colors for coming bots, this overrides their normal colors great for spawning teams for teamplay. debugbotcfg 0/1 great to use if something seems to be wrong with a bot.cfg it shows the bot file as the program reads it at startup check in the console. botusesplit 0/1 Set this to 1 before adding a bot while running a splitscreen game when adding a bot, the second player will be replaced by it. Note: Currently, demo will be fucked up if bot uses splitscreen. addnode adds a node at the players position. loadnodes loads a pathed nodetable (the .tbl format). improves the roaming performance of the bot. savenodes Use this so save the nodes placed with the "addnode" command it will save a ".t" file into your cajun/nodes directory when running p.exe on the table it will be a pathed nodetable. This command can also be useful to extract .t files if repathing is needed for some reason, just load the pathed table and save it again. exec executes a script files commands. Very useful. The script files can contain every command line, like addbot loadnodes... ------------- Making nodes: ------------- There are two different nodetable formats, the ones with ".t" extensions and the ".tbl". The last mentioned are the ones used when playing (loaded with the loadnodes command) and the ".t" ones is the raw nodes created with the addnode command and saved with "savenodes". You'll have to compile the ".t" files in order to get ".tbl" files. This is done with the p.exe located in the cajun/nodes folder. Run like this: p tablename.t -max 1500 the -max parameter is there to reduce compiling time, however the lower this value is the worse pathing will p.exe create. a good value is between 1000 and 8000. Additional parameters are: -log : creates log files with lists of all paths. -length x: max length (in nodes) for each path, reduces compiling time if x=low value) Placing the nodes: First bind a key to the "addnode" command like this: bind addnode. then go trough the level, placing each node so that they will be reachable by at least one other. The nodes will be represented by a lamp. ------------------ Startup parameters: ------------------ -BOTS starts DOOM with bots from start. -bots .. -DEATHMATCH starts DOOM as a DeathMatch game. If you don't enter DEATHMATCH as a command line parameter, DOOM II will default to the Cooperative mode. -deathmatch -ALTDEATH specifies respawning items during DEATHMATCH. NOTE: Invulnerability and Invisibility do not respawn. -deathmatch -altdeath -CTF sets the game to Capture The Flag. Note that this is in no way finished in this release. -ctf -SKILL sets the skill level (1-5) you wish to play. This has nothing to do with the bots skills, only monsters. Only useful with -warp -- see below. -skill <# of skill level> -NOMONSTERS allows you to start playing with NO MONSTERS running around! This is great for DeathMatch where, really, the monsters just get in the way. Only useful with -warp -- see below. -nomonsters -NOJOY isn't what it sounds like. It just disables your joystick. -nojoy -NOMOUSE disables your mouse. -nomouse -NOSOUND turns off the sound while DOOM is playing. -nosound -NOMUSIC turns off the music while DOOM is playing. -nomusic -NOSFX turns off special effects sounds (like monsters growling, guns firing, etc.) while DOOM is playing. -nosfx -RESPAWN tells DOOM that, yes, you are Bad, and yes, you want all the monsters to respawn around 8 seconds after you kill them. The NIGHTMARE skill level already does this. Note that using -respawn and -nomonsters at the same time is a dumb thing to do. Only useful with -warp -- see below. -respawn @ will allow you to specify a Response file that DOOM II will read additional command-line parameters from. For example, typing 'DOOM2 @MYPARMS' will tell DOOM II to look in the MYPARMS file for additional command-line parameters. The file format is simply one parameter per line with a carriage return to terminate the line. Each parameter is typed exactly as you would type it on the DOS command-line. -FAST will make the monsters move and shoot up to 3 times faster, just as if you were playing in Nightmare mode, but without the respawning. Only useful with -warp -- see below. -fast -TIMER <# of minutes> will make DOOM exit the current level after the specified amount of minutes, when it goes to the intermission. This option is only useful in DeathMatch mode. -timer xxx -WARP <# of level> starts DOOM out right at the level you specify. For instance, to start at the first level, you'd type "-warp 1". The following command-line parameters are ONLY available while using the -WARP parameter: -fast, -nomonsters, -skill, -respawn. -warp xx An example line for entering the above information would be: cajun -warp 1 -deathmatch -timer 10 -bots devourer flare ----------------------------- things with versions: ----------------------------- 0.98---------------------------------------- -Bug fixes. -New node system (again). 0.97---------------------------------------- -Crash after level completion fixed. -Some minor improvements. 0.95---------------------------------------- -New movement code without nodes. -Somewhat improved brains. -Lava, nukage etc., avoidance. -Demo recording, when bots are added with the 'b' key. -Real view for bots. -Decreasing of rocket suicides. -Bots don't run up close. -Isp is used more. 0.71---------------------------------------- -Temporary removed the bots chatting. -Legacy 1.28 -WeaponPreferring for bots 0.68---------------------------------------- -Better navigation trough levels (roaming). -Effective item pickup. -Spawn bots with -bots name1 name2 parameter at startup. -Better spawning, with color spawn, one singe bot.cfg file and spawn by pressing 'b' -Strafing, including missile avoidance. -True Plasma and rocket prediction. -Fraglimit -Teamplay (includes teamfrag ranking) -Improved Ranking table. -optional freeze mode. (freezes game world except you) -Improved movement. -Fixed animations -Fixed ssg reload sound -Starting the game in any deathmatch mode will bring the deathmatch weapons (didn't happen before since there was no "real" netgame) -normal deathmatch (old) is fixed so that weapons stay. -Some other small fixes. ----------- Disclaimer: ----------- I take no responsibilities if any bad thing happen to you or your computer due to this software. You use the program at your own risk. However I can ensure you that I haven't made anything "mean" with purpose (why should I?). ----------- Known bugs: ----------- * You cannot play with more than one "real" player and bots at the same time. Gotta fix a nice network thingy thing for that. The ZCajun, maintained by Randy Heit however, can do this. Report bugs or suggestions to: Yoghurt When reporting SIGSEVS, try specify when the crash occurred and what the bots where doing... (not easy I know) Go Frag some! - Yoghurt