Skip to content

Comparison with Lazybox ECS

Thomas Schaller edited this page Nov 2, 2017 · 2 revisions

Lazybox ECS features

@Liotitch wrote:

Even though today we are closer to specs, we still have some fondamental differences. With the traditional design we had issues to integrate some features (like Box2D) that were not planned to be used in a multithreaded environment, so we introduced the concept of modules that are independant parts which provide and own their components.

Also we have the concept of Accessors that statically ensures to the user and the library that the entity is alive and the reference valid. Allowing us to avoid some checks most of the time.

We have Groups that are like Aspects that represents a set of entity that Systems can iterate on instead of calculating it each processing steps although it introduces its own caveat.

Our System Scheduler is based on what systems need to read and write instead of associating a priority to each system, but I suppose we could implement this on top of specs.

At last, we had a lot of trouble to handle serialization and our new ecs is (in theory) designed to ease that.

In order to use specs in lazybox we would currently either need some changes in specs that might not be in the scope of this library or at least find new alternatives on our side.

Comparison with Specs

Also we have the concept of Accessors that statically ensures to the user and the library that the entity is alive and the reference valid.

We don't have that, but I'm not sure about the limitations it brings.

We have Groups that are like Aspects that represents a set of entity that Systems can iterate on instead of calculating it each processing steps although it introduces its own caveat.

Seems like we have that

Our System Scheduler is based on what systems need to read and write instead of associating a priority to each system, but I suppose we could implement this on top of specs.

Highly flexible on our side:

  • dependencies
  • aspects
  • barriers
  • or manual RunNow / user-built scheduler
  • now also par! / seq! stuff

At last, we had a lot of trouble to handle serialization and our new ecs is (in theory) designed to ease that.

Serialization could be easier. Update: Our new serialization is much easier and highly flexible.

Clone this wiki locally