Skip to content

Releases: T3mps/Astra

Astra 2.0.0

24 Aug 09:50
1bc8ffc

Choose a tag to compare

Astra ECS v2.0 - System Scheduling, Parallel Execution & Advanced Architecture

🎉 Major Release Highlights

Astra 2.0 is a massive update introducing system scheduling, parallel execution, command buffers, batch operations, and a complete architectural overhaul for production-ready performance.

New Parallel Performance

  • 17x speedup on 20 cores for single component iteration
  • ParallelForEach with automatic work distribution across cores
  • Thread-safe chunk-based parallelization

🚀 Major New Features

System Scheduling Architecture (NEW)

  • SystemScheduler class for organizing and executing ECS systems
  • Automatic parallelization based on component access patterns
  • Lambda system support with automatic Read/Write detection via const qualifiers
  • System traits for declaring component dependencies (Reads/Writes)
  • Custom executor interface for job system integration
  • Dependency analysis for safe parallel execution

Command Buffer Architecture (NEW)

  • Deferred operations for safe modifications during iteration
  • Thread-safe command recording from multiple sources
  • Batch command execution with minimal overhead
  • Entity remapping for cloning and prefab instantiation
  • Undo/redo support foundation

Parallel Execution in Views (NEW)

  • ParallelForEach method for automatic parallelization
  • Chunk-based work distribution for load balancing
  • Thread-safe iteration with per-chunk processing
  • Configurable executor support

Const Components in Views (NEW)

  • Type-safe const components - View<Position, const Velocity>
  • Compile-time enforcement preventing accidental modifications

Batch Component Operations (NEW)

  • AddComponentBatch for efficient bulk additions
  • RemoveComponentBatch for bulk removals

FlatSet Container (NEW)

  • Open-addressing hash set with cache-friendly layout
  • SIMD-accelerated lookups using metadata bytes
  • Swiss table algorithm for efficient probing

📦 Architectural Restructuring

Entity Management Overhaul

  • EntityManager with for entity orchestration/lifecycle
  • EntityTable for version lookups/state management
  • EntityIDStack managing free/recycled IDs

Archetype System Redesign

  • ArchetypeManager as central archetype controller
  • ArchetypeGraph for efficient archetype transitions
  • ArchetypeChunkPool for optimized chunk allocation/reuse

🛠️ Requirements

  • C++20 compatible compiler (GCC 11+, Clang 13+, MSVC 2022+)
  • Premake5 for project generation
  • Optional: GoogleTest, Google Benchmark

📝 License

MIT License - See LICENSE file for details


Full Changelog: v1.0.0...v2.0.0

Astra 1.0.0

17 Aug 02:08
6520ddf

Choose a tag to compare

Astra ECS v1.0 - High-Performance Entity Component System

🚀 Overview

Astra is a header-only Entity Component System (ECS) library for modern C++20, delivering high performance through archetype-based storage and aggressive optimization techniques.

⚡ Performance Highlights

  • ~1.04B entities/second single-component iteration (hot cache)
  • ~465M entities/second dual-component iteration
  • Sub-nanosecond per-entity overhead in tight loops
  • 2x faster batch entity creation vs individual creation

🎯 Key Features

Core Architecture

  • Archetype-based storage with automatic entity grouping by component composition
  • Structure-of-Arrays (SoA) layout for optimal cache utilization
  • 16KB chunk-based allocation aligned to modern CPU cache hierarchies
  • O(1) component access via direct ComponentID indexing

Advanced Capabilities

  • Relationship graphs - Hierarchical parent-child and bidirectional entity links
  • Query system with compile-time iteration optimizations
    • Optional components (Optional<T>)
    • Exclusion filters (Not<T>)
    • Any-of queries (Any<T...>)
    • One-of constraints (OneOf<T...>)
  • Memory defragmentation - Configurable chunk coalescing and archetype cleanup
  • Binary serialization with compression support (LZ4/ZSTD)
  • Cross-platform SIMD abstractions (SSE2/SSE4.2/AVX2/NEON)

🛠️ Requirements

  • C++20 compatible compiler (GCC 11+, Clang 13+, MSVC 2022+)
  • Premake5
  • Optional: GoogleTest for tests, Google Benchmark for benchmarks

📝 License

MIT License - See LICENSE file for details


Full Changelog: https://github.com/T3mps/Astra/commits/1.0.0