arche
arche copied to clipboard
Arche is an archetype-based Entity Component System (ECS) for Go.
The graph in the README, with arche outperforming a bog-standard AoS setup really surprised me. The memory locality in the AoS case should be really good. To verify, I ran...
G.E.C.K
Continuing the [XKCD meme](https://imgs.xkcd.com/comics/standards.png), and [@mlange-42 previous efforts in finding what they want](https://www.reddit.com/r/golang/comments/10spue3/known_entity_component_systems_implementations_in/) I've made [another](https://github.com/delaneyj/geck) ECS library for Go. It's doing code gen to get me the relationship and...
*Arche* has no dependencies, except [testify](https://github.com/stretchr/testify) for unit tests. Would be great to get rid of them for normal module users. Maybe `go_test.mod` is an option? See https://dev.to/wallyqs/introducing-gotest-mod-18a1
Need the ability to create `ecs.Entity` for querying for external resources (networking layer in this case).
Arche takes some measures to prevent world modifications while a query is active, as moving around entities between archetype might interfere with the query. However, it is still possible to...
Add benchmarks ECS performance comparison for access to components via the world instead of queries (i.e. by entity ID).
Upcoing v0.8.0 features entity relations (see [milestone 1](https://github.com/mlange-42/arche/milestone/1)). However, each entity can only have one relation to a single other entity. This issue is for collecting thoughts on extending to...
Currently, archetypes are only added and only grown. Removing archetypes is probably not worth it. It might, however, be useful to let users set a shrinking policy.
Benchmarks for relation queries with a low number of children show sub-par performance. This is probably due to the initial overhead of creating a query for every parent. Identify where...
I've added the tests for sedyh/mizu@experimental and some additional fixes. From this discussion: #200.