home *** CD-ROM | disk | FTP | other *** search
/ PC Zone 83 / Dppcz1299.iso / ExPlay / HalfLife / jumbot.exe / README.TXT < prev   
Text File  |  1999-09-10  |  19KB  |  474 lines

  1. Name of Mod        : The Jumbot
  2. File Name          : jumbot05.zip
  3. Version            : 0.5
  4. Date               : September 10, 1999
  5. E-mail             : thefatal@telefragged.com
  6. Web Site           : http://www.telefragged.com/thefatal/
  7.  
  8. Additional Credits : Thanks to all the people who've helped me and
  9.                      given me support, especially people like Strider
  10.                      and news sites like the Bot Epidemic. I appreciate
  11.                      all of the support. Thanks to Brian McClelland and
  12.                      Adam Smith for helping test the bot and informing
  13.                      me of various bugs. Thanks to John Crickett (author
  14.                      of the Oak bot) for the helpful information on file
  15.                      I/O.
  16.  
  17. AUTHOR INFO
  18. -----------
  19. I'm also the author of the Famkebot, Head Soccer, and many other
  20. things.
  21.  
  22. TYPE OF MOD 
  23. -----------
  24. This is a DeathMatch, Teamplay, and Cooperative bot for Half-Life.
  25.  
  26. Programming  : All of it.
  27. Sound        : Nope.
  28. MDL          : Nope.
  29. Maps         : Nope.
  30. Graphics     : Nope.
  31.  
  32. VERSION HISTORY
  33. ---------------
  34. 0.5:
  35. Fixed tripmine avoidance.
  36.  
  37. Added bot yaw speed option.
  38.  
  39. Bots try harder not to blow themselves up.
  40.  
  41. Fixed leader-following AI to work better.
  42.  
  43. Bots no longer ignore pain while using HEV/health chargers.
  44.  
  45. Fixed a bug in the bot's enemy-tracking AI.
  46.  
  47. Corrected a bug which was causing developer mode to generate
  48. problems as well as causing crashes on some systems in both
  49. dev and non-dev modes.
  50.  
  51. 0.4:
  52. Added waypoint option for bots to jump at certain locations.
  53.  
  54. Fixed delay which made execbots.cfg not work properly.
  55.  
  56. Added item-getting troubleshooting methods.
  57.  
  58. Fixed a bug in the waypoint code that may have been causing
  59. bad edict errors on some systems.
  60.  
  61. Added troubleshooting routines to the scientist killing
  62. scripts in cooperative mode for if the bot can't get to the
  63. desired distance.
  64.  
  65. Bots now try to place tripmines strategically through the
  66. level (though there's only so much they can do to try to
  67. find a good place).
  68.  
  69. Bots no longer shoot their own tripmines or tripmines that
  70. belong to teammates in teamplay mode.
  71.  
  72. Bot weapon priority numbers can now be set in the jumbot.cfg
  73. file.
  74.  
  75. Bots will now gauss-jump to get to items they cannot normally
  76. reach.
  77.  
  78. Made an extremely large speed increase in the advanced bot
  79. routines. speedup 0 should provide an acceptable framerate
  80. on most systems now.
  81.  
  82. Added "speedup 2" option to only disable the things which
  83. take a heavy amount of CPU power. This keeps things like
  84. edge clipping to get items and such enabled.
  85.  
  86. Added a "delayed reaction" option, which is used for enemies,
  87. mines, etc. The first time I saw a bot kill another bot with
  88. a tripmine, it just gave me a nice warm feeling.
  89. ---
  90. 0.35:
  91. RPG dot bug finally fixed.
  92.  
  93. Various speed optimizations.
  94.  
  95. Added a waypoint value to the jumbot.cfg file to disable use of
  96. waypoints.
  97.  
  98. Improved the bot's non-waypoint roaming significantly.
  99.  
  100. Added auto-adjust option for bot millisecond update value (this
  101. is now defaulted to).
  102.  
  103. Problem with client slots not being freed over level changes is
  104. now fixed.
  105.  
  106. Fixed bots attacking monster corpses in coop.
  107. ---
  108. 0.3:
  109. Bots have full use of ladders now.
  110.  
  111. Bug where RPG dot stayed after bots dying is fixed.
  112.  
  113. Bots are attacked by snarks and the hornet gun now.
  114.  
  115. Hopefully fixed the problem with some systems crashing after chatting
  116. was enabled for a while.
  117.  
  118. Fixed problem with real clients not being able to chat with eachother
  119. while running the bot.
  120.  
  121. Fixed bug that allowed bots to chat to non-client entities.
  122.  
  123. Hopefully fixed bug that caused keeping speedup set at 0 to crash
  124. some systems.
  125.  
  126. Bots perform better with waypoints under water.
  127. ---
  128. 0.2:
  129. All known stability problems fixed.
  130.  
  131. Windows NT incompatibility problem fixed.
  132.  
  133. Weapon selection bug fixed (bots ignored many of the regular weapons
  134. even if they had them).
  135.  
  136. Bots now use secondary fire much more intelligently.
  137.  
  138. Added Jumbot.cfg file to be executed on startup so that your personal
  139. preferences do not have to be typed in each time you load the bot
  140. (execution of the file can be disabled through a cvar).
  141.  
  142. There is now a cvar to set the name of the file which the bot's name,
  143. model, etc. is read in through, so you can have an endless number of
  144. bot configuration files.
  145.  
  146. Chat support is now fully working. Chat files are selectable just as
  147. bot configuration files are.
  148.  
  149. bot_num cvar added to maintain a constant number of bots on the server.
  150. This is useful for dedicated servers and such.
  151.  
  152. Quotes can now be used in the bots.cfg file to indicate that a name has
  153. a space in it (e.g. "Lera Yvette" instead of Lera_Yvette).
  154.  
  155. Chat files can now have anywhere from 3 to an infinite number of lines
  156. for each section (they are no longer limited to 30 lines each).
  157.  
  158. Added edge clipping for items, combat, etc (bots will not jump off of
  159. uncrossable ledges after items and will not fall off of ledges while
  160. strafing to avoid fire during combat).
  161.  
  162. Cooperative play support added. See the "STARTING A COOP GAME" section
  163. for details on how to use it.
  164. ----
  165. 0.1:
  166. First release. Features include standard server-side client emulation,
  167. full weapon support, a new full level navigation system, and more.
  168.  
  169. INSTALLATION AND USE
  170. --------------------
  171. If you have a previous version of the Jumbot installed, then delete
  172. your old Jumbot folder before doing anything. You may wish to back
  173. up your existing config files and such for the bot first.
  174.  
  175. Extract the zip file WITH DIRECTORY STRUCTURE directly to your Half-Life
  176. directory. If you did it correctly, you'll have a new "jumbot" folder
  177. under your Half-Life folder. Now start Half-Life with the console
  178. (-console at the command line). Once in the menu, use the custom
  179. game option to activate the Jumbot. Now just start a regular LAN game
  180. through the menu (note that if you want to use the bots on teams, just
  181. set up the game to use Teamplay as you normally would) and use the console
  182. (~ key) to enter commands and change values (which are listed below).
  183.  
  184. If there is no waypoint file for the bot, you'll need to place waypoints
  185. yourself and save them to a file once you're happy with their placement.
  186. See below for the various waypoint management commands and values.
  187.  
  188. Before getting into a game with the bot, you'll probably also want to
  189. edit the jumbot.cfg file in your hl\jumbot folder and change it to fit
  190. your own preferences.
  191.  
  192. TROUBLESHOOTING AND PERFORMANCE ISSUES
  193. --------------------------------------
  194. You should note that the Jumbot uses some fairly advanced
  195. navigation routines that require a good amount of processor speed.
  196. However, the bot can still get around levels quite well without the
  197. use of those routines, so there is an option to disable them for
  198. those of you with slower computers. Simply use the speedup cvar in
  199. the console, which you can read more about below. Also note that
  200. increasing the bot's thinking speed to a higher value (also done
  201. through a cvar, see below) can take more load off of the processor
  202. because the bot does not need to do as many calculations per second.
  203. These settings would be optimal for both compatibility and for
  204. performance:
  205.  
  206. waypoints 0
  207. speedup 1
  208. bot_thinkspeed 1
  209.  
  210. However, I would still recommend keeping waypoints set at 1. It
  211. doesn't cause that much CPU power to be used up and improves
  212. the bot's navigational ability greatly (although it does require
  213. the level to have a JRF file for it, which you can make yourself as
  214. shown in the waypointing section of this file).
  215.  
  216. If you're experiences crashes or Half-Life exits to your desktop
  217. after a certain amount of time, try setting msec_max to a lower
  218. value, such as 30 or so.
  219.  
  220. CUSTOM BOT CONFIG FILES
  221. -----------------------
  222. The Jumbot comes with 2 custom bot configuration files. bots.cfg, and
  223. execbots.cfg. The information in bots.cfg is read and used if
  224. nobotcfg is not set to 1 each time a bot is added. To use execbots.cfg,
  225. type "exec execbots.cfg" in the Half-Life console. It will set nobotcfg
  226. to 1 and use the information in the file. Both files can be edited and
  227. added to freely using any standard text editor.
  228.  
  229. CUSTOM CHAT CONFIG FILES
  230. ------------------------
  231. Custom chat files can be specified using the chatfile cvar (see below).
  232. By default, botchat.cfg will be used. This file can be edited and such
  233. to your liking with any standard text editor. Each chat file holds a
  234. total of 60 comments (30 for dying, 30 for killing). All chat files
  235. should be placed in the Jumbot directory located under your Half-Life
  236. directory. As an example, if you have a bot chat file called "chat2.cfg"
  237. that you want to use instead of botchat.cfg, then you can simply type
  238. "chatfile chat2.cfg" in the Half-Life console. From then on, all bot
  239. chat comments will be read from chat2.cfg instead of botchat.cfg.
  240.  
  241. STARTING A COOP GAME
  242. --------------------
  243. First, start a regular DM game. Now, bring down the console, and type
  244. the following:
  245.  
  246. disconnect
  247. deathmatch 1
  248. coop 1
  249. sv_cheats 1
  250. map <mapname>
  251.  
  252. If you want to load another level, repeat the same process. <mapname>
  253. should be the level that you want to load. However, it is important
  254. to note that coop support was never even actually finished in
  255. Half-Life. So, it is more than likely that you'll get errors or
  256. crashes if you try to play on the original single player levels. I
  257. recommend using some of the many available "scientist death maps"
  258. or any single player level that isn't cut up into sections.
  259.  
  260. After you've started the game, you can use the coop_scikill and
  261. coop_killmeth cvars to change how the bot behaves. Details on using
  262. the cvars are below under "SETTINGS AND COMMANDS".
  263.  
  264. SETTINGS AND COMMANDS
  265. ---------------------
  266. nostartexec (cvar): Default is 0. Setting to 1 causes the jumbot.cfg
  267. file to not be executed at the start of each level.
  268.  
  269. addbot (command): Adds a bot into the server.
  270.  
  271. removebot (command): Removes the last created bot from the server.
  272.  
  273. bot_num (cvar): Sets a constant number of bots in the game (useful
  274. for servers running the mod and such).
  275.  
  276. waypoints (cvar): Default is 1. Setting to 0 disables use of
  277. waypoints.
  278.  
  279. botfov (cvar): Sets the bot's field of vision. Works just like the
  280. player's "fov" cvar. Default is 90.
  281.  
  282. botusefov (cvar): Default is 1. Setting to 0 tells the bot not to
  283. limit its view to its field of vision.
  284.  
  285. bothearing (cvar): Default is 1. Setting to 0 disables the bot's
  286. ability to detect things by hearing them instead of viewing them.
  287.  
  288. botpain (cvar): Default is 1. Setting to 0 will disable the bot's
  289. ability to detect an enemy by figuring out which direction it is
  290. feeling pain from (even if it cannot hear or see its enemy).
  291.  
  292. botaccuracy (cvar): Allows you to set the accuracy of the bot. The
  293. default is 10. The lowest is 0, which is perfect, and the highest is
  294. 160, which is extremely bad.
  295.  
  296. bot_tripmines (cvar): Enables and disables allowing bots to place
  297. tripmines. Default is 1 (enabled).
  298.  
  299. bot_gauss (cvar): Enables and disables allowing bots to gauss jump to
  300. get to high-up items. Default is 1 (enabled).
  301.  
  302. botspeed (cvar): Allows you to increase or decrease the bot's running
  303. speed (higher increases, negative value decreases).
  304.  
  305. bot_crowbar (cvar): Toggles the bot's use of the crowbar only on and
  306. off. 1 is on, 0 is off. Default is 0.
  307.  
  308. bot_yawspeed (cvar): Changes how fast the bot can turn. Higher is
  309. faster, lower is slower. Default is 25.
  310.  
  311. botmsec (cvar): Changes bot physics update speed. Default is 0, which
  312. means to auto-adjust.
  313.  
  314. msec_min (cvar): Minimum value the msec value can reach when botmsec
  315. is set to auto-adjust.
  316.  
  317. msec_max (cvar): Maximum value the msec value can reach when botmsec
  318. is set to auto-adjust.
  319.  
  320. botcfgfile (cvar): Changes the name of the file used to get bot
  321. names, models, etc. from in your Jumbot directory. The default
  322. is bots.cfg.
  323.  
  324. botchat (cvar): Default is 0. Setting to 1 enables bot chatting.
  325.  
  326. chatfreq_died (cvar): Sets how often a bot will speak after it dies.
  327. Should be between 0.1 and 10. 0.1 would be hardly ever, 10 would be
  328. every time.
  329.  
  330. chatfreq_killed (cvar): Sets how often a bot will speak after it kills
  331. someone else. Should be between 0.1 and 10. 0.1 would be hardly ever,
  332. 10 would be every time.
  333.  
  334. chatfile (cvar): Default is "botchat.cfg". This allows you to specify
  335. the name of the file that contains the comments the bot will use to
  336. chat. All bot chat files should be placed in the Jumbot directory
  337. under your Half-Life directory to be used.
  338.  
  339. speedup (cvar): The default for this is 0 (disabled). When set to 1,
  340. it will disable some of the bot's advanced navigation routines and take
  341. a significant load off of the processor. The bots will still be able to
  342. navigate levels well, but will not do some of the more advanced things
  343. that they normally do in exchange for less processor usage. When set to
  344. 2, some things will be disabled while others that would be disabled with
  345. speedup 1 remain enabled. Using speedup 2 will still give you a good
  346. speed boost, though.
  347.  
  348. bot_ai (cvar): The default for this is 1 (enabled). Setting to 0
  349. completely disables the bot's AI.
  350.  
  351. bot_thinkspeed (cvar): The default for this is 0.1. It can be a value
  352. anywhere between 0 and 1. This adjusts the speed at which the bot
  353. thinks, reacts, etc. This factors into reaction time as well as
  354. slightly into accuracy.
  355.  
  356. bot_viewdelay (cvar): Sets whether or not the bot will delay after
  357. noticing things. Default is 1 (enabled).
  358.  
  359. bot_angleupdate (cvar): Sets whether or not the bot will change
  360. angles each from or when it thinks. Default is 1 (enabled).
  361.  
  362. nobotcfg (cvar): This is 0 (disabled) by default. Setting it to 1 will
  363. disable the use of the bots.cfg file, and you'll need to use the bot
  364. information cvars (below) to customize the bot.
  365.  
  366. b_name (cvar): The bot being added uses this value as its name if
  367. nobotcfg is set to 1. This is also used after the bots.cfg file
  368. runs out of profiles.
  369.  
  370. b_model (cvar): The bot being added uses this value as its model if
  371. nobotcfg is set to 1. This is also used after the bots.cfg file
  372. runs out of profiles.
  373.  
  374. b_topcolor (cvar): The bot being added uses this value as its shirt
  375. color if nobotcfg is set to 1. This is also used after the bots.cfg file
  376. runs out of profiles.
  377.  
  378. b_bottomcolor (cvar): The bot being added uses this value as its pants
  379. color if nobotcfg is set to 1. This is also used after the bots.cfg file
  380. runs out of profiles.
  381.  
  382. coop_scikill (cvar): Can be a value from 0 to 2. 0 disables killing of
  383. scientists and barneys, 1 enables scientist and barney killing with
  384. scripted murdering, and 2 treats scientists and barneys as normal
  385. enemies. The default is 1.
  386.  
  387. coop_killmeth (cvar): Can be a value between 0 and 5. Default is 0. If
  388. you have coop_scikill set to 1, this will allow you to change the bot's
  389. behaviour when killing scientists. The following values are usable:
  390. 0 - Random murder.
  391. 1 - Crouch down, shoot upwards in face with shotgun.
  392. 2 - Back away, shoot in neck or skull with crossbow.
  393. 3 - Run up to and shoot directly into stomach with magnum.
  394. 4 - Rapid fire directly into stomach with glock.
  395. 5 - Crouch down and shoot upwards in skull with magnum.
  396.  
  397. *WAYPOINT MANAGEMENT COMMANDS AND CVARS*
  398. waypoints (cvar): Enables and disables waypoints. Default is 1 (enabled).
  399.  
  400. wp_autoplace (cvar): Default is 1. Setting to 0 will disable attempts
  401. to automatically place waypoints behind you when you're constructing
  402. a waypoint table to be saved to a JRF file.
  403.  
  404. makewp (command): This will add a waypoint at your current location, it
  405. is used while constructing a waypoint file for a level (see below).
  406.  
  407. writewpfile (command): Use this after you've finished placing waypoints
  408. for a level to save the waypoint data to a file for later use.
  409.  
  410. CONSTRUCTING WAYPOINT (JRF) FILES
  411. ---------------------------------
  412. When you load up a level that doesn't have a JRF file for it in your
  413. Jumbot\wpfiles directory, you will automatically begin placing waypoints
  414. (which will be visible to you in the form of crossbow bolts) whenever it
  415. is determined by the checks in the program that one should be placed.
  416. The program is often incorrect in its assumptions as to where they need
  417. to go and will sometimes neglect to place one in an area where it is
  418. needed. If you see this happening, use the makewp console command to
  419. place a waypoint manually. Here are some good tips for creating waypoint
  420. files:
  421.  
  422. 1. Always make sure each waypoint is visible from the previous waypoint
  423.    and the next waypoint.
  424.  
  425. 2. Make sure you stay crouched while placing waypoints in areas that
  426.    require the player to crouch to avoid certain obstacles.
  427.  
  428. 3. Try not to go off any ledges that you can't climb back up.
  429.  
  430. 4. Try to place a waypoint close to each side of a door.
  431.  
  432. 5. Place waypoints close to buttons that need to be used, so the bots
  433.    will know to use them.
  434.  
  435. 6. Place waypoints close to health/HEV suit rechargers if you want the
  436.    bots to use them.
  437.  
  438. 7. When using ladders, place a waypoint at the head and foot of the
  439.    ladder.
  440.  
  441. 8. Be careful with jumping. When you jump a waypoint will be placed.
  442.    When the bot gets to that waypoint, it will also jump. You can
  443.    get the bot to do some nice stunts to get to certain items like this.
  444.  
  445. 9. Don't get killed.
  446.  
  447. After you've finished constructing your waypoint file, use the writewpfile
  448. command to save the waypoints to a JRF file and then restart the level. The
  449. JRF will be automatically loaded each time the level is loaded from now on.
  450. If you don't like the job you did on the JRF and want to redo it, simply
  451. delete it from your Jumbot\wpfiles directory and reload the level. Each
  452. JRF file will have the same name as the level it is for (boot_camp.bsp is
  453. boot_camp.jrf, etc).
  454.  
  455. BUGS, ETC.
  456. ----------
  457. There are currently no bugs that I know of that are very serious.
  458. Please don't send bug reports, since I have people to test the bot for
  459. me under pretty much all conditions and I'll eventually find a bug
  460. if it exists. If you're having odd obvious problems, make sure you
  461. have the latest version of Half-Life. There may be a couple problems
  462. around, but there's always some way around them.
  463.  
  464. COPYRIGHT/PERMISSIONS
  465. ---------------------
  466. The bot may only be distributed if this file and all the other files that
  467. came with it are included in the redistribution, and no money is charged
  468. for the product being distributed. This excludes such things as video
  469. game magazines which include a CD and things such as that, which are
  470. permitted to include this bot (provided they meet the requirements above)
  471. as long as they notify me before doing so and get my permission through
  472. e-mail or some other form.
  473.  
  474.