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