This document records all notable changes to the Animal-AI project. It follows the Keep a Changelog format and adheres to Semantic Versioning. For an overview of the project's development, see the Roadmap.
A small breaking change is introduced in this version for YAML configuration files. The YAML syntax for defining arenas has been updated to be more user-friendly and intuitive. The new syntax is backward incompatible with the previous version v4.0.0
. Please refer to the updated documentation for more information.
- New Game Object (Movable):
Hollow Box
.- This new object is a hollow box that can be moved around the arena by the agent. It can be used to create more complex environments and challenges for the agent.
- New UI Element:
AAI Build Version
.- Now, users will directly see the Animal-AI Build Version in the UI they are using for quick reference. It is displayed in the bottom-right corner of the UI.
- New Functionality:
mergeArenas
.- This new functionality allows users to merge multiple arenas into one. This is useful for creating more complex environments with multiple arenas. The merged arenas will be placed in the same position in the scene, and the agent will be able to move between them seamlessly. An example YAML configuration file is provided in the documentation (see here).
- YAML syntax has major (breaking) changes:
"t"
parameter has been renamed to"timeLimit"
to better reflect its purpose and improve readability."pass_mark"
parameter has been renamed to"passMark"
for coherency with other parameters.- UI text elements have been set to use the same font style for coherency.
- New Object: [Spawner]
Hollow-Object
.- This new object is a hollow box that can be configured to have a reward spawn right above it (by setting the y axis to anything above 1). The reward will be spawned at the same x and z position as the hollow object, so it is easy to configure the reward to spawn directly above the hollow object. The hollow object can be used to create more complex environments and challenges for the agent.
- The new object has a few parameters specific to it, such as
rewardToSpawn
(string),rewardSpawnPosition
(Vector3),delayRewardSpawn
(bool), delayTime (float), andrewardSpawnHeight
(float).
- New UI Element:
AAI Build Version
.- Now, users will directly see the Animal-AI Build Version in the UI they are using for quick reference. It is displayed in the bottom-right corner of the UI.
- New Functionality:
mergeArenas
.- This new functionality allows users to merge multiple arenas into one. This is useful for creating more complex environments with multiple arenas. The merged arenas will be placed in the same position in the scene, and the agent will be able to move between them seamlessly. An example YAML configuration file is provided in the documentation (see here).
- Fixed a bug where the agent would sometimes get stuck in the hollow object.
- This release is a major update that moves away from the experimental phase and introduces a stable version of the Animal-AI environment.
- This release is backward incompatible with the previous version
v3.1.4.exp
, and agents trained on the previous version may work with this new version.
- New valanced objects:
DecayGoal
andDecayGoalBounce
. - New UI for presenting data to the user: Arena and Object statistics.
- New csharp Script:
UIManager.cs
, for managing the UI and displaying data about the current YAML configuration file arenas and total spawned objects.
- Updated to TMPro for text rendering in Unity, for better performance and flexibility in the UI.
- Changed the layout of the UI to be more user-friendly and intuitive.
- Changed UI text colours to be more accessible and readable.
- Fixed object tag being incorrectly set for game object
RAMP
(from IMMOVABLE to RAMP).
- Arena randomization via the
randomizeArenas
parameter in YAML. - More robust error-checking for arena ID's and cycling.
- Unit tests on
TrainingArena.cs
andArenaParameters.cs
. - Visual elements for reinforcing cues (colors, short GIFs).
- Shortened end-of-episode notification to 2.5 seconds.
- Minor Unity script optimizations.
- Resolved Spawner Tree Clock desync issue.
- Fixed Multiple Arenas cycling issue.
- Addressed Unity native warning in Training Arena script.
- Rectified the invisibility of the SignBoard prefab.
- Hotfix for a bug affecting the Spawner Tree.
- "End of Episode Notification" feature.
- Unofficial support for "Headless" mode in training (with Raycasting).
- Added additional "Interactive Button" feature parameters for customization.
- Bug affecting the Spawner Tree.
- Bug affecting the Interactive Button.
- "Interactive Button" feature.
- Upgraded Mlagents to 2.3.0-exp3 (mlagents python version 0.30.0).
- Various bug fixes.
- Updated
README.md
with detailed instructions. - Unit tests on
TrainingArena.cs
andArenaParameters.cs
.
- Agent Freezing Parameter.
- Enhanced agent handling (stop and acceleration).
- Added new objects, spawners, signs, goal types.
- Updated object graphics.
- Released Unity Environment.
- Upgraded to Mlagents 2.1.0-exp.1 (ml-agents python version 0.27.0).
- Various bug fixes.
- Agents trained on earlier versions may perform differently due to control and graphic changes.
- Support for multiple arenas in a single YAML file.
- Introduced low-quality version for improved fps.
- UI scaling issues.
- Cardbox objects spawning at incorrect sizes.
- Environment timeout issue.
- Enhanced Death Zone shader for varying sizes.
- Health-based system.
- Basic Gym Wrapper.
- Basic heuristic agent for benchmarking and testing.
- Environment reset bug during training.
- Added frameskip setting (DecisionPeriod) for environment instantiation.
- RayCast Observations.
- Raycast length issue (less than diagonal arena length).
- Raycast observations.
- Agent global position tracking.
- Upgraded to ML-Agents release 2 (0.26.0).
- Ported Unity Environment from ml-agents 0.15 to 2.0.
- Ported basic python scripts from ml-agents 0.15 to 2.0.
- Added basic documentation.
- Added basic training scripts.
- Added basic training configurations.
--- end of Changelog ---