MÆDEN
Synopsis
Mæden is a simulated grid-world environment designed to support multi-agent problem-solving. Agent controllers may be written in any language that supports basic sockets.
Details and documentation may be found here.
To Do
- Restore communication between agents
- [in-process] when simulation ends (in the case where eating the food is the ultimate goal), send disconnect signals to any other agents currently connected
- track down problem with stochastic failure giving incorrect status;
problem starts in
processAgentActions()
whereSTOCHASTICISM
/STOCHASTIC_RATE
is sometimes exercised - [in-process] upgrade documentation in Java sources to support javadoc
- add shield object or armor or chain mail, etc.
- create wrapper server that will fork a simulation in specified world (do we really want this?)
- modify assignment of agent IDs to re-use IDs that have been released
eliminate base/helper distinctionfor sending visual info from the server to agent-controllers, use something such as JSON or other that is more readily parsed by all languagesresolve conflict when two agents want to move into the same squarereplace iterator with for-each loopsadd command-line argument to control EAT_FOOD_ENDS_ITfix the foundBase and killGrid interaction that is happening in Grid.javacreate an abstract agent-controller class that KeyboardController extends and that other classes could extend as wellrefactor into simulator proper and agent controller foldersput everything into a Java package; the challenge, however, is for controllers and the simulator proper to live and play nicely together with a minimum of hasslecreate map to store action costs, indexed by action character as key and associating energy cost as valuein server's processAgentActions() loop, if no action sent by an agent, let nextCommand be "wait" (or whatever)adjust simulation time units to correspond to 'wait cost' and then deduct wait-cost every time-slice when agents do not actremove restriction of single-digit agent IDs (i.e., limit of 10 agents)make To Do list numbered instead of bullets