Instead, I took cue from Juliean and took a look at Alec Thomas's EntityX system, and then at Richard Lord's Ash. After pondering these over a bit, I threw out what I had and started again.
I now have:
- Components: Purely data
- GameObjects: A simple entity which "holds" components
- Systems: Things which manage collections of Components or game objects
- Messages: The way systems communicate
Anyway, now I picked up an old project idea and started to run with the new system to see how it worked, any I'm quite happy.
I like using code names for projects. Mostly because I don't have to think of a game name on the spot - my latest project is called Ocyphaps. It's based on an old Amiga classic with trappings and inspirations from Terraria.