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

Kiith-Sa kiithsacmp at gmail.com
Mon Oct 7 10:06:39 PDT 2013


On Monday, 7 October 2013 at 15:21:00 UTC, Elvis Zhou wrote:
> On Monday, 7 October 2013 at 14:19:20 UTC, Ali Çehreli wrote:
>> On 10/07/2013 02:18 AM, Elvis Zhou wrote:
>>
>>> ArtemisD:
>>> https://github.com/elvisxzhou/artemisd
>>
>> Just a little note: As it's more readable, you may want to use 
>> 1000.msecs instead of dur!("msecs")(1000) in the example 
>> program. 1000.msecs is the equivalent of the msecs(1000) 
>> function call, which returns dur!("msecs")(1000).
>>
>> Ali
>
> Done, thank you!

I'm implementing pretty much the same thing in my project, 
although I'm probably
more in line with the original blog post (e.g. every system can 
only access
specific components of an entity, which are statically 
determined, entities are more lightweight, etc.). I'm using much 
less OOP and more of a generic/metaprogramming approach. 
Currently I'm trying to rewrite the code to add a concept of 
"past" and "future" state; a System processes past Components and 
outputs a future Component, past Components are const, and no two 
systems may write to the same future Component. This should allow 
very simple threading
with little synchronization.

I'll look at your code if there are interesting ideas.

The previous version of my entity system is used in my ICE game:

https://github.com/kiith-sa/ICE

It's quite messy, though; which is why I'm rewriting it.
The new version doesn't even compile at the moment, I'm working 
on it slowly as I'm studying and working at the same time right 
now.

I'll look over the comment and post if I have any further 
feedback. The only thing I can say right now is that there is 
inconsistent tab-space indentation in some parts of the code 
(e.g. 
https://github.com/elvisxzhou/artemisd/blob/master/source/artemisd/entity.d 
)


More information about the Digitalmars-d-announce mailing list