

        ========    Tribes "Bots" Mod Overview
        ========            2/17/99

	This "bots" mod is meant as an illustration of how simple drones may be set up 
in multi-player missions.  For this to work, the 1.2 (or greater) version of Tribes
is required for the SERVER, any version of the client should work (if any problems
are encountered, an update would be recommended).  

	In the version 1.2 Tribes update we set up some simple default drone behavior 
which will take place if the mission (.MIS) file contains certain marker groups 
(which can be set up in the mission editor).  You can look at AI.CS (in base\scripts 
within your executable directory) to see how this default behavior is implemented.  
Anyone interested in extending the drone functionality could use this as a starting 
point.  Section 2. below briefly outlines how this default drone behavior works.  


        ========    1. Installation
        ========  

    To Install this mod, just unpack it within the executable directory that you run the 
game out of.  You should see a "bots" subdirectory created, and it should have a "missions"
directory within it.  Then, to use the missions, run Tribes with the following command line:

Tribes -mod bots

Once you are in the game, choose "Bots" from the "Mission Type" drop-down menu in the "Create 
Server" screen, and proceed as usual.  In running a dedicated server, add "-dedicated" to
the end of this (without the quotes, and order is important - it must come at the end).  As 
noted before, clients who join these missions don't have to do anything (since existing maps 
are used).  

When you play these missions, they will look like the original missions, but they will have
drones patrolling the bases of the missions.  


        ========    2. Default setup using .MIS marker groups
        ========  

	Whenever a mission is launched, the startup code looks for an "AI" folder within 
each of the team folders in the mission group.  If an AI folder is found, then it looks for 
sub-folders within, and any that are found, and which have at least one marker within, are 
used to spawn drones, with the folder names being given to the drones.  The first marker 
within the drone's folder is used for the spawn (starting) location, and any others are 
used for a path (installed using AI::DirectiveWaypoint()).  This is all done through the 
function AI::SetupAI(), defined in AI.CS.  The call to this setup code happens from 
Mission::init() defined in Objectives.cs (Dm.cs for deathmatch missions).  

	When one of these AI-group drones dies, it is scheduled to re-spawn shortly later.  
The re-spawn is scheduled from a default callback that is issued whenever a drone dies, 
called AI::onDroneKilled(aiName), defined in AI.CS.  

	Note that if a drone is installed without having any waypoints (i.e. if their marker 
folder contains exactly one point, their spawn location), it will then respond to waypoint 
commands given from the commander screen.  See AI::onCommand() in AI.CS.  

	If you want to drop drones into the mission using this default setup - note that 
since they don't (at this point) avoid obstacles, they are best placed in open areas 
or out of the way of anything they could get wedged into.  Having them run around the 
perimeter of a compound can work well.  

    Note that the training missions use a different setup procedure, and probably would
not serve as a good model for further drone programming.  


        ========    3. Further 
        ========  

	A reference document will be available shortly from our Website that explains 
the relevant AI console functions in more detail.  

    It needs to be pointed out that at this point the drone "AI" is quite rudimentary - 
their built-in intelligence allows them to only follow scripted paths and fire at
enemies.  They don't avoid obstacles, make strategic decisions, use ATMs, and so forth.  
Some of this _could_ be effected with some clever scripting (and the forthcoming provides
reference to console functions to make use of).  

    Work on the basic drone AI however IS continuing and we will likely release this as 
part of an update (or updates) down the road, at a time TBD, although probably roughly around 
three or four months.  This will have more robust drone navigation (including jetting), and 
fill other holes in the AI functionality.  And the eventual goal (For Tribes II) being that 
bots can serve as reasonable substitutes for human controlled players in game, plus enable 
more thorough Training, etc.  It should however be noted that, at least at this point, a 
full-fledged single player side of the game with AI is _not_ the goal: rather it is to round 
out and further enhance the multi-player experience.  

    Questions and comments are welcome and can be directed to Lincoln Hutton and/or Greg 
Lancaster.  News of any (successful or failed) experiments with drone scripting, ideas
for desired console functionality, and any other feedback will likely be quite helpful
in our continuing work on this side of the game.  

    Thanks for playing!
    
        LH, GL


Email:
lincoln.hutton@dynamix.com, greg.lancaster@dynamix.com
