ArtemisD: A D port of Artemis Entity System Framework for games.

Elvis Zhou elvis.x.zhou at gmail.com
Fri Oct 11 21:16:01 PDT 2013


On Friday, 11 October 2013 at 19:50:42 UTC, Kiith-Sa wrote:
> 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))

The second advantage is far more important IMO, I've been using 
Unity3D for my work for several years and I think its component 
based design play a significant role to its success 
technically,(refer to its assets store, so many third party 
components developed and can be easily reused).
OTOH, given its C#/Mono nature, performance is not that important 
in reality in an app layer which an entity system is supposed to 
reside in. However, as a C programmer I also cann't ignore it if 
there be any performance loss by design.


More information about the Digitalmars-d-announce mailing list