Introduction
MRB's Documentation
Walkthrough
Design Suggestions Modified MRB Source

Design Suggestions

Outside of the creation of base classes for the modules, I think that the program should keep the same basic architecture but...

  • The Player (and, hence,  MasterControl) should be redesigned to separate acting from listening and thinking

  • Each module should point to the same world and set of skills so that information about the world is calculated and stored only once

  • Messages from the soccer server should update models and not be passed to the modules

  • The worldmodel should be the snapshot.

  • The TacticalModule should be a TacticalModel (currently refered to as TacticalSnapshot)

  • A seperate class should exist to describe a SelfModel

  • Perhaps two models should exist, one to always describe the current state of the world and another to simulate new points in time.  Or perhaps reset and resume functions

  • Modules should be independent of one another (get rid of evals in MasterControl constructor)

  • Recommendations computed by modules should add together to create a final decision.

  • The order of recommendation addition should be irrelevant

This diagram depicts parts of the player

 

This diagram depicts a new version of the play function in MasterControl that takes into account all previous suggestions about modules and models.