Project Update – (short version: school over games)

So aside form the short bout with LD19 my game development has been put on hold, most notably with biogenesis. David and I both expressed a strong interest in continuing to work on it but unfortunately it won’t be until this semester ends because I have no time. Between grading papers, programming team and my independent study.

Speaking of the independent study we’ve been doing some really interesting content evolution. The project entails evolution of flowers evolved and represented through Neat and Neat’s genomes\neural networks. Some of the following images show my flash application and evolved, mutated, and mated flowers. The majority of my time was porting of the NEAT system (http://www.cs.ucf.edu/~kstanley/neat.html) to Actionscript (using HyperSharp – the C# port of NEAT) which was… a learning experience to say the least. The lack of function overloading and nice container classes put a small setback but I believe it’s fully ported over and tested now. Here are some screenshots:

biogenesis – New Training System

Most of my time has resided in biogenesis. I created a branch of our first version, gutted the behavior manager, sensors, and training thread to start from scratch. I got rid of NEAT’s INetworkEvaluators and implemented my own similar interface that I think will allow for the type of training I have in mind.

The population evaluator now runs in ‘Passes’, where a Pass defines two objects: a system of evaluation, and a space in which training takes place. These were designed under the ‘design by contract’ paradigm which I’m exploring heavily with this new system.

The problem I hope this solves is setting up a system where the following training methods are easily implemented with my updated TrainingManager class:

  • Remedial Training
  • Small goal oriented training
  • Simultaneous and Sequential sets of above goals
  • Dynamic input\output neurons depending on the trainee
  • ‘Plug and Play’ training systems

This method was designed to reinforce our original design which included remedial training and training in sequences of small goals, but done in a much more abstract, robust, and well defined way. The idea to continue and strengthen\revisit this design includes several reasons:

  • The organisms were training quickly and had potential but anything past basic field navigation, evasion, and food gathering never showed. Complex networks also had trouble showing up.
  • The ideas described in http://www.pnas.org/content/102/39/13773.abstract formally addressed our approach.

The aforementioned paper details how spontaneous modularity in evolved networks arise in evaluation that include frequent sub goal changes (where sub goals have some underlying similarity). This is one approach to the problem of having a population be stuck in a local maxima “because the fitness landscape changes each time that the goal changes, modularly varying goals can help move the population from these local traps.” It is my hope that by creating an abstracted implementation of the TrainingManager that furthers these ideas, when we get to the point of greatly varying organisms the training will naturally develop unique behavior based on the organism’s abilities.

My tests are currently running correctly without sensors, so my current goal is to finish the sensor and behavior management systems and integrate them with the trainer.