After placing and "defining" the navigation network, the level designed
should tweak and debug it by watching bots play the level.
The designer should go in game as a spectator, and add first one and then
later several bots to the level. The designer can watch them play, advancing through the bot cameras
using the fire button, and looking for problem areas. If the bot currently
being viewed seems to be acting strangely, using the console command verbose will indicate what it is thinking.
After the play session, reviewing the log file may also provide insight to problems.
If the bots don't seem to understand how to get to a certain destination,
the designer can use the rememberspot and showpath console commands
to look for breaks in the navigation network. When the rememberspot command is used,
the current location is saved. Subsequent showpath commands will cause the best visible
NavigationPoint on the path to the remembered location to become visible.
If no NavigationPoint becomes visible, there is no valid path to the remembered location.
If a player cannot fit in the position specified by a PlayerStart, then the player cannot properly
enter the game and will either wander as a spectator or the game will crash.
The log file for that play session will have information on which PlayerStart caused the failure.
Several special purpose NavigationPoints exist to provide tactical or game specific positions or
to provide support for special movement modes such as using translocators and jumpboots.
Game specific NavigationPoints will be described in the section of this document devoted to that game type.
PlayerStarts specify allowed spawning locations for players and bots.
There are two relevant configurable attributes in PlayerStarts. The TeamNumber attribute specifies which
team is allowed to spawn at that PlayerStart in teamgames where team specific PlayerStarts are enforced.
The bEnabled attribute, which is true by default, can be toggled to enable or disable the PlayerStart
by triggering the PlayerStart.
AmbushPoints are used to specify good camping spots. They are directional and should be pointed in
the direction the bot should be looking while using that AmbushPoint. AmbushPoints have two configurable
attributes, SightRadius and bSniping.SightRadius specifies how far out the bot should be looking for enemies
when camped at the AmbushPoint. bSniping specifies that bots using this ambushpoint should stay at this
point and snipe after acquiring an enemy, rather than chasing after the enemy.
DefensePoints are a subclass of AmbushPoint used in team games. DefensePoints have three additional
configurable attributes, Team, Priority, and FortTag.
The Team attribute specifies which team should use this defensepoint (0=Red, 1=Blue, 2=Green, 3=Gold).
The Priority attribute is used in team games to determine which DefensePoints will be manned first
(higher priorities are manned earlier).The FortTag attribute is used in Assault games to associate a
defensepoint with a particular FortStandard.
BlockedPaths are used to keep bots from attempting to follow routes
which are initially blocked (such as a bridge which must be lowered).
When triggered, the BlockedPath is unblocked. Once unblocked, a BlockedPath cannot be re-blocked.
If using a BlockedPath, make sure that there aren't any path connections which bypass the BlockedPath
and render it useless. AS-Mazon has some good examples of the use of BlockedPaths.
TranslocDests are a special type of LiftCenter which are not associated with a mover.
TranslocDests are used to define places that bots can use a translocator to cut a route short.
A lifttexit should be placed at the spot where the bot should stand a use his translocator,
and a TranslocDest should be placed where the Translocator Target should be thrown.
Another liftexit should be placed near the TranslocDest, as an "exit" from this "lift".
The LiftExits and the TranslocDest should be given the same LiftTag.
Bots will assume that any LiftExit with the same LiftTag as a TranslocDest can be directly reached from
the TranslocDest, without any special action on the bot's part. If the bot must use the translocator to
get from the TranslocDest to one of the LiftExits, replace that LiftExit with a TranslocStart.
JumpSpots are similar to TranslocDests, and are also placed in conjunction with LiftExits all given
the same LiftTag. Bots understand that in low gravity areas, or in JumpMatch, or if they
have JumpBoots, they can also jump to reach JumpSpots. In addition, if the bImpactJump attribute of the JumpSpot is true,
higher skill bots will impact jump (using the impact hammer)to reach the JumpSpot.
If the bAlwaysAccel attribute is true, bots will use air control to reach the JumpSpot
(try this only if they are failing without it).
Teleporters send any pawn which touches them instantly to their destination teleporter,
as specified by their URL attribute. If the URL attribute is empty, the teleporter acts only as a teleporter
destination. If it contains the same string as the tag of another teleporter in the level, that teleporter
will be the destination. If it contains a string in the form of LevelName/TeleporterName, it will teleport to
a different level on this server (single player only). If it contains a string in the form of
Unreal://Server.domain.com/LevelName/TeleporterName, it will teleport to a different server on the net.
If a teleporter's bEnabled attribute is false, then it will not teleport pawns which touch it,
although it can still act as a teleporter destination. The bEnabled attribute is toggled by triggering
the teleporter. If the bChangesYaw attribute is true, pawns arriving at this teleporter will
have their yaw changed to the teleporter's yaw. If the bChangesVelocity attribute is true,
pawns arriving at this teleporter will have their velocity set to the teleporter's TargetVelocity.
Copyright © 1996 Epic Games |