junkdog / artemis-odb

A continuation of the popular Artemis ECS framework
BSD 2-Clause "Simplified" License
777 stars 110 forks source link

System API 3.0 draft #531

Open DaanVanYperen opened 6 years ago

DaanVanYperen commented 6 years ago

Currently the System hierarchy is quite big, does multiple things, and heavy with framework logic. There might be some ways we can:

Ties to #528

junkdog commented 5 years ago

Might want to deprecate some things too (@EntityDescriptor comes to mind).

I also think entities should only be inserted/removed from systems at the end of World::process - this would simplify debugging and reasoning about entity state changes overall. The resulting code is simpler too (but as I have learnt elsewhere, requires some rewiring w.r.t. the current impl). Providing both current behavior and old isn't really feasible - although it could maybe be emulated at a performance cost.

DaanVanYperen commented 5 years ago

Sounds good!

Recently added https://github.com/junkdog/artemis-odb/blob/master/artemis-core/artemis/src/test/java/com/artemis/EntityComponentLifecycleIntegrationTest.java to figure out how things work. Maybe take a look at the test names and see if we need to change any other behaviours?