A number of changes were made to address the following issues:
The SignPoster game object that was not rendering at all when defined in the yaml file
Spawner tree clocks were not synchronous, which meant unpredictability was introduced in regards to the rewards being spawned and ripening of rewards affected
Feature configurable end-of-episode notification feature is now final (albeit with placeholder sounds and GIFs)
Feature configurable camera perspectives via button C and use of R button that can be toggled on/off now works properly. However, a limitation of the camera perspectives is that only the camera perspective "behind agent" is default if the ability to change camera perspectives is toggled off. This limitation is going to be fixed in the next experimental build. It is proving to be problematic without further research in the matter.
A unity native warning is produced when the game is played, specifically warning about creating an object of TrainingArena which is not allowed if the script is inheriting from Monobehavour, which TrainingArena.cs was indeed doing. See screenshot 1A for warning screenshot.
Multiple arenas defined in the yaml file was not properly being cycled. This was due to the inherent logic in the code, where the zero-ith index was used as a special case, which hindered the arenas from cycling properly. I also noticed that the last arena was being used twice, which was linked to the fact that the first arena (index 0) was being skipped, replaced by the second iteration of the last arena. This has now been fixed.
Added the functionality to randomize the arenas via the new parameter: randomizeArenas, which is set to false by default, meaning you do not need to define this parameter in your configuration if you do not require the list of arenas defined in your arena to be randomly instantiated. This functionality should not be confused with the ability to create random arenas, which was implemented originally. This feature is now removed as the complexity of this feature slowed down the overall speed of AAI by a factor, approximately O(n+1), where n is the number of defined arenas, and +1 is the randomly generated arena upon pressing play being called every time the game is launched AND the arena is reset. The time complexity is now reduced to O(n) for processing arenas.
Checklist
[x] Tested AAI overall and confirmed nothing has been broken (relative to what's been changed)
[x] Tested and confirmed bugs #36 , #33, and #21 are now FIXED
[x] Checked to see if new high-level bugs were introduced (with the changes made), with none discovered so far
[x] Carried out unit testing on each new modification
Final Notes (if any)
The points detailed in the Details section have all been fixed or addressed. However, unforeseen bugs or erratic behaviour may have been undiscovered during testing.
Furthermore, the Spawner-Pillar Button still has incompatibility issues with the standard approach of spawning game objects that was coded originally. This will be fixed in the next experimental build of AAI and is a known limitation, specifically the inability to spawn rewards randomly and the rotation of the pillar button acting erratically.
Summary
(https://github.com/Kinds-of-Intelligence-CFI/animal-ai/issues/33) A new pull request to allow for the next version of AAI, currently set at v3.1.2.experimental.
Details
A number of changes were made to address the following issues:
randomizeArenas
, which is set to false by default, meaning you do not need to define this parameter in your configuration if you do not require the list of arenas defined in your arena to be randomly instantiated. This functionality should not be confused with the ability to create random arenas, which was implemented originally. This feature is now removed as the complexity of this feature slowed down the overall speed of AAI by a factor, approximately O(n+1), where n is the number of defined arenas, and +1 is the randomly generated arena upon pressing play being called every time the game is launched AND the arena is reset. The time complexity is now reduced to O(n) for processing arenas.Checklist
Final Notes (if any)
Screenshots (if any)
Figure 1A: