Closed DavidNKraemer closed 3 years ago
Current proposal is to replace the word Agent
in the GameBoard with Bot
.
Commit 594cec5c1d750327bd48cb66b2fc4cc3495d4fa3
in the dev branch has replaced all appropriate Agent references to Bot references. We still need to test that we didn't introduce errors, but that is now our semantic decision.
The definition of the
Agent
class indev/board.py
conflates the RL concept of an agent (i.e., the controller) with the specifics of the game board agent (i.e., one of the pieces moving around).This is bad design because it mixes distinct notions of state in very unhelpful ways.
The RL agent has internal state:
and treats environment state as parameters. The current game board agent contains a huge amount of code solely to maintain its piece of the environment state. In addition, it can move around as if subject to a policy like an RL agent.
This all gets worse once we realize that this godless mixing is embedded inside the actual Board environment! Everyone is pointing at everyone else, and streams are getting crossed (which is bad).
We should separate these aspects of the agent. The RL agent should be dedicated to RL stuff (and I vote that it should retain the name "Agent"), and the separated board piece agent guy (name pending) should manage its own environment state.