Decs

screenshot of Decs

High performance Entity/Component/System library.

Overview:

The decsHigh performance data oriented Entity/Component/System library is inspired by the way Unity's ECS handles memory. It stores entities in a contiguous structure of arrays per entity signature. The library uses a memory model similar to Unity's ECS, where entities are grouped by their "archetype" (which is determined by the components they have). Each archetype has a list of blocks, each containing entities with the same components. The library is designed for parallel execution and offers a "perfect" memory model for high performance data-oriented design.

Features:

  • Parallel Execution: The library is designed for easy parallelized iteration with C++ 17 parallel algorithms.
  • Perfect Memory Model: Component data is stored in a contiguous structure of arrays fashion, allowing for SIMD or memcopying of component data. Component alignment, constructor, and destructors are respected.
  • Block Iteration: The library allows for branchless execution and data-oriented existence processing through block iteration.
  • Dynamic Component Matching: Components do not need to be registered, and matching can be done across different dynamic-link libraries as long as typeid hashes are equal.
  • Negative and Positive Component Querying: The library supports querying for both the presence and absence of components.
  • Multithreaded Iteration: It is possible to iterate from multiple threads simultaneously.

Summary:

The decsHigh performance data oriented Entity/Component/System library is a high-performance ECS library inspired by Unity's ECS. It offers a memory model similar to Unity's ECS and is designed for parallel execution. The library provides features such as a perfect memory model, block iteration, dynamic component matching, and multithreaded iteration. While the library is still a work in progress and under constant changes, it offers a promising solution for those looking for a performance-focused ECS implementation.