Finally after two months of all work and no play I've managed to get a few days off. Really off. Lately having a day off has still meant working for a couple of hours plus the irrational worrying that comes with studies. I don't think I've had a free weekend since the easter holidays so I'm enjoying this big time. For three days I haven't left the apartment, hardly even the couch.
I checked up the status of the project where I left off. I was halfway through some basic work on entities and components, which now has been finished. Now, basically the EntityManager creates entities and tells the various component managers to create components associated with the entity. As I said in an earlier post my main concern was how to let components communicate with each other. The current implementation uses my previous idea with a shared data table when communicating between components of the same entity. Communication between components of the same type (over entity borders) are done explicitly by the manager for the component type. I've sketched up a really nice illustration of this on paper but it isn't really postable as of now.
The system has a Vehicle component that does movement, right now in accordance with a seek steering behavior. I'm applying it to the enemies and will work on a separation behavior next. There is a Video component too that simply draws a given sprite at the entity position.
Right now I've removed the old enemies from the code and will try to reimplement them using this new approach. It'll likely be some work until all the details are back. At times I've wondered if this is really worth it, but I think it will be once I start making more kinds of enemies and other world objects. And even more when/if I get to the point of fixing up a game script.
The illustration is now postable.