What:
The goal of this simulation is not just to simulate the game of life, as it does currently, but to be able to be set to many different (2d) variations of cellular automata by the user.
Why:
Game of Life simulators are in existence in many different forms and variations. One of my original goals was to be able to switch the simulation to any 2D CA algorithm the user may come up with by letting him simply either pick from one of the already integrated rulesets, or manually type in (or even upload) one of his own choosing.
When:
When the user can choose from multiple rulesets without needing to restart the simulation or any code-changes. When the user can input simple strings into a text box to define his own rules for nearest neighbor Cellular Automatas, such as 23/3 for the GOL algorithm.
What:
The Simulation needs to run at least moderately faster. It should run reasonably fast on sizes of up to 100x100 as a very minimum, 200x200 as the value to strive for.
Why:
Without being able to at least see the simulation working on this size, none of the coming improvements to the map size, zooming or rule-set changes will have too much of an appreciable effect.
When:
Done when (I can) run the Simulation on 200x200 without noticeable slow-down, or at the very least 100x100.
The backend needs more orthogonality to allow easier changes to specific parts. Currently, the engine is still responsible for too many disparate jobs; and the Simulation is simultaneously simulating the Cell-World and Rendering it to the screen. Those two are the biggest stumbling blocks, which entail a host of smaller changes internally to them.
When is it finished: When Simulation and Rendering are completely decoupled from one another, the Engine has been taken a thorough look at, and all three classes are thoroughly unit-tested (and unit-testable).