Good point about YAML, Mark!  I've been wanting to switch to something like that for a while.  The really long, dotted parameter names ECJ uses to denote an object hierarchy work great, but are painful to read.

Just thinking aloud here: I've also been trying to understand the similarities and differences between using a configuration file/markup language for parameters and relationships between objects, vs. using an inversion control framework like Spring.  Is what Spring does via annotations and XML files essentially the same thing that ECJ does with property files?

On Mon, Jun 29, 2015 at 2:39 PM, Mark Coletti <[log in to unmask]> wrote:
On Mon, Jun 29, 2015 at 7:22 AM, Christian Meyer <[log in to unmask]> wrote:
Using an entity component system (ECS) might be suitable for you. It is similar to the strategy pattern but any combination of "strategies" is possible and also saving state along with them.

This seems to be a flavor of the State design pattern, which is similar to Strategy; either or both of these might be applicable for the agent implementation.  As others have stated, Factory is good for externalizing the creation of complex objects, and also using subclasses to add special case complexity.

As to a configuration language, Siggy, something like YAML might actually be more useful for specifying run-time behavior.  There exist a number of open source YAML libraries.

- Mark


Ph.D student in Computer Science
George Mason University