- User Since
- Aug 4 2019, 2:04 AM (18 w, 1 d)
Thu, Dec 5
Updated python dependencies and fixed bug when built w/o the RL interface.
Tue, Nov 12
Updated installation/testing instructions in README for the python client and removed the user option for the RL interface address as it must be set on start and may be confusing for users.
Added tests for actions and configuring scenarios. I also removed the extra example since it didn't contain anything new as compared to the better one ;)
Mon, Nov 11
As an update, I am currently working on adding tests for the actions and scenario config (using pytest). I have tests for all the actions in zero_ad/actions.py and a number of the different scenario settings. I am currently working on testing random map usage. After finishing the tests, I am planning on training a simple agent as an example demonstrating how it can be used to expose an OpenAI Gym API to 0 AD :) (I will probably do this in an external repo and then just post a link to it.)
Oct 24 2019
Miscellaneous code cleanup per Stan's feedback.
Oct 23 2019
- Define ScenarioConfig in Python. Added basic helpers for defining victory conditions as well as more generic setters (set_map_setting, set_game_setting).
- Refactored RL Server main loop to own method
- Changed default build to not include RL interface (uses --with-rlinterface)
Sep 14 2019
Added more actions (construct, gather, train, attack-walk) and an example script showing a lot of these basic actions.
Aug 24 2019
Aug 23 2019
- Added --without-rlinterface compile flag
- Removed generated files
- Added config option for the rpc server address (both to the default.cfg and to the options.json used in-game)
Aug 22 2019
Cleaned up the updates to the SaveReplayMetadata function (mentioned in the prior reviews). I also made the argument for the fn const since it is read-only.
I will be updating the diff with the most recent fixes. Dumb question: when I update the diff, does it add the changes to the existing diff or overwrite it with the most recent diff? I usually use git and GitHub and am still getting used to Phabricator...
Aug 21 2019
- Removed duplicate functions for getReplayMetadata to more directly call the fn from the GuiInterface.
- Updated VisualReplay::SaveReplayMetadata to call GuiInterface directly from the C++. After the code change, I removed the (now unused) ScriptInterface argument from the method signature.
- Replaced the single invocation of getReplayMetadata with Engine.GuiInterfaceCall("GetReplayMetadata")
- Added the registration of GetInitAttributes which should have been included in the original diff.
- Added myself to the credits
Thanks for the feedback! I added some responses inline and will be updating the diff (hopefully addressing all the remaining issues)!
As @Stan said, there is more discussion on the PR on GitHub. The goal of this contribution is to provide the fundamental underlying capabilities for exploring RL/ML agents in 0 AD (such as an OpenAI gym environment which can actually be implemented on top of this quite easily). I am intentionally not adding any action/observation spaces or reward as expected by OpenAI gym as these are not obvious and there are many different candidates for each of these (this is discussed more on the GitHub thread).
Thanks for the feedback! I can move it to be behind a feature flag and remove the generated files.
Aug 20 2019
Changed NULL to nullptr
I added GetReplayMetadata to the GuiInterface component to reduce code duplication introduced by the original diff.
Thanks for the feedback - I have added my responses inline!