Skip to content

2.15

Latest

Choose a tag to compare

@Quillraven Quillraven released this 29 Aug 19:00
· 12 commits to master since this release

This is the first release since a long time with a breaking change. The focus on this version was mainly performance/memory management. For a longer explanation, check out the discussion.
For more details refer to the new EntityRef wiki entry.

Changelog:

  • NEW: new EntityRef to store a stable reference to an Entity in a component. Unlike a raw Entity, an EntityRef becomes invalid when the referenced entity is removed from the world, allowing safe detection of stale references. Added getRef to Entity as well as null-safe isValid and isNotValid helpers on EntityRef
  • NEW: add sparse set implementation (SparseEntityBag) for better family performance
  • UPDATE: make Entity a value class again and remove the version field; invalidation of removed entities is now handled via EntityRef instead
  • UPDATE: add safety that the fixed time step of an IntervalSystem cannot be zero or negative
  • UPDATE: use kotlinx-atomicfu to generate component ids atomically in a thread-safe way
  • UPDATE: refactor build configuration from buildSrc to a separate build-logic and update to a minimum of JDK 17
  • UPDATE: update following versions
    • Gradle 9.7.1
    • Kotlin 2.4.10
    • kotlinx-benchmark: 0.4.17
    • kotlinx-serialization: 1.11.0
    • Dokka: 2.2.0
    • kotlinx-atomicfu: 0.33.0