home *** CD-ROM | disk | FTP | other *** search
/ Gambler 19 / GAMBLERCD19.BIN / UTILS / 3D / MODY / VIKING09.ZIP / Readmes / Eraser_readme.txt next >
Text File  |  1998-03-30  |  29KB  |  702 lines

  1. ================================================================
  2.  The Eraser Bot                                    v0.90 (Beta)
  3.  by Ryan Feltrin (aka Ridah)
  4. ................................................................
  5.  
  6. ================================================================
  7. Title                   : Eraser Bot
  8. Author                  : Ryan Feltrin (aka Ridah)
  9. Homepage                : http://impact.frag.com
  10. Email Address           : ridah@frag.com (try homepage first)
  11.  
  12. Description             : Human-like AI for Simulated Quake2
  13.                            Deathmatch play and Capture the
  14.                            Flag
  15.  
  16. Additional Credits to   : id Software for being id Software
  17.                           The Info-Zip team for the zip/unzip tools
  18.                             (http://www.cdrom.com/pub/infozip/)
  19.                           Jack "morbid" Mathews for the
  20.                             installer source
  21.                           Jeremy Mappus (aka DarkTheties) for
  22.                             the MapMod source
  23.                           Grimlock for the colored skins
  24.                           Rowan "Sumaleth" Crawford, for
  25.                             playtesting and suggestions
  26.                           Brett "B-MonEy" McMahon, for his
  27.                             support and ideas
  28.                           Nigel "rkm" Bovey for the linux port
  29.                           IMP for the Eraser logo
  30.                           Pete Elespuru for the consol mod
  31.                           
  32.                           Anyone else who has contributed in
  33.                           any way to the development of Eraser.
  34.  
  35. Build Time              : ~300 coding, lots of hours testing
  36. ================================================================
  37.  
  38. DESCRIPTION
  39.  
  40.    The Eraser Bot is a simulated multiplayer opponent, for
  41.    use with id Software's Quake2. It has been developed with
  42.    speed and accuracy in mind, so that you can play with more
  43.    bots, with higher intelligence.
  44.  
  45.  
  46. INSTALLATION
  47.  
  48.    WIN95/NT INSTALLER
  49.  
  50.    Double click on the EXE file, then specify your Quake2
  51.    folder and press Unzip.
  52.  
  53.    -OR-
  54.  
  55.    ZIPPED VERSION (Win95/NT & Linux users)
  56.  
  57.    Just unzip the files contained in the archive, to your
  58.    Quake2 folder, RESTORING PATHNAMES. This means
  59.    that if you're using Winzip, you must enable the
  60.    "Use Folder Names" option when extracting. For
  61.    pkunzip users (bless their souls), make sure
  62.    you use the -d option.
  63.  
  64.  
  65. RUNNING THE GAME
  66.  
  67.    To run the game, type the following from the DOS Shell
  68.    command line, whilst inside your Quake2 folder:
  69.  
  70.    quake2 +set game eraser +map <mapname>
  71.    (please read below to find out which maps are supported)
  72.  
  73.    The from within the game, type "bot_num X" to spawn X 
  74.    number of bots.
  75.  
  76.  
  77. SUPPORTED MAPS
  78.  
  79.    The Eraser is capable of dynamically learning maps, from
  80.    humans whilst playing the game. However, maps that aren't
  81.    supported by the release (and hence will require dynamic
  82.    learning), will suffer from less intelligent behaviour,
  83.    until the map has been played for a while (usually 10-15 mins).
  84.  
  85.    It is now possible to play the Eraser bot on any map, it will learn
  86.    the map as you play, so just make sure you move around if playing
  87.    a new, or previously unplayed map. You should find the intelligence
  88.    pick up after about 5 minutes of play.
  89.  
  90.    The following user-made maps are highly recommended, since they are
  91.    best suited for Deathmatch play:
  92.  
  93.    <mapname>         <url>
  94.  
  95.    ikdm1             ftp://ftp.cdrom.com/pub/idgames2/quake2/levels/deathmatch/g-i/ikdm1.zip
  96.    severed1          http://planetquake.com/cdrom/ramshackle/SEVERED1.ZIP
  97.    mpq1              ftp://ftp.cdrom.com/pub/idgames2/quake2/levels/deathmatch/m-o/mpq1.zip
  98.  
  99.    Many thanks to their respective authors.
  100.  
  101.    Follow the installation instructions for each map, they can be installed
  102.    as usual, to your quake2\baseq2\maps directory, and will work fine with
  103.    the Eraser.
  104.  
  105.  
  106. MAP CYCLE
  107.  
  108.    When running a dedicated server, or using the TIMELIMIT or FRAGLIMIT
  109.    commands, you may want to specify your own cycle of maps. This is now
  110.    possible due to the inclusion of the MapMod code into The Eraser. 
  111.  
  112.    All you need to do, is edit the file called "maps.txt" in the Eraser directory,
  113.    and within that file, list the series of maps you want to run. When the end
  114.    of the list is reached, the map list will cycle back to the first map.
  115.    
  116.    Thanks to Jeremy Mappus (a.k.a DarkTheties) for the MapMod code.
  117.  
  118.  
  119. GAMEPLAY SETTINGS
  120.  
  121.    Skill Levels
  122.  
  123.        You can increase or decrease the level of the opponents, using
  124.        the "skill" setting. The default being "1", if you set this
  125.        to "2", then the general skill levels of all bots will be raised.
  126.        They will still maintain their individuality, just some will
  127.        be slightly better in areas they may not have been on skill "1".
  128.  
  129.        Note that unless you disable "bot_auto_skill" (see below), Bot's 
  130.        will vary their skill as they play, to make the game more even.
  131.        The skill setting will be used as the starting skill level for
  132.        bot's, when auto skill adjustment is enabled.
  133.  
  134.        Values: 0 (beginner) through 3 (advanced)
  135.  
  136.    Bot Names/Personalities
  137.  
  138.        You can edit the names and attributes of the bots, by editing 
  139.        BOTS.CFG, located in the Eraser directory.
  140.  
  141.    Deathmatch Variations
  142.  
  143.        Using the "dmflags" setting (accessed via the Multiplayer Menu),
  144.        you can enable a disable certain rules. Currently, all settings,
  145.        other than "Teamplay" and "Infinite Ammo" are supported.
  146.  
  147.        "Weapons Stay" means that weapons will remain after being picked
  148.        up, unless they were dropped by another player. This is a
  149.        personal favourite of mine, and I think makes the game much
  150.        more exciting, if less strategic.
  151.  
  152.        Please see your Quake2 manual for descriptions of the other
  153.        settings.
  154.  
  155.        Values: Use the Multiplayer->Start Network Server->Deeathmatch Flags
  156.                 to set the flags you want to play with
  157.  
  158.  
  159. CAPTURE THE FLAG                                *** new to version v0.8 ***
  160.  
  161.     Eraser now supports CTF! Just copy the pak0.pak file from your CTF
  162.     directory to the Eraser folder, then load up one of the CTF maps 
  163.     (q2ctf1 - q2ctf6). Eraser will detect a CTF map, and will enable the 
  164.     CTF code.
  165.  
  166.     To spawn a group of bots on a particular team, use:
  167.  
  168.         sv bluebots <name1> <name2> ...            (up to 10 bots at once)
  169.         sv redbots  <name1> <name2> ...            (up to 10 bots at once)
  170.  
  171.     Otherwise, random bots can be spawned, by "bot_num <n>" (see Consol Variables below).
  172.  
  173.     Capture the Flags can be found at..
  174.  
  175.         ftp://ftp.idsoftware.com/idstuff/quake2/ctf/q2ctf102.exe
  176.  
  177.  
  178. TEAMPLAY
  179.  
  180.     Getting Started
  181.  
  182.         The Eraser bot now fully supports teamplay, with up to 64 pre-defined teams
  183.         (configurable via BOTS.CFG). To create a team with you and some bots, type:
  184.         "cmd join <teamname>". Currently, you can only join teams that have been defined
  185.         in BOTS.CFG (to get a list of available teams in the game, type "cmd teams").
  186.  
  187.         When joining a team that isn't currently in the game, a group of bots will
  188.         automatically spawn and join your team. The number of bots that join you,
  189.         is dependant on the current value of PLAYERS_PER_TEAM (see CONSOL VARIABLES 
  190.         section), and the number of bots specified for that team in BOTS.CFG.
  191.  
  192.         To add a team of bots to play against, type "addteam <teamname>". If you
  193.         are running a dedicated server you MUST do this in order for teamplay to
  194.         function, since in dedicated mode, clients cannot create teams using 
  195.         "cmd join <teamname>". They can only join teams that are already in the game.
  196.  
  197.         NOTE: if you want to play as a certain member of a team, that has a bot
  198.         defined for that team in BOTS.CFG (eg. when I play for IMPACT), you must
  199.         set your name to the bot's name + [abbrev], so for example, I play as
  200.         "Ridah[IDT]". This way the program knows not to spawn another Ridah bot.
  201.  
  202.     Rules
  203.  
  204.         Currently, the rules of Teamplay are very simple. Your team gets a frag
  205.         for every frag you score. It also loses a frag, everytime you suicide, 
  206.         fall in lava, or kill a teammate. This will be expanded in future releases
  207.         to support a wide range of Teamplay rules, similar to that of DMFLAGS.
  208.  
  209.     Scoreboard
  210.  
  211.         The Teamplay scoreboard is somewhat different to that normal deathmatch.
  212.         When you join a team, you will start seeing the special Teamplay scoreboard.
  213.         This sorts the teams in order, with each team having their sorted players
  214.         to the right. Your team is indicated with the Q2 tag behind the Teamname
  215.         and score.
  216.  
  217.     Teamplay Commands
  218.  
  219.         players_per_team <n>
  220.  
  221.             This secifies the maximum number of player that are allowed to join
  222.             each team.
  223.  
  224.             eg. players_per_team 8
  225.  
  226.         join <teamname> OR <abbrev>
  227.  
  228.             Places you on the specified team. If the Team does not yet exist in
  229.             the game, it will be created (ie. bot teammates will be spawned).
  230.  
  231.             eg. "cmd join impact", OR "cmd join idt"
  232.  
  233.         addteam <teamname> OR <abbrev>
  234.  
  235.             Adds the given team to the game. This team must be defined in
  236.             BOTS.CFG, or it will not be created.
  237.  
  238.             eg. "addteam impact", OR "addteam idt"
  239.  
  240.         group    (key "G" by default)
  241.  
  242.             This tells your fellow teammates that you are starting a new
  243.             squadron. Eventually, most teammeats will get to you, but they'll
  244.             try and pick up useful items along the way, so they may take
  245.             some time if far away. Once they've reached you, they'll follow you
  246.             around, attacking enemies and picking up items along the way.
  247.  
  248.         disperse
  249.  
  250.             Tells all squadron units under your control, to immediately disperse.
  251.  
  252.     Advanced Teamplay Tactics (Squadron Intelligence)
  253.  
  254.         As in the "cmd group" described above, you (and the computer) can
  255.         form Squadrons, to increase team performance. You can use this
  256.         feature to guard a highly valuable area of the map, or simply to
  257.         form a posse of destruction. The Eraser is capable of starting it's
  258.         own group, and knows how to lead a pack, so expect to encounter
  259.         entire bot teams roaming (and guarding) in packs. You'll also
  260.         hear your bot teammates start a squadron from time to time, it would
  261.         be wise to follow a bot every now and then, it's possible he knows
  262.         something that you don't.
  263.  
  264.  
  265. VIEWABLE WEAPONS                                *** new to version v0.8 ***
  266.  
  267.     Eraser also supports the viewable weapons patch! Just copy the pak2.pak 
  268.     file from your Viewable Weapons directory, to the Eraser directory, 
  269.     then set "view_weapons 1" in the consol while playing Eraser, and restart
  270.     the map.
  271.  
  272.     ** NOTE: Viewable Weapons are only supported by the MALE, FEMALE and CYBORG
  273.     models. To add support for other models, you will need to edit the
  274.     [view weapons] section of bots.cfg.
  275.  
  276.     The Viewable Weapons patch can be found at..
  277.  
  278.     ftp://ftp.telefragged.com/pub/tsunami/vwep_pak.zip
  279.  
  280.  
  281. CONSOL VARIABLES
  282.  
  283.    The Eraser now provide a range of customization commands and settings,
  284.    which enable you to populate your server with Bots, when not
  285.    many humans are playing. This means people are more likely
  286.    to come to your server, since there is more chance of finding
  287.    opponents (human or not).
  288.  
  289.    The following commands are available:
  290.  
  291.    bot_num <n>
  292.  
  293.       defines the maximum number of bots
  294.  
  295.    bot_name <name>
  296.  
  297.       spawns a specific bot
  298.  
  299.    bot_auto_skill 0/1                    (default = 0)
  300.  
  301.       disable/enable automatic skill adjustment. When enabled, bot's skill
  302.       levels will be increased when they are killed (by a human player),
  303.       and decreased when they kill another human player.
  304.  
  305.    bot_chat 0/1
  306.  
  307.       disable/enable bot chatting.
  308.  
  309.    cmd lag <n>        (CLIENT ONLY)
  310.  
  311.       adds some latency to your controls. <n> should be a number between
  312.       0 and 1000. This in effect, adds to your ping time.
  313.  
  314.       eg. "cmd lag 500" gives 500ms latency
  315.  
  316.    view_weapons 0/1                                        *** new to v0.8 ***
  317.  
  318.       disable/enable view weapons patch. Just copy the pak2.pak from
  319.       your view weapons patch directory, to the Eraser directory, then
  320.       enable view_weapons. This enables you to see which weapons the
  321.       other bots/players are using.
  322.  
  323.    bot_drop <name>
  324.  
  325.       disconnects a the given bot from the game. If you have set bot_num,
  326.       then you can expect the program to automatically add a new bot in the
  327.       game. So make sure you set "bot_num 0" before using this command, if
  328.       you don't want another random bot to join the game.
  329.  
  330.    teamplay 0/1
  331.  
  332.       disables/enables teamplay (see TEAMPLAY section above)
  333.  
  334.    bot_allow_client_commands 0/1        (default = 0)
  335.  
  336.       disable/enable client-side bot spawning via "cmd bots <n>"
  337.  
  338.    bot_free_clients <n>                    (default = 0)
  339.  
  340.       specifies the number of client positions to keep vacant
  341.       at all times, whilst there are bots playing. So if
  342.       you have set "maxclients 32", and there are 20 bots
  343.       playing, set this value to 3, so that if the total
  344.       number of clients (players + bots) exceeds 29, a bot will
  345.       be kicked from the game.
  346.  
  347.       The lowest scoring bot is kicked first, in this circumstance.
  348.  
  349.       As soon as more than 3 slots become vacant, a new bot will
  350.       be automatically brought into the game, assuming the current
  351.       number of bots is less than the current value of bot_num.
  352.  
  353.    bot_show_connect_info 0/1
  354.  
  355.       Disables/Enables the banner that's shown to clients upon
  356.       connecting, indicating that the server is running the
  357.       Eraser bot patch.
  358.  
  359.    bot_calc_nodes 0/1
  360.  
  361.       Disables/Enables dynamic node calculation. If you are
  362.       sure that this map has been played enough times, that
  363.       it is unnecessary for the bot to continue learning the
  364.       environment from the humans, just set this to 0. This
  365.       frees up some CPU time, which should make things run
  366.       a bit smoother if lots of humans are playing.
  367.  
  368.  
  369.     AUTOMATIC SETTINGS
  370.  
  371.         It is now possible to save your favourite bot commands/setting in
  372.         DEFAULTS.CFG, so each time you start the Eraser, these settings
  373.         are loaded in.
  374.  
  375.         Be careful when editing this file, if you stuff it up, Eraser will not
  376.         perform correctly. So make sure you study the above section carefully
  377.         before messing with it.
  378.  
  379.  
  380. NEW TO THIS VERSION!
  381.  
  382.    See the todo list, at http://impact.frag.com for the
  383.    latest list of bug fixes, and features added.
  384.  
  385.    New features/Bug fixes added to version 0.7:
  386.  
  387.         + Advanced Teamplay Tactics implemented (Squadrons, Request Help)
  388.         + Bot chat facility (chat.txt)
  389.  
  390.         + ADDTEAM and CMD JOIN now support abbreviations (eg. "addteam idt", instead of "addteam impact")
  391.         + Improved map changing, so you can now start a progression from any of
  392.             the maps in the list, and it will continue from there
  393.         + Improved Lava avoidance
  394.         + Bots can now swim(!)
  395.         + dm_weapons_stay mode, bot's don't realize they picked up an item, since it stays SOLID_TRIGGER
  396.         + If lots of bots, and time/fraglimit expires, when new map starts, infinite gibs occur. Need
  397.             to space out bot reconnections.
  398.         + Multiple jumping sounds when jumping
  399.         + Troubles going up stairs in base1 towards machine gun
  400.         + Discovered some major movement bugs which causes them to walk back and forth in
  401.             the same area. This only occurs on certain maps (base1 for example).
  402.  
  403.         + Fixed some NAV stuff
  404.         + Added pain frames
  405.  
  406.         + Rewrote core movement decisions, speed and intelligence advantages
  407.  
  408.         + Reading teams doesn't work if bots.cfg doesn't have a CR at the end of file
  409.             (thinks the last player in the last team in a new team)
  410.         + something_1.bsp doesn't work in maps.txt
  411.         + Add more thorough checking to "platform not ready" detection 
  412.             (link plaform start node with the platform when loading/creating by using gi.trace())
  413.  
  414.         + Reduced route_path/dist to 16bit, instead of 32bit (saves 1meg of RAM)
  415.         + Railgun less accurate even at highest skill
  416.         + Save .rt3 zip files as <mapname>_rt.zip, to prevent confusion
  417.  
  418.    New features/Bug fixes added to version 0.6:
  419.  
  420.         = Disabling node-creation crashes game
  421.         = Bot sometimes stops and does nothing until shot
  422.         = FPS slowdowns on some systems with 2(!) bots
  423.  
  424.         + New Teamplay scoreboard
  425.         + Fixed more crouching problems
  426.         + Changing level, teams get fucked up
  427.         + Bots roam in groups in teamplay
  428.  
  429.         + Death in mid-air, body floats in air (also death on platform)
  430.         + BFG firing sound synchronization
  431.         + Fatal errors when using saved .rt3 files?
  432.         = When 2 bots block each other, they get stuck
  433.  
  434.         + Set Client skin to TEAM's default when joining a team
  435.         + Client's team not getting set correctly? Bots will attack client's on their team
  436.         + Fixed SKILL level, it was broken in v0.51
  437.         + Favourite weapon of Blaster crashes game
  438.  
  439.         + Not saving nodes when changing maps
  440.         + Started work on Teamplay
  441.         + Added hard-coded bot 'Eraser' (will ignore any bots called 'Eraser' in bots.cfg)
  442.         + Fixed some more AI problems
  443.  
  444.         + Crouching is broken
  445.         + Disbable node-generation when first "Reached Trail limit" is given.
  446.         + Add a dprintf() to my_bprintf() so server can see deaths
  447.         + Changing name during map doesn't reflect in death messages
  448.         + Bots will abort a taunt if new enemy is found
  449.  
  450.         + Fixed a MAJOR portal bug, which somehow crept into the 0.5+ releases. This
  451.             should speed things up CONSIDERABLY, especially on large maps.
  452.  
  453.    New features/Bug fixes added to version 0.51:
  454.  
  455.         + ERASDEFS.CFG is automatically exec'd when starting the FIRST level. When
  456.             switching maps using timelimit/fraglimit, the file is NOT exec'd.
  457.  
  458.    New features/Bug fixes added to version 0.5:
  459.  
  460.         + Spent most of today debugging all sorts of things, and tweaking combat AI
  461.         + Fix "notarget 1", and remove botdebug from preventing bot's finding enemies
  462.  
  463.         + Bot frags don't reset on new level
  464.         + Incorporated MapMod code to enable map sequencing configuration (see readme.txt for instructions)
  465.         + Wrote some new danger avoidance code, for rockets & grenades
  466.         + worked on the player sighting code, trying to balance between intelligence and speed
  467.         + further tweaking of combat AI, when to abort chasing enemy, etc
  468.         + Don't chase a human with the RL & > 25 health
  469.  
  470.         + Optimizations
  471.         + Fixed some changelevel problems
  472.         + add "bot_auto_skill" setting, so that bot's skills are lowered/raised with each kill/death
  473.  
  474.         + Re-wrote movement physics, making use of the player movement functions. Solved a
  475.             lot of irregularities, such as walking pu steep slopes, getting stuck in walls, etc.
  476.             Hopefully the CPU hit won't be excessive.
  477.  
  478.         NOTE: .rt3 file format now being used, since some .rt2 files have become useless,
  479.             and are causing some of the AI problems
  480.  
  481.         + Reduce MAX_NODES back to 512, seems to use up too much memory at 1024
  482.            !!! make sure ReadTrail() doesn't exceed new MAX_NODES setting !!!
  483.         + "SZ_GetSpace overflow without allowoverflow set" still occurs (falling into lava?)
  484.         = MAJOR fps slowdowns on some systems
  485.         + CanPickupAmmo() not entirely accurate (was working, but result was ignored in RoamFindBestItem() )
  486.         = Use "game_dir = gi.cvar ("game", "", 0);" instead of hard-coded "Eraser" directory
  487.         + General AI debugging, bots appear to stop for no reason, then restart
  488.         + Footstep/Jumping sounds
  489.         + Add average ping to BOTS.CFG (just for looks)
  490.         + Bot's don't pickup AMMO intelligently
  491.  
  492.    New features/Bug fixes added to version 0.4:
  493.  
  494.        +  Added a SERVER ADMIN section, see below. This version has
  495.           been worked on heavily, to enable servers to run the
  496.           Eraser bot patch, to automatically spawn more bots
  497.           to make the game more enjoyable.
  498.  
  499.        + Increase reaction time for bots after sighting a player (say, 0.8 seconds)
  500.        + Limited FOV for sighting players
  501.        + Need some way of saving which platforms/teleporters have been routed
  502.  
  503.        !! Linux port functioning !! .. was an optimization flag causing wierd behaviour
  504.  
  505.        + Fixed bug that prevented intelligent abort attack from functioning
  506.  
  507.        + created "bot_calc_nodes" to enable/disable dynamic node-table calculation
  508.        + Bots should avoid danger, like grenades, BFG and rockets
  509.  
  510.        + further optimized .rt2 filesize by rounding off the route distances and scaling
  511.           down to one byte
  512.        + considered deleting all source code, but was convinced by a grass-hopper
  513.           that someday my hard work will not result in getting stabbed in the back
  514.  
  515.        + re-worked all consol commands, added lots of server settings:
  516.           bot_num - maximum number of bots in game at once
  517.           bot_name - spawn a specific bot
  518.           bot_allow_client_commands - enable/disable client bot commands
  519.           bot_free_clients - make sure <n> client spots are open at all times
  520.           bot_show_connect_info - enable/disable the Eraser specific banner shown upon connecting to the server
  521.  
  522.          So it's now possible to run a server, that constantly spawns and drops Eraser bot's,
  523.          to keep the game interesting :)
  524.  
  525.        + Fixed more AI stuff
  526.  
  527.        + implemented "fuzzy" portals to speed up "nearest node" determination
  528.        + increased MAX_NODES from 512 to 1400 as a result of new portal tech
  529.  
  530.        + time/fraglimit crashes game
  531.        + Update weapon attributes to match latest Q2 codebase
  532.        + Aiming still too good in skill 1
  533.        + Chaingun build up like real players
  534.        + "cmd botname <name>" then "cmd bots 2", second command only spawns one bot, and first bot loses all forms of intelligence
  535.  
  536.        + Added dynamic route-table generation (deathmatch 99) (!!!)
  537.        = Showstopper: SZ_Getspace overflow without allowoverflow set.
  538.        + Skins/Bot names with spaces in them don't work
  539.        = Bots disappear after some time
  540.  
  541.    New features/Bug fixes added to version 0.3:
  542.  
  543.        + Some bots become transparent after death
  544.        + Loads of AI fixes
  545.        + Weapon selection based on circumstances (used to use each weapon until out of ammo)
  546.        + Bots lose intelligence over time
  547.        = Bot's get stuck in sloped (downwards) walls when jumping
  548.        + Added support for custom skins, and client play via network, without installing the Eraser on clients
  549.        + Restored the original Q2 scoreboard
  550.        + Fixed timelimit
  551.        + "cmd botname <name>" no longer case-sensitive
  552.        + Fixed various AI stuff
  553.  
  554.    New features/Bug fixes added to version 0.2:
  555.  
  556.        + NODES: Add support for ladders
  557.        + NODES: Add support for teleporters
  558.        = NODES: Add support for lifts/plats
  559.        + Fix some jumping problems in MINTRO
  560.        + Bots now avoid falling in lava/slime more intelligently
  561.        + Increase accuracy of CanMove()
  562.        = Bots occasionally get stuck at top of ladder in MINTRO
  563.        = Bots fire grenades too high when enemy is up-close
  564.        + Bots should go for any weapon when visible, if not attacking enemy
  565.        + Remove unlimited ammo, do weapon change checking when out of ammo
  566.        + NODES: When jumping, check best route is less than jump_distance * 2, rather than a hard coded value
  567.        + Support for skill levels
  568.        + External file support for Bot names, skins and skill levels (skills are adjusted according to the consol "skill" setting)
  569.        + Distributive thinking, so bots out of the client's view are processed between server frames
  570.        + Lots of optimizations
  571.        + Bots with a high "Combat" rating can crouch while attacking
  572.  
  573.  
  574. FREQUENTLY ASKED QUESTIONS
  575.  
  576.    Q: What sort of actions do I need to teach them most efectively ?
  577.  
  578.         Just make sure you run around, and collect things. If you
  579.         camp the whole game, they won't learn much at all. You only
  580.         have to do this once, then the data is saved, so the next
  581.         time you play the map, you won't have to worry about the learning
  582.         at all, since it will be switched off.
  583.  
  584.    Q: Will the learning be establised from both human players or just 
  585.       the serverside player ?
  586.  
  587.         All human players in the game create node data, when dynamic table
  588.         generation is enabled.
  589.  
  590.    Q: When the game starts, it says "ERROR: Game is version X, not Y"?
  591.  
  592.         Eraser is only compatible with Quake2 v3.12 - v3.14, other
  593.         versions of Quake2 may not work. To get the latest version of
  594.         Quake2, go to "http://redwood.stomped.com/".
  595.  
  596.    Q: The game starts, but I don't see any bots?
  597.  
  598.       To spawn some bots, type "bot_num <n>", where <n> is
  599.       a number from 1 to 24. They will then enter game at 1 second
  600.       intervals (to try and reduce telefrags).
  601.  
  602.       eg. bot_num 4
  603.  
  604.       You can also spawn a specific bot using "bot_name <name>",
  605.       where <name> is the bot's name. You can get the list of bots
  606.       from bots.cfg, which you'll find in your Eraser directory.
  607.  
  608.       eg. bot_name cipher
  609.  
  610.  
  611.    Q: I start the game, but when I type "bot_num X" it just repeats the command,
  612.       like I had said it instead, what's up?
  613.  
  614.         Check your Quake2 directory. If there is a gamex86.dll file in there, 
  615.         delete it. This solves 99% of such problems. If this is not case for
  616.         you, then you have probably got the command line, or installation
  617.         wrong.
  618.  
  619.  
  620.    Q: I'm trying to setup an Eraser CTF server, but everytime a client connects
  621.       they can't join the game?
  622.  
  623.         That's because the client doesn't have the CTF files installed in
  624.         Quake2\Eraser, since that's the directory the server is running. So
  625.         you need to do one of the following:
  626.  
  627.         1) rename your CTF dir to CF_backup, then rename the Eraser dir to 
  628.            CTF. Then start the game with quake2 +set game ctf ...
  629.  
  630.         2) Tell the clients to make an Eraser dir under Quake2, and copy
  631.            the pak0.pak file from their CTF dir to the Eraser dir.
  632.  
  633.  
  634.    Q: The bots sometimes stand around looking bored?
  635.  
  636.       There are still some glitches in the bot decision-making that can result
  637.       in bots getting stuck. Usually a rocket up their ass helps get them down :)
  638.  
  639.  
  640. MAKING CLEAN ROUTES
  641.  
  642.    Here are a few tips to keep in mind when creating routes for new maps:
  643.  
  644.     Walk up stairs first, where possible. Otherwise a series of jump/landing
  645.     nodes will be dropped as you go down, which uses up excess nodes, and
  646.     is less accurate than walking nodes.
  647.  
  648.     If you jump off a ledge, try and make a path back to the jumping position 
  649.     as soon as possible. This will prevent all other nodes from having to
  650.     recalculate best routes later on, after the return path is made.
  651.  
  652.     The same applies for teleporters and platforms, try and get back to 
  653.     the starting position ASAP.
  654.  
  655.     Turn on bot_debug_nodes, then enable the scoreboard. If you see "optimizing
  656.     route xxx -> yyy" showing a whole range of numbers, then it's best to stop
  657.     here for a bit to let it catch up. You will see this come up fairly often
  658.     while building a new map, so not to say you should always stop when it's
  659.     optimizing, just that if you complete a link back to a jumping locaiton
  660.     (for example) it will need to recalculate a whole bunch of new routes.
  661.     Stopping after the link is made for a minute or so, will prevent new routes
  662.     from having to be calculated over and over, as surrounding nodes find better
  663.     routes.
  664.  
  665.     Also, try to walk a nice line, rather than dodging around picking up items
  666.     all over the place. The straighter the line you walk, the more realistic the
  667.     bot's will move. Keep in mind that the bots will automatically pick up items
  668.     along the way, if they are available, so you don't have to leave a trail that
  669.     picks up items, just make sure you walk within the vacinity of all items.
  670.  
  671.     When loading a map, dynamic node placement will be disabled, IF AND ONLY IF,
  672.     all items in the level have a node nearby, OR the total number of nodes
  673.     exceeds 512 (the absolute limit is 750 I believe).
  674.  
  675.     Only jump when necessary.
  676.  
  677.     Type "cmd showpath" to enable the green line debugger. Just hit fire to
  678.     set it's position to where you're standing, then move around and watch
  679.     the path change. If it disapear's, i means the path is severed, and needs
  680.     to be traversed to fix it up.
  681.  
  682.     Try not to die.
  683.  
  684.  
  685. DISCLAIMER
  686.  
  687.    This is a BETA release, I therefore will not take responsibility
  688.    for your system barfing after playing the game. I can however
  689.    guarantee that I have not purposely added any malicious content
  690.    to this application. If you believe this to be incorrect, then
  691.    I'd be happy to discuss the matter with you.
  692.  
  693.    You may freely distribute this archive, as long as it remains
  694.    PERFECTLY intact, as distributed on our home page:
  695.    "http://impact.frag.com/". Thanks.
  696.  
  697.  
  698. Please report show-stopper bugs to: ridah@frag.com
  699.  
  700. enjoy,
  701. -Ryan Feltrin
  702.