bitmap
ecs
Our great sponsors
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
bitmap
-
Example of Entity Component System in Go
Good question, I think there's many different lessons. To your point about bitmasks, you can imagine that each component (i.e. column) has an array of data and a large bitmap that identifies whether a component is present or not. Had to build a SIMD implementation so you can do and, and not, or and xor operations on millions of components within reasonable amount of time. Interestingly enough, you still need a hashmap or b+tree in case you want to retrieve a component by it's ID instead of an index, but the rest of things can be modeled with bitmap indexes.
ecs
- Known "Entity Component Systems" implementations in Go?
- Example of Entity Component System in Go
-
GitHub - kelindar/ecs: Example of Entity Component System in Go
Now, over Christmas holidays I've put together a small demo of how an ECS can be done in Go: kelindar/ecs. As I said, it's still very raw but I'm curious if anyone has feedback or finds it useful.
What are some alternatives?
fsm - Finite State Machine for Go
entt - Gaming meets modern C++ - a fast and reliable entity component system (ECS) and much more
go-adaptive-radix-tree - Adaptive Radix Trees implemented in Go
arche - Arche is an archetype-based Entity Component System (ECS) for Go.
bitset - Go package implementing bitsets
Svelto.ECS - Svelto ECS C# Entity Component System
null - Nullable Go types that can be marshalled/unmarshalled to/from JSON.
column - High-performance, columnar, in-memory store with bitmap indexing in Go
trie - Data structure and relevant algorithms for extremely fast prefix/fuzzy string searching.
CSharpECSComparison - Comparison chart for C# ECS solutions/frameworks
hyperloglog - HyperLogLog with lots of sugar (Sparse, LogLog-Beta bias correction and TailCut space reduction) brought to you by Axiom
shipyard - Entity Component System focused on usability and flexibility.