home *** CD-ROM | disk | FTP | other *** search
/ GameStar 1998 October / Gamestar_00_1998-10_cd2.bin / _q2 / Bots / Eraser101_Full.txt < prev    next >
Text File  |  1998-09-08  |  28KB  |  733 lines

  1. ================================================================
  2.  The Eraser Bot                                   v1.01 (Final)
  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.  
  11. Description             : Human-like AI for Simulated Quake2
  12.                            Deathmatch play and Capture the
  13.                            Flag
  14.  
  15. Additional Credits to   : id Software for being id Software
  16.                           Josh Holdaway, creator of Quick Start,
  17.                             and the Final Eraser installer
  18.                           The Info-Zip team for the zip/unzip tools
  19.                             (http://www.cdrom.com/pub/infozip/)
  20.                           Jeremy Mappus (aka DarkTheties) for
  21.                             the MapMod source
  22.                           Grimlock for the colored skins
  23.                           Rowan "Sumaleth" Crawford, for the consol
  24.                             background art
  25.                           Brett "B-MonEy" McMahon, for support
  26.                             and ideas
  27.                           Nigel "rkm" Bovey for the linux port
  28.                           IMP for the Eraser logo
  29.                           Pete Elespuru for the consol mod
  30.                           The SABIN Team for some Client Emulation code
  31.                             (http://www.planetquake.com/botshop/sabin)
  32.                           Steve Yeager (author of the ACE bot) for tips
  33.                             on creating a static library for the nav
  34.                             code (stevey@jps.net)
  35.                           Paul Jordan for the Camera mode
  36.                             (http://www.prismnet.com/~jordan/q2cam)
  37.                           NIQ changes by Mike Fox (a.k.a. Artful Dodger)
  38.                           SubHuman (http://www.planetquake.com/outpost/)
  39.                             for extensive testing and feedback
  40.                           Fred (fred@planetquake.com) for many of the
  41.                             routes
  42.                           L-Fire for the built-in View Weapon tips
  43.                             (LFire@yyz.com)
  44.                           
  45.                           Anyone else who has contributed in
  46.                           any way to the development of Eraser.
  47.  
  48. Build Time              : many hours that should have been
  49.                           spent sleeping
  50. ================================================================
  51.  
  52. DESCRIPTION
  53.  
  54.    The Eraser Bot is a simulated multiplayer opponent, for
  55.    use with id Software's Quake2. It has been developed with
  56.    speed and accuracy in mind, so that you can play with more
  57.    bots, with higher intelligence.
  58.  
  59.  
  60. INSTALLATION
  61.  
  62.    WIN95/NT INSTALLER
  63.  
  64.    Double click on the EXE file, then specify your Quake2
  65.    folder and press Unzip.
  66.  
  67.    -OR-
  68.  
  69.    ZIPPED VERSION (Win95/NT & Linux users)
  70.  
  71.    Just unzip the files contained in the archive, to your
  72.    Quake2 folder, RESTORING PATHNAMES. This means
  73.    that if you're using Winzip, you must enable the
  74.    "Use Folder Names" option when extracting. For
  75.    pkunzip users (bless their souls), make sure
  76.    you use the -d option.
  77.  
  78.  
  79. RUNNING THE GAME
  80.  
  81.    To run the game, type the following from the DOS Shell
  82.    command line, whilst inside your Quake2 folder:
  83.  
  84.    quake2 +set game eraser +map <mapname>
  85.    (please read below to find out which maps are supported)
  86.  
  87.    The from within the game, type "bot_num X" to spawn X 
  88.    number of bots.
  89.  
  90.    If you do not see any bots in the game, then I
  91.    advise you to read the Frequently Asked Questions
  92.    near the end of this file.
  93.  
  94.  
  95. TROUBLESHOOTING
  96.  
  97.    If you've followed all the instruction to the best of you're ability
  98.    and yet fate still prevents you from getting Eraser to work, then
  99.    point your browse to http://www.telefragged.com/epidemic/guides/ebgide.html
  100.    This document contains more than could be said in an email, and is
  101.    pretty a failsafe set of instructions.
  102.  
  103.  
  104. SUPPORTED MAPS
  105.  
  106.    The Eraser is capable of dynamically learning maps, from
  107.    humans whilst playing the game. However, maps that aren't
  108.    supported by the release (and hence will require dynamic
  109.    learning), will suffer from less intelligent behaviour,
  110.    until the map has been played for a while (usually 10-15 mins).
  111.  
  112.    It is now possible to play the Eraser bot on any map, it will learn
  113.    the map as you play, so just make sure you move around if playing
  114.    a new, or previously unplayed map. You should find the intelligence
  115.    pick up after about 5 minutes of play.
  116.  
  117.    The following user-made maps are highly recommended, since they are
  118.    best suited for Deathmatch play:
  119.  
  120.    <mapname>         <url>
  121.  
  122.    ikdm1             ftp://ftp.cdrom.com/pub/idgames2/quake2/levels/deathmatch/g-i/ikdm1.zip
  123.    severed1          http://planetquake.com/cdrom/ramshackle/SEVERED1.ZIP
  124.    mpq1              ftp://ftp.cdrom.com/pub/idgames2/quake2/levels/deathmatch/m-o/mpq1.zip
  125.  
  126.    Many thanks to their respective authors.
  127.  
  128.    Follow the installation instructions for each map, they can be installed
  129.    as usual, to your quake2\baseq2\maps directory, and will work fine with
  130.    the Eraser.
  131.  
  132.  
  133. MAP CYCLE
  134.  
  135.    When running a dedicated server, or using the TIMELIMIT or FRAGLIMIT
  136.    commands, you may want to specify your own cycle of maps. This is now
  137.    possible due to the inclusion of the MapMod code into The Eraser. 
  138.  
  139.    All you need to do, is edit the file called "maps.txt" in the Eraser directory,
  140.    and within that file, list the series of maps you want to run. When the end
  141.    of the list is reached, the map list will cycle back to the first map.
  142.    
  143.    Thanks to Jeremy Mappus (a.k.a DarkTheties) for the MapMod code.
  144.  
  145.  
  146. GAMEPLAY SETTINGS
  147.  
  148.    Skill Levels
  149.  
  150.        You can increase or decrease the level of the opponents, using
  151.        the "skill" setting. The default being "1", if you set this
  152.        to "2", then the general skill levels of all bots will be raised.
  153.        They will still maintain their individuality, just some will
  154.        be slightly better in areas they may not have been on skill "1".
  155.  
  156.        Note that unless you disable "bot_auto_skill" (see below), Bot's 
  157.        will vary their skill as they play, to make the game more even.
  158.        The skill setting will be used as the starting skill level for
  159.        bot's, when auto skill adjustment is enabled.
  160.  
  161.        Values: 0 (beginner) through 3 (advanced)
  162.  
  163.    Bot Names/Personalities
  164.  
  165.        You can edit the names and attributes of the bots, by editing 
  166.        BOTS.CFG, located in the Eraser directory.
  167.  
  168.    Deathmatch Variations
  169.  
  170.        Using the "dmflags" setting (accessed via the Multiplayer Menu),
  171.        you can enable a disable certain rules. Currently, all settings,
  172.        other than "Teamplay" and "Infinite Ammo" are supported.
  173.  
  174.        "Weapons Stay" means that weapons will remain after being picked
  175.        up, unless they were dropped by another player. This is a
  176.        personal favourite of mine, and I think makes the game much
  177.        more exciting, if less strategic.
  178.  
  179.        Please see your Quake2 manual for descriptions of the other
  180.        settings.
  181.  
  182.        Values: Use the Multiplayer->Start Network Server->Deeathmatch Flags
  183.                 to set the flags you want to play with
  184.  
  185.  
  186. CAPTURE THE FLAG                                *** new to version v0.8 ***
  187.  
  188.     Eraser now supports CTF! Just copy the pak0.pak file from your CTF
  189.     directory to the Eraser folder, then load up one of the CTF maps 
  190.     (q2ctf1 - q2ctf6). Eraser will detect a CTF map, and will enable the 
  191.     CTF code.
  192.  
  193.     To summon team members to "Raid the Enemy base", just enter:
  194.  
  195.         rushbase
  196.  
  197.     To summon team members to "Defend our base", just enter:
  198.  
  199.         defendbase
  200.  
  201.     at the consol, or bind a key:
  202.  
  203.         bind r "rushbase"
  204.         bind d "defendbase"
  205.         bind f "freestyle"        (return to normal)
  206.  
  207.     then just press it during play to send all available troops into the
  208.     enemy base.
  209.  
  210.  
  211.     To spawn a group of particular bots on a particular team, use:
  212.  
  213.         sv bluebots <name1> <name2> ...            (up to 10 bots at once)
  214.         sv redbots  <name1> <name2> ...            (up to 10 bots at once)
  215.  
  216.     Otherwise, random bots can be spawned, by "ctf_auto_teams <n>" (see Consol Variables below).
  217.  
  218.     
  219.     To enable advanced use of the grapple hook (which can be quite annoying):
  220.  
  221.         bot_tarzan 1
  222.  
  223.     --- CTF specific commands ---
  224.  
  225.     ctf_auto_teams <n>
  226.  
  227.       This sets the ideal number of players on each team during
  228.       CTF play. The program will try it's best to maintain
  229.       that number of players by spawning and dropping lowest
  230.       scoring bots as players leave and enter the game. If it
  231.       cannot do this (there are no bots to drop on a team with
  232.       too many players) it will spawn additional bots to keep
  233.       the teams even.
  234.  
  235.     ctf_special_teams [0..n]
  236.  
  237.        When ctf_special_teams is set to 1 then each human will have 1 bot to 
  238.        play against. 
  239.  
  240.        It is multiplier, you can increase the value to any number as long as 
  241.        it does not exceed the number of maxclients. As each human departs the
  242.        corresponding lowest scoring bots get dropped.
  243.  
  244.        When all human depart all bots are removed thus saving CPU cycles for
  245.        another quake server.
  246.  
  247.     ctf_humanonly_teams 0/1
  248.  
  249.         If this is set then only humans will allowed in a team and bots in the
  250.         other. 
  251.  
  252.         Once the game has started all humans joining the bot team will be forced
  253.         into the team with humans.
  254.  
  255.         Any bots will then be added to the other only.
  256.         Note: ctf_special_teams must be set for this to work.
  257.  
  258.  
  259.     
  260.     ** new to v0.99 **
  261.  
  262.     It is now possible to turn normal maps into CTF maps. To do this, you must drop the flags
  263.     using "redflag" and "blueflag" when standing in the desired position of the relative flags.
  264.     They won't appear straight away, but will be saved in with the route data. To play that map
  265.     in CTF mode, simply type "ctf 1" in the consol, and then restart the map.
  266.  
  267.     NOTE: If you drop a CTF flag in the wrong place or by accident, use "clearflags" to remove them.
  268.  
  269.     NOTE: You can use "toggle_flagpaths" to enable/disable the showing of the direct links between
  270.             flagpaths (not the actual routes, since showing all routes will break the network code).
  271.  
  272.     You can also place any other item, using the "ctf_item <classname>" command. These items
  273.     will only be spawned in CTF mode. Just move to the desired position, and type the
  274.     preceeding command, specifying tha actual classname for the item you want.
  275.  
  276.     For example, "ctf_item weapon_chaingun" will place a chaingun at your current position,
  277.     whenever you load the current map with "CTF 1" set.
  278.  
  279.     This is handy for evening out bases, in non-CTF maps (although it will work for normal CTF
  280.     maps also).
  281.  
  282.     NOTE: You can clear all ctf_item entries by typing "clear_items" at the consol.
  283.  
  284.     Capture the Flag can be found at..
  285.  
  286.         ftp://ftp.idsoftware.com/idstuff/quake2/ctf/q2ctf102.exe
  287.  
  288.  
  289. TEAMPLAY
  290.  
  291.     Getting Started
  292.  
  293.         The Eraser bot now fully supports teamplay, with up to 64 pre-defined teams
  294.         (configurable via BOTS.CFG). To create a team with you and some bots, type:
  295.         "cmd join <teamname>". Currently, you can only join teams that have been defined
  296.         in BOTS.CFG (to get a list of available teams in the game, type "cmd teams").
  297.  
  298.         When joining a team that isn't currently in the game, a group of bots will
  299.         automatically spawn and join your team. The number of bots that join you,
  300.         is dependant on the current value of PLAYERS_PER_TEAM (see CONSOL VARIABLES 
  301.         section), and the number of bots specified for that team in BOTS.CFG.
  302.  
  303.         To add a team of bots to play against, type "addteam <teamname>". If you
  304.         are running a dedicated server you MUST do this in order for teamplay to
  305.         function, since in dedicated mode, clients cannot create teams using 
  306.         "cmd join <teamname>". They can only join teams that are already in the game.
  307.  
  308.         NOTE: if you want to play as a certain member of a team, that has a bot
  309.         defined for that team in BOTS.CFG (eg. when I play for IMPACT), you must
  310.         set your name to the bot's name + [abbrev], so for example, I play as
  311.         "Ridah[IDT]". This way the program knows not to spawn another Ridah bot.
  312.  
  313.     Rules
  314.  
  315.         Currently, the rules of Teamplay are very simple. Your team gets a frag
  316.         for every frag you score. It also loses a frag, everytime you suicide, 
  317.         fall in lava, or kill a teammate. This will be expanded in future releases
  318.         to support a wide range of Teamplay rules, similar to that of DMFLAGS.
  319.  
  320.     Scoreboard
  321.  
  322.         The Teamplay scoreboard is somewhat different to that normal deathmatch.
  323.         When you join a team, you will start seeing the special Teamplay scoreboard.
  324.         This sorts the teams in order, with each team having their sorted players
  325.         to the right. Your team is indicated with the Q2 tag behind the Teamname
  326.         and score.
  327.  
  328.     Teamplay Commands
  329.  
  330.         players_per_team <n>
  331.  
  332.             This secifies the maximum number of player that are allowed to join
  333.             each team.
  334.  
  335.             eg. players_per_team 8
  336.  
  337.         join <teamname> OR <abbrev>
  338.  
  339.             Places you on the specified team. If the Team does not yet exist in
  340.             the game, it will be created (ie. bot teammates will be spawned).
  341.  
  342.             eg. "cmd join impact", OR "cmd join idt"
  343.  
  344.         addteam <teamname> OR <abbrev>
  345.  
  346.             Adds the given team to the game. This team must be defined in
  347.             BOTS.CFG, or it will not be created.
  348.  
  349.             eg. "addteam impact", OR "addteam idt"
  350.  
  351.         group    (key "G" by default)
  352.  
  353.             This tells your fellow teammates that you are starting a new
  354.             squadron. Eventually, most teammeats will get to you, but they'll
  355.             try and pick up useful items along the way, so they may take
  356.             some time if far away. Once they've reached you, they'll follow you
  357.             around, attacking enemies and picking up items along the way.
  358.  
  359.         disperse
  360.  
  361.             Tells all squadron units under your control, to immediately disperse.
  362.  
  363.     Advanced Teamplay Tactics (Squadron Intelligence)
  364.  
  365.         As in the "cmd group" described above, you (and the computer) can
  366.         form Squadrons, to increase team performance. You can use this
  367.         feature to guard a highly valuable area of the map, or simply to
  368.         form a posse of destruction. The Eraser is capable of starting it's
  369.         own group, and knows how to lead a pack, so expect to encounter
  370.         entire bot teams roaming (and guarding) in packs. You'll also
  371.         hear your bot teammates start a squadron from time to time, it would
  372.         be wise to follow a bot every now and then, it's possible he knows
  373.         something that you don't.
  374.  
  375.  
  376. VIEWABLE WEAPONS                                *** new to version v0.8 ***
  377.  
  378.     Eraser also supports the viewable weapons patch! Just copy the pak2.pak 
  379.     file from your Viewable Weapons directory, to the Eraser directory, 
  380.     then set "view_weapons 1" in the consol while playing Eraser, and restart
  381.     the map.
  382.  
  383.     ** NOTE: Viewable Weapons are only supported by the MALE, FEMALE and CYBORG
  384.     models. To add support for other models, you will need to edit the
  385.     [view weapons] section of bots.cfg.
  386.  
  387.     The Viewable Weapons patch can be found at..
  388.  
  389.     ftp://ftp.telefragged.com/pub/tsunami/vwep_pak.zip
  390.  
  391.  
  392. CAMERA MODE                                        *** new to version 0.96 ***
  393.  
  394.     Thanks to Paul Jordan, Eraser now contains a snazzy camera mode, which
  395.     lets you watch the action from a TV-like perspective. To enable
  396.     the camera, type "cam on" in the consol.
  397.  
  398.     There are two modes to the camera:
  399.  
  400.     NORMAL: automatically moves around the level to where the action is,
  401.     good for a demo mode.
  402.  
  403.     FOLLOW: gives you control over who the camera focuses on. Use the ATTACK
  404.     button to cycle through players.
  405.  
  406.     To change the current mode, type "cam <mode>" in the consol, so for FOLLOW
  407.     mode, just type "cam follow" (must use lowercase).
  408.  
  409.  
  410.     ** NOTE ** 
  411.     
  412.     Unfortunately, at this stage it is not possible to de-activate the camera,
  413.     hopefully this will be rectified in a future version.
  414.  
  415.  
  416. CONSOL VARIABLES
  417.  
  418.    The Eraser provides a range of customization commands and settings,
  419.    which enable you to populate your server with Bots, when not
  420.    many humans are playing. This means people are more likely
  421.    to come to your server, since there is more chance of finding
  422.    opponents (human or not).
  423.  
  424.    The following commands are available:
  425.  
  426.    bot_num <n>
  427.  
  428.       defines the maximum number of bots
  429.  
  430.    bot_name <name>
  431.  
  432.       spawns a specific bot
  433.  
  434.    bot_auto_skill 0/1                    (default = 0)
  435.  
  436.       disable/enable automatic skill adjustment. When enabled, bot's skill
  437.       levels will be increased when they are killed (by a human player),
  438.       and decreased when they kill another human player.
  439.  
  440.    bot_chat 0/1
  441.  
  442.       disable/enable bot chatting.
  443.  
  444.    lag <n>            (CLIENT ONLY)
  445.  
  446.       adds some latency to your controls. <n> should be a number between
  447.       0 and 1000. This in effect, adds to your ping time.
  448.  
  449.       eg. "cmd lag 500" gives 500ms latency
  450.  
  451.    view_weapons 0/1                                        *** new to v0.8 ***
  452.  
  453.       disable/enable view weapons patch. Just copy the pak2.pak from
  454.       your view weapons patch directory, to the Eraser directory, then
  455.       enable view_weapons. This enables you to see which weapons the
  456.       other bots/players are using.
  457.  
  458.    bot_drop <name>
  459.  
  460.       disconnects a the given bot from the game. If you have set bot_num,
  461.       then you can expect the program to automatically add a new bot in the
  462.       game. So make sure you set "bot_num 0" before using this command, if
  463.       you don't want another random bot to join the game.
  464.  
  465.    teamplay 0/1
  466.  
  467.       disables/enables teamplay (see TEAMPLAY section above)
  468.  
  469.    sv teams <team1> <team2> ...
  470.  
  471.       spawns one or more teams at once, by name.
  472.  
  473.    sv bots <bot1> <bot2> ...
  474.  
  475.       spawns one or more bots at once, by name.
  476.  
  477.    bot_tarzan 0/1                        (default = 0)
  478.  
  479.       disable/enable so called "advanced" use of the grapple hook.
  480.  
  481.    mapmod_random 0/1                    (default = 0)
  482.  
  483.       disable/enable random map progression when using maps.txt. When
  484.       enabled, instead of sequentially traversing the maps, a random
  485.       map will be selected from the list on each level change.
  486.  
  487.    botpause
  488.  
  489.       pauses the game. this is included, since the normal pause button
  490.       doesn't work during deathmatch play.
  491.  
  492.    bot_allow_client_commands 0/1        (default = 0)
  493.  
  494.       disable/enable client-side bot spawning via "cmd bots <n>"
  495.  
  496.    bot_free_clients <n>                    (default = 0)
  497.  
  498.       specifies the number of client positions to keep vacant
  499.       at all times, whilst there are bots playing. So if
  500.       you have set "maxclients 32", and there are 20 bots
  501.       playing, set this value to 3, so that if the total
  502.       number of clients (players + bots) exceeds 29, a bot will
  503.       be kicked from the game.
  504.  
  505.       The lowest scoring bot is kicked first, in this circumstance.
  506.  
  507.       As soon as more than 3 slots become vacant, a new bot will
  508.       be automatically brought into the game, assuming the current
  509.       number of bots is less than the current value of bot_num.
  510.  
  511.    bot_show_connect_info 0/1
  512.  
  513.       Disables/Enables the banner that's shown to clients upon
  514.       connecting, indicating that the server is running the
  515.       Eraser bot patch.
  516.  
  517.    bot_calc_nodes 0/1
  518.  
  519.       Disables/Enables dynamic node calculation. If you are
  520.       sure that this map has been played enough times, that
  521.       it is unnecessary for the bot to continue learning the
  522.       environment from the humans, just set this to 0. This
  523.       frees up some CPU time, which should make things run
  524.       a bit smoother if lots of humans are playing.
  525.  
  526.  
  527.     AUTOMATIC SETTINGS
  528.  
  529.         It is now possible to save your favourite bot commands/setting in
  530.         DEFAULTS.CFG, so each time you start the Eraser, these settings
  531.         are loaded in.
  532.  
  533.         Be careful when editing this file, if you stuff it up, Eraser will not
  534.         perform correctly. So make sure you study the above section carefully
  535.         before messing with it.
  536.  
  537.  
  538. NEW TO THIS VERSION!
  539.  
  540.    Check out http://impact.frag.com for the latest list of bug fixes, 
  541.    and features added.   
  542.  
  543.  
  544. FREQUENTLY ASKED QUESTIONS
  545.  
  546.  
  547.    Q: When I start up the map "city3" with view_weapons enabled, the game crashes with
  548.       "ERROR: *Index overflow". What's going on?
  549.  
  550.         This is caused by the game trying to load too many models at once. The only
  551.         way to solve this problem, is to disable view_weapons, or avoid any levels
  552.         that show this error.
  553.  
  554.    Q: I start the game, but when I type "bot_num X" it just repeats the command,
  555.       like I had said it instead, what's up?
  556.  
  557.         Check your Quake2 directory. If there is a gamex86.dll file in there, 
  558.         delete it. This solves 99% of such problems. If this is not case for
  559.         you, then you have got the command line, or installation wrong.
  560.  
  561.    Q: What sort of actions do I need to teach them most efectively ?
  562.  
  563.         Just make sure you run around, and collect things. If you
  564.         camp the whole game, they won't learn much at all. You only
  565.         have to do this once, then the data is saved, so the next
  566.         time you play the map, you won't have to worry about the learning
  567.         at all, since it will be switched off.
  568.  
  569.    Q: Will the learning be establised from both human players or just 
  570.       the serverside player ?
  571.  
  572.         All human players in the game create node data, when dynamic table
  573.         generation is enabled.
  574.  
  575.    Q: When the game starts, it says "ERROR: Game is version X, not Y"?
  576.  
  577.         Eraser is only compatible with Quake2 v3.12 - v3.14, other
  578.         versions of Quake2 may not work. To get the latest version of
  579.         Quake2, go to "http://redwood.stomped.com/".
  580.  
  581.    Q: The game starts, but I don't see any bots?
  582.  
  583.       To spawn some bots, type "bot_num <n>", where <n> is
  584.       a number from 1 to 24. They will then enter game at 1 second
  585.       intervals (to try and reduce telefrags).
  586.  
  587.       eg. bot_num 4
  588.  
  589.       You can also spawn a specific bot using "bot_name <name>",
  590.       where <name> is the bot's name. You can get the list of bots
  591.       from bots.cfg, which you'll find in your Eraser directory.
  592.  
  593.       eg. bot_name cipher
  594.  
  595.  
  596.    Q: I'm trying to setup an Eraser CTF server, but everytime a client connects
  597.       they can't join the game?
  598.  
  599.         That's because the client doesn't have the CTF files installed in
  600.         Quake2\Eraser, since that's the directory the server is running. So
  601.         you need to do ONE of the following:
  602.  
  603.         1) rename your CTF dir to CTF_back, then rename the Eraser dir to 
  604.            CTF. Then start the game with quake2 +set game ctf ...
  605.  
  606.                 *** OR ***
  607.  
  608.         2) Tell the clients to make an Eraser dir under Quake2, and copy
  609.            the pak0.pak file from their CTF dir to the Eraser dir.
  610.  
  611.  
  612.    Q: The bots sometimes stand around looking bored?
  613.  
  614.       There are still some glitches in the bot decision-making that can result
  615.       in bots getting stuck. Usually a rocket up their ass helps get them down :)
  616.  
  617.  
  618. MAKING CLEAN ROUTES
  619.  
  620.    Here are a few tips to keep in mind when creating routes for new maps:
  621.  
  622.         Walk up stairs first, where possible. Otherwise a series of jump/landing
  623.         nodes will be dropped as you go down, which uses up excess nodes, and
  624.         is less accurate than walking nodes.
  625.  
  626.         If you jump off a ledge, try and make a path back to the jumping position 
  627.         as soon as possible. This will prevent all other nodes from having to
  628.         recalculate best routes later on, after the return path is made.
  629.  
  630.         The same applies for teleporters and platforms, try and get back to 
  631.         the starting position ASAP.
  632.  
  633.         Turn on bot_debug_nodes, then enable the scoreboard. If you see "optimizing
  634.         route xxx -> yyy" showing a whole range of numbers, then it's best to stop
  635.         here for a bit to let it catch up. You will see this come up fairly often
  636.         while building a new map, so not to say you should always stop when it's
  637.         optimizing, just that if you complete a link back to a jumping locaiton
  638.         (for example) it will need to recalculate a whole bunch of new routes.
  639.         Stopping after the link is made for a minute or so, will prevent new routes
  640.         from having to be calculated over and over, as surrounding nodes find better
  641.         routes.
  642.  
  643.         Also, try to walk a nice line, rather than dodging around picking up items
  644.         all over the place. The straighter the line you walk, the more realistic the
  645.         bot's will move. Keep in mind that the bots will automatically pick up items
  646.         along the way, if they are available, so you don't have to leave a trail that
  647.         picks up items, just make sure you walk within the vacinity of all items.
  648.  
  649.         When loading a map, dynamic node placement will be disabled, IF AND ONLY IF,
  650.         all items in the level have a node nearby, OR the total number of nodes
  651.         exceeds 512 (the absolute limit is 750 I believe).
  652.  
  653.         Only jump when necessary.
  654.  
  655.         Type "cmd showpath" to enable the green line debugger. Just hit fire to
  656.         set it's position to where you're standing, then move around and watch
  657.         the path change. If it disapear's, i means the path is severed, and needs
  658.         to be traversed to fix it up.
  659.  
  660.         If you turn on bot_debug_nodes, then restart the level, you will notice
  661.         a list of items listed upon loading the map, unless the map is fully
  662.         pathed. Those items listed are not currently reachable by a bot, and they
  663.         will glow RED in the game. It would be wise to make sure bot_calc_nodes is
  664.         ENABLED and then go around collecting all glowing items.
  665.  
  666.         Use the "bot_optimize" command to speed up the optimization process. This
  667.         will slow down the frame rate depending on how large you set this to, but
  668.         will often speed up the process by 10x or more.
  669.  
  670.         Try not to die.
  671.  
  672.     Alternate Paths in CTF
  673.  
  674.         It is possible to create alternate paths for bots, when returning the flag
  675.         in CTF mode. NOTE: this only work in CTF, and is only used when a bot has the
  676.         flag.
  677.  
  678.         To do this:
  679.         
  680.         1. bind a key to "flagpath", eg, 'bind q "flagpath"'.
  681.  
  682.         2. go to the enemy base, and capture the flag.
  683.  
  684.         3. press the flagpath key on the way back to base to drop a SOURCE flagpath. This
  685.             should be dropped in a position that will always be touched by a bot on it's way back
  686.             to base. So either use a position really close the flag (but not touching) or
  687.             in a doorway that is close to the flag, that is the only way out of the base.
  688.  
  689.         4. determine 2 paths that can be taken from this position, dropping a destination
  690.             node along each of these 2 routes, far enough away from the SOURCE node, to force
  691.             the bot to take an alternate route to the shortest path.
  692.  
  693.         5. repeat steps 3 and 4 to create more "branching" flagpaths as required.
  694.             For example, at the end of one of the paths, there may be another choice between 2 paths.
  695.             You could create another flagpath branch, by dropping a SOURCE node near the end of the flagpath
  696.             you just dropped, and then dropping the 2 destination nodes in positions that would
  697.             force the bot to take alternate routes.
  698.  
  699.         6. change to the other team (if you were on the red team, type "team blue").
  700.  
  701.         7. repeat steps 3-5 as required.
  702.  
  703.  
  704.         Upon touching a SOURCE node while carrying the flag, a bot will then choose a random destination
  705.         flagpath that belongs to this SOURCE flagpath. It will then proceed to that position until
  706.         it touches the marker. Once it has done that, it will resume heading back to base. So if you
  707.         place the destinations too close together, it might take the same route after touching either
  708.         destination. It's best to place the destinations as far away from the SOURCE flagpath as possible.        
  709.  
  710.         For a running demo of flagpaths being constructed, download the following file, and place it into the
  711.         quake2\eraser\demos directory. Then while running the Eraser mod, type: "demomap flagpath.dm2".
  712.  
  713.         Get the demo at: http://impact.frag.com/files/flagpath_demo.zip
  714.  
  715.  
  716. DISCLAIMER
  717.  
  718.    This is a BETA release, I therefore will not take responsibility
  719.    for your system barfing after playing the game. I can however
  720.    guarantee that I have not purposely added any malicious content
  721.    to this application. If you believe this to be incorrect, then
  722.    I'd be happy to discuss the matter with you.
  723.  
  724.    You may freely distribute this archive, as long as it remains
  725.    PERFECTLY intact, as distributed on our home page:
  726.    "http://impact.frag.com/". Thanks.
  727.  
  728.  
  729. enjoy,
  730.  
  731. Ryan Feltrin
  732.  
  733.