A few important changes have been made to the overall codebase, including:
Each and every csharp script has been reviewed and refactored and improved where applicable.
The most important scripts (ArenaBuilders.cs, TrainingArena.cs, TrainingAgent.cs, AAI3EnvironmentManager.cs, ArenaParameters.cs ---> have all been modularised and added method summaries in order to make it clear the purpose of the function in question. The need for modular methods was a requirement as some methods in these scripts tended to do multiple actions, which violated the single responsibility principle in csharp (and other languages). Some scripts have been left intact as it was deemed better this way, due to the complexity (risk factor) and/or because the script was fine as it was.
"regions" have been added ---> they organise the script accordingly and flexibly creating regions of code that can be bundled together. They have no impact on code performance or function.
In order to make the syntax of the YAML files more coherent, readable and logical, two YAML parameters have been refactored:
"t", an int which signifies time per episode, has now been renamed to "timeLimit", effectively from AAI v.4.1.0.
"pass_mark", an int which signifies the level of minimum accepted reward to progress to the next episode, has been renamed to "passMark", to make it more coherent with the other YAML syntax currently used.
Note that these changes are backwards in-compatible, meaning previously used YAML configuration files will produce an error when played, as "t" and "pass_mark" are no longer recognised by the s/deserialiser. I've made a python helper script to allow a quick procedure to replace the older parameter strings with their newer ones, allowing the user to use their older configurations without creating newer or duplicates with the accepted YAML syntax.
Useful links (Github issues, ML-Agents forum threads etc.)
n/a
Types of change(s)
[ ] Bug fix
[ ] New feature
[x] Code refactor
[x] Breaking change
[ ] Documentation update
[ ] Other (please describe)
Checklist
[x] Added tests that prove my fix is effective or that my feature works
Proposed change(s)
A few important changes have been made to the overall codebase, including:
ArenaBuilders.cs
,TrainingArena.cs
,TrainingAgent.cs
,AAI3EnvironmentManager.cs
,ArenaParameters.cs
---> have all been modularised and added method summaries in order to make it clear the purpose of the function in question. The need for modular methods was a requirement as some methods in these scripts tended to do multiple actions, which violated the single responsibility principle in csharp (and other languages). Some scripts have been left intact as it was deemed better this way, due to the complexity (risk factor) and/or because the script was fine as it was."t"
, an int which signifies time per episode, has now been renamed to"timeLimit"
, effectively from AAI v.4.1.0."pass_mark"
, an int which signifies the level of minimum accepted reward to progress to the next episode, has been renamed to"passMark"
, to make it more coherent with the other YAML syntax currently used.Note that these changes are backwards in-compatible, meaning previously used YAML configuration files will produce an error when played, as "t" and "pass_mark" are no longer recognised by the s/deserialiser. I've made a python helper script to allow a quick procedure to replace the older parameter strings with their newer ones, allowing the user to use their older configurations without creating newer or duplicates with the accepted YAML syntax.
Useful links (Github issues, ML-Agents forum threads etc.)
n/a
Types of change(s)
Checklist
Other comments
Screenshots (if any)