This release introduces gameplay features and balancing changes for the Phase 2 of the Capture the Flag competition. Gameplay changes include tweaks to bot action times and field of view, changes to the low-level Attack behavior and responding to bots triggering events nearby. These are described in more detail below.
There will be no major gameplay changes for the Phase 2 competition. Releases will only be made for bug fixes. A small bug fix release is expected to be made later on December 21.
The AI Sandbox 0.20.6
The AI Sandbox is is available for Linux (32 bit and 64 bit) as well as Windows.
Capture The Flag SDK 1.6.2
This SDK release is available for Linux and Windows.
Gameplay
- Field of view is now 30 degrees if a bot is in the defend, 90 degrees while idle and while moving. This smaller field of view is compensated by a faster shooting reaction time when a bot is defending than if it is moving.
- Bots will not target enemy bots if they are in an idle state.
- Bots in an attacking state will not enter the firing arc of a visible enemy bot. If an attacking bot stops because of an enemy firing arc ahead of it its state will be STATE_HOLDING. If the enemy bot turns away or is killed the holding bot will resume its attacking order.
- Reduced the shooting time penalty of Charge to be closer to the action time penalty. Charge should be used instead of attack if you do not want the attack pause behavior at enemy firing arcs.
- Bots can no longer see dead people. Dead bots will no longer appear in the list of visibleEnemies of a bot.
- BotInfo.seenlast for dead bots (including enemies) has been changed to 0.0, making it now possible to iterate through the BotInfo objects of the enemy bots to quickly identify how many of them are dead.
- Bots that trigger events (killing another bot, picking up or dropping the flag) will appear in the visibleEnemies list of enemy bots that have an unbroken line of sight (even if they are outside the enemy bot's field of view). These bots will automatically be targeted by the enemy bot if they are within the target range. There is a delay of approximately 1 second between the event and the event instigating bot appearing in the visibleEnemies list or being targeted and the bot will remain in that list for approximately 2.5 seconds.
- Fixed the defend order when issued without an explicit direction specified so that it resumes facing the initial defend direction after shooting someone.
- Set BotInfo.seenLast to 0 for a team's own bots. This simplifies some algorithms that are updated by bot positions each frame because it is no longer necessary to test that (bot in team.members) or (bot.seenLast == 0) for up-to-date bot information.
- Bots will no longer try to stack on exactly the same location.
- Added a crouch animation for the Defend state.
- Increased order and reload delays. Reload delay while defending is now the same as for other states.
- Added new maps and map balance changes.
Implementation
- Fixed a possible infinite loop in GridMapRegion::findClosestPassableNode
- Fixed a bug which could cause a crash during initialization of the LevelInfo object.
- Fixed characters lying down when respawned
- Fixed a bug causing a team's flag to appear in GameInfo.enemyFlags
- Updated the network protocol version to 1.3. This contains the required changes to support LevelInfo.fieldOfViewAngles and the new BotInfo state STATE_HOLDING.
- competition.py script now displaying results indexed by opponent, for better insights into your bot's performance.
- Added an acceleration mode that runs without pausing. Use argument --accelerate to simulate.py (or -a) to enable. Disable vsync in the demos.cfg configuration file (located in the config directory in the AI Sandbox install directory) for additional speed-up.
Python Commander API
- New GameInfo helper function holdingBots for listing attacking bots that are blocked by enemy firing arcs.
- Replaced LevelInfo.FOVAngle with fieldOfViewAngles. This is a list of angles, one for each state in BotInfo that a bot can be in. This allows per state values of the field of view angle to be used.
- Fixed a bug with the MatchInfo.scores not being updated on the python network client.
C++ Language Pack 1.3
This language package is available for both Windows and Linux.
- Updated the network protocol version to 1.3. This contains the required changes to support LevelInfo.fieldOfViewAngles and the new BotInfo state STATE_HOLDING.
- Fixes for incorrect scores in MatchInfo.
Java Language Pack 1.3
This language package is available for both Windows and Linux.
- Updated the network protocol version to 1.3. This contains the required changes to support LevelInfo.fieldOfViewAngles and the new BotInfo state STATE_HOLDING.
- Fixes for incorrect scores in MatchInfo.
Other Language Packs
Other community supplied language packs are listed on the Download page.