A component-entity architecture has two main advantages;
one of them is efficiency/cache locality (which this project doesn't have at all). Another is the ability to quickly define new types without the clusterfuck that happens if you try to use OOP to design game entities (and also to define them in plain data types).

This thing is ported from Java where performance didn't seem to be a concern (even though they're calling it 'lightweight' for some reason). There are even component-entity frameworks for Ruby, Actionscript, etc, where there is no way at all to utilize cache locality.

I think this might be useful if you're creating a game that doesn't need the best graphics and when a little latency isn't a problem (e.g. turn-based strategy, adventure, etc.).


(I'm not the developer of artemisd, but I'm working on a similar design, although with a bit more compile time, cache-aware and hopefully auto-threadable; but also much less flexible, more 'purist' (not likely to be released as a separate library, either))

Reply via email to