home *** CD-ROM | disk | FTP | other *** search
/ Quaker's Paradise / Quakers_Paradise.iso / robots / reaper / reaprb07.txt < prev   
Encoding:
Text File  |  1997-06-20  |  9.7 KB  |  233 lines

  1. Title    : The Reaper Bot
  2. Filename : reaprb07.zip
  3. Version  : 0.7
  4. Date     : 10/20/96
  5. Author   : Steven Polge
  6. Email    : polge@ix.netcom.com
  7. Credits  : id software, for making the only computer games I ever play, and for
  8.         releasing QuakeC
  9.        The QuakeC modifications included in this archive are entirely my
  10.         own design. 
  11.        Dennis Noordsji for the skins code concepts.
  12.  
  13. Build time: about 85 hours so far...
  14.  
  15. Type of Mod
  16. -----------
  17. Quake C  : yes
  18. Sound    : no
  19. MDL      : no  
  20.  
  21.  
  22. Format of QuakeC (if a Quake C Mod)
  23. -----------------------------------
  24. unified diff  : no
  25. context diff  : no
  26. .qc files     : no
  27. progs.dat     : yes
  28.  
  29.  
  30. Description of the Modification
  31. -------------------------------
  32.  
  33. This may be the most advanced bot opponent currently available.  It learns levels as it plays them, picks up and uses all items, roams around.  It understands doors, teleports, triggers, and buttons.  It will jump off ledges, and avoids landing in lava (understanding the gravity level).  When fighting you, it picks the best weapon it has, and strafes, circles or charges.  Variable skill levels are provided (skill 3 is very tough).  
  34.  
  35. Note:  This bot does not cheat!  At higher skill levels, it rarely misses, and shoots at the maximum rate allowed to players, but it never shoots faster than allowed or causes more damage on hits than normal.  It also does not move faster than players.
  36. If the bot is too tough, try a lower skill level (default skill is 1).
  37.  
  38. Changes from Beta 0.6 to Beta 0.7 are described in B07CHG.TXT, included
  39. in this archive.
  40.  
  41. Commands include:
  42.     IMPULSE 200 - Increment skin (if skins support is set)
  43.     IMPULSE 201 - Decrement skin (if skins support is set)
  44.     IMPULSE 202 - Set skins support
  45.     IMPULSE 203 - Turn off skins support
  46.     IMPULSE 205 - add a bot (can do it repeatedly)
  47.     IMPULSE 208 - add four bots
  48.     IMPULSE 210 - scores (bring up the console -
  49.             hit the ~ key - to read)
  50.     IMPULSE 212 - turn on limited observer mode
  51.             (you are invisible to bots unless you 
  52.             attack them, but move normally)
  53.     IMPULSE 213 - turn off limited observer mode
  54.     IMPULSE 214 - update bots. Use when the 
  55.             SV_GRAVITY or SV_MAXSPEED 
  56.             server cvars are changed.
  57.     IMPULSE 215 - turn on verbose mode 
  58.             (bots tell you what they're doing).
  59.     IMPULSE 216 - turn off verbose mode
  60.     IMPULSE 218 - turn on restricted mode (only
  61.             client 0 can add bots or become
  62.             an observer)
  63.     IMPULSE 219 - turn on super restricted mode
  64.             (no client can add bots or become
  65.             an observer)
  66.     IMPULSE 220 - normal scores (frag count)
  67.     IMPULSE 1XX - Bounds the total number of bots
  68.             + players to XX (XX must no
  69.             greater than 15)
  70.     SKILL N - Change skill level (N = 0 to 3, default
  71.             is 1)
  72.  
  73.     Note: Make sure your SV_MAXSPEED is not set too
  74.     high.  Bots use SV_MAXSPEED to determine their
  75.     speed.  The default is 320, and a higher setting will
  76.     make the bots look jerkier.
  77.  
  78.     I have included reaper.cfg, which creates aliases for
  79.     the above commands and binds some common ones
  80.     to keys.  Look at reaper.cfg to see what the aliases
  81.     are, and edit it to change the key bindings if you
  82.     want.  Type 'exec reaper.cfg' from the console to
  83.     use it.
  84.  
  85. TEAMPLAY
  86.     This release supports teamplay.  When teamplay is
  87.     on, IMPULSE 1XX no longer functions as above.  
  88.     All bots added with IMPULSE 205 or IMPULSE 208 
  89.     belong to the bot only team.  IMPULSE 1XX sets the 
  90.     number of bots on each player's team to XX (must be no 
  91.     greater than 15).  Bots on your team will have the same
  92.     color as you (and the same skin, if you're using skins).  
  93.  
  94. SKINS
  95.     I did not include a player.mdl with skins.  Get one from 
  96.     a skins mod, and put it in a /progs subdirectory of the
  97.     directory where you put the reaperbot quakec progs.dat.
  98.  
  99. Features Include:
  100.  
  101. * 4 skill levels (0 to 3), which affect
  102.     - bot accuracy when shooting 
  103.     - bot yaw speed (how fast it tracks you)
  104.     - average bot re-fire rate
  105.     - bot reaction time, and pain time
  106.     - whether bot leads you with grenades and rockets
  107. * Uses all player frames
  108. * Improved following AI 
  109.     - can handle following opponents around corners, through
  110.     doorways, doors, teleports, etc.
  111. * Dynamic level learning
  112.     - Bots build internal map of level as they play, and use
  113.     it to roam around, go find weapons, hunt opponents, etc.
  114. * Understands jumping
  115.     - predicts jumps based on current gravity level 
  116.     - won't jump into lava or slime
  117.     - will jump up onto low ledges or down, to go after goal
  118. * Combat AI
  119.     - charges, strafes, circles based on its weapon, enemy's 
  120.     weapon, the distance between them, and whether enemy
  121.     is running away.
  122.     - picks best weapon depending on range (only uses rocket 
  123.     launcher at close range if it doesn't have anything else 
  124.     good, and health+armor is high)
  125.     - will even if needed go after health, ammo, or a weapon 
  126.     in the middle of combat!
  127.     - trys to avoid combat if health or ammo low, and it 
  128.     thinks it can escape
  129.     - avoids combat with invulnerable enemies
  130. * Improved grenade and rocket aiming
  131.     - leads player at higher skill levels
  132.     - adjusts grenade aiming to compensate for trajectory 
  133.     (using current gravity     level)
  134.     - adjusts rocket aim to avoid lips and edges
  135. * Understands triggers and buttons
  136.     - Will go for the triggered entity when it shoots a trigger 
  137.     or presses a button.
  138.     - Doesn't go after doors, etc., which must be triggered 
  139.     (unless they're already open).
  140.     - Doesn't go after triggers or buttons which have already 
  141.     been activated.
  142. * Understands door, teleporters, secret doors, and wind tunnels
  143.     - Will fire at secret doors before going through
  144. * Chooses goals according to priorities depending on its current 
  145.     inventory, health, armor, etc.
  146.     - Understands and uses all weapons, ammo, powerups, etc.
  147.     - Won't keep going after an item if it can't reach it
  148.     - Will use internal map to go after items it wants but
  149.     can't see 
  150. * Up to 16 bots on a level
  151. * Multiplayer Server capability - deathmatch bots vs humans!
  152.       - No other files needed by the clients 
  153.     (they can use their original progs.dat).
  154. * Scoring - Impulse 210 gives a break out of kills & deaths 
  155.     versus bots and players
  156.     - scoring is 2 * kills - deaths - 2 * suicides
  157. * Limited observer mode - you are invisible to bots, but
  158. you walk around rather than flying.  Impulse 212 turns
  159. on, Impulse 213 turns off.
  160. * Bot swims in water
  161.     - avoids drowning, even during combat
  162.     - understands whether it can swim to items
  163.     - can jump out of water
  164.     - chases enemies into water
  165.     - won't use lightning gun underwater unless
  166.     invincible
  167. * Same number of bots generated in new level after changelevel
  168. * Bots die in lava and slime, and drown if under water
  169. too long
  170. * Bots can telefrag or be telefragged
  171.  
  172. Features to be added in version 1.0
  173. * Skins - so you can differentiate between bots 
  174. (needed for team play)
  175. * Observer Mode (improved) 
  176. * Team play - with human team leader giving orders 
  177. to bots
  178. * Learning AI w/ personalities - chooses camping, 
  179. charging, sniping based on previous successes/failures 
  180. - retreats when health is low, or bad relative weapons
  181. * Better AI handling of invisible & quad powered opponents
  182. * Yaw bot model up and down
  183. * Improved routing, including route cacheing - this will
  184. substantially improve the bot AI
  185. * Merge w/ v1.06 Quake source
  186.  
  187. And more to come...
  188.  
  189. Known bugs
  190. * Occasional erroneous splash sound by bots, particularly 
  191. when spawning
  192.  
  193. How to Install the Modification
  194. -------------------------------
  195.  
  196. Create a directory called RPBOT as a subdirectory in your Quake directory (parallel to the ID1 directory) move the PROGS.DAT file included in this archive to the RPBOT directory.  To play, type QUAKE -GAME RPBOT from the Quake directory.  This modification only works with the registered version of Quake.  Make sure you
  197. run deathmatch when you play with the bots- they don't play coop (either select
  198. multi-player, or type DEATHMATCH N at the console, where N = 1 or 2).  To change skill levels, type SKILL N at the console, where N is an integer 0 to 3.
  199.  
  200. Technical Details
  201. -----------------
  202.  
  203. The combat and local goal setting AI uses heuristics with fuzzy logic for decision making.  I am currently working on supporting learned behaviour based on combat success for the combat AI, as well as the hunting AI.
  204.  
  205. The roaming AI uses dynamically placed botpaths to move from place to place.  The botpath node placement is optimized to guarantee a valid path followable by the bot, while bounding the number of botpath nodes.  Botpath routes are dynamically merged to minimize the number of botpath nodes.  Multiple spanning trees point in the upstream route direction for routing updates.  These routes can be used to go to both static and moving goals (e.g. players).  Loop detection and avoidance is implemented both for bots following the paths, and for routing updates.  I'm currently implementing route caches to improve performance, and to instantly provide the bot with the route to the "best" (based on distance and type) item of a given class (e.g. health, armor, weapons).
  206.  
  207.  
  208. Author Information
  209. ------------------
  210.  
  211. This is my first publicly distributed quakeC patch.
  212. I design router software and protocols for a living.
  213.  
  214.  
  215. Copyright and Distribution Permissions
  216. --------------------------------------
  217.  
  218. The modifications included in this archive are Copyright 1996, Steven Polge.  The original
  219. QuakeC source is Copyright 1996, id software.
  220.  
  221. Authors MAY NOT use these modifications as a basis for other publicly or commercially available work.
  222.  
  223. You may distribute this Quake modification in any electronic format as long as all the files in this archive remain intact and unmodified and are distributed together.
  224.  
  225.  
  226. Availability
  227. ------------
  228.  
  229. This modification is available from the following places:
  230.  
  231. FTP   : ftp.cdrom.com in \pub\quake\quakec\bots
  232.  
  233.