Jump to content
  • Advertisement
Sign in to follow this  
Rainweaver

An Entity System Implementation

This topic is 3089 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello everyone, I've been working on a Entity System implementation for quite some time now. I think it's time to give it a bit of exposure, in the hope that people will not only use it, but also improve it by contributing. It is fully functional, albeit with some missing features that I plan on implementing soon. I've written a short presentation, available here. All code, including general-purpose libraries in standalone projects, is freely available under a Creative Commons BY-NC-ND 3.0 license and can be found here. I'd like to thank the professional and indie devs sharing their knowledge on these forums. Might come across as a gratuitous compliment, but I really mean it. Questions and constructive criticism more than welcome!

Share this post


Link to post
Share on other sites
Advertisement
It would be nice if your documentation had well-defined paragraphs. As it is, it was kind of hard to read. Other than that, it sounded nice. It would also be good if you included code samples on that page, so people can get a feel for how it works. I didn't try to read any of the code, since I don't do .NET, so I can't give you any more feedback.

Share this post


Link to post
Share on other sites
Thank you - I made few modifications to the home and documentation pages, I hope they're more "palatable" now. I'll keep on adding more info.

Share this post


Link to post
Share on other sites
I'm interested in the parallelism part of the system - have you started implementing this yet or is it planned for the future?

Thanks for sharing ;D

Share this post


Link to post
Share on other sites
You could say the system already handles message dispatching in a parallel way; this is what happens:

* each entity has a message queue
* entity receives messages unless frozen; message is queued
* a Parallel Task Library task is spawned, unless there's one already running,
and the message is dispatched according to the component model

You can check out the following methods in Rainweaver.Entities/EntitySystem.cs for more detail:

internal void ForwardMessage(long sender, long receiver, int messageTypeId, int instanceId) { }

internal static void PerformDispatchTask(object taskState) { }


I know this can be improved by having different paths and different message dispatch strategies depending on how many entities are active.

Different machines may host other, cooperating entity systems as well.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!