Skip to content

Releases: SanderMertens/flecs

Flecs v.2.4.8

19 Nov 02:53
Compare
Choose a tag to compare

This version includes the following bugfixes:

  • Fix index in query table cache when table is unmatched
  • Fixed group_by signature

This version includes the following improvements:

  • Add const variants to flecs::ref

Known issues:
#569
#701

Flecs 2.4.7

18 Sep 20:25
75641bc
Compare
Choose a tag to compare

This version includes the following bugfixes:

  • fixed issue where OnSet system would trigger for the wrong wildcard pair
  • fixed issue where observer would trigger for the wrong wildcard pair
  • fixed issue where observer would trigger for the wrong entity

Known issues:

  • UnSet systems with wildcards only trigger for one matching component (addressed in v3)

Note that this is a v2 release that is behind master! Only use this if you cannot migrate to v3 or need API stability

Flecs v3.0.1-alpha

27 Aug 22:45
Compare
Choose a tag to compare
Flecs v3.0.1-alpha Pre-release
Pre-release

This is the first v3.0 alpha release. This release gets rid of deprecated features, simplifies the API and code structure, and has a number of internal improvements. For a list of changes, see:
https://github.com/SanderMertens/flecs/discussions

This is the first of a number of v3.0 alpha releases that may have breaking API changes. If you need a stable API, use the last stable 2.4 release:
https://github.com/SanderMertens/flecs/releases/tag/v2.4.6

Known issues:

  • cmake file for examples needs to be updated

Flecs 2.4.6

27 Aug 16:07
df399a0
Compare
Choose a tag to compare

This version includes the following bugfixes:

  • Fixed potential memory corruption when using switch columns

Flecs 2.4.5

27 Aug 07:18
a5f8df6
Compare
Choose a tag to compare

This version includes the following improvements:

  • Added comment to amalgamated file to remove flecs_STATIC when using as DLL

This version includes the following bugfixes:

  • Fix issue with moving filters in C++ API
  • Fix issue with creating snapshots from stage
  • Fixed std::is_empty() typo in C++ iterator code

Flecs 2.4.4

20 Aug 18:16
6bc8bb0
Compare
Choose a tag to compare

This version includes the following improvements:

  • Added overview diagram to quickstart

This version includes the following bugfixes:

  • Fix issue with using term() after arg() in filter builder
  • Fix memory leak when registering entity twice for the same alias with ecs_use

Flecs 2.4.3

18 Aug 03:30
9c845fc
Compare
Choose a tag to compare

This version includes the following improvements:

  • Include tracing level 1 by default in release builds
  • Added function (ecs_tracing_color_enable) to disable colors in tracing

This version includes the following bugfixes:

  • Fixed issue with queries and large numbers of terms
  • Fixed issue with registering namespaced components with explicit ids (entity::component<T>)
  • Fixed issue with emplace on entities with non-trivial component destructors
  • Fixed issue that prevented enabling tracing in release mode

Flecs 2.4.2

16 Aug 04:56
5719c63
Compare
Choose a tag to compare

This version includes the following improvements:

  • Enabled filter builder to create filters with any number of terms

This version includes the following bugfixes:

  • Fixed issue with creating filters with more than 8 terms
  • Fixed issue with creating filter & term iterators from a stage
  • Fixed issue with using ecs_get_object (and ecs_get_parent) from stage

Flecs 2.4.1

15 Aug 03:55
e1e3789
Compare
Choose a tag to compare

This version includes the following bugfixes:

  • Fixed issue with resolving shared component entity when entity has more than one base
  • Fixed issue with getting switch case when in staged mode

Flecs 2.4

13 Aug 07:13
8e9997f
Compare
Choose a tag to compare

Finally! 🎉

The highlights of the release are:

  • The first feature-complete implementation of entity relationships in any ECS framework
  • Removal of dependency on STL data structures, improving compile times & reducing API footprint
  • New sokol-style creation functions in C API for entities, components, queries, systems and more
  • New fluent-style builder classes in C++ for creation of queries, systems and more
  • A new and improved query DSL (domain specific language) with full support for custom relationships
  • Improved features for responding to events with triggers & observers
  • A novel search data structure for archetypes & relations which speeds up things across the board:
    • Filters evaluate much faster, even though they can be much more complex than before
    • Improved speed of matching tables to queries
    • Operations like ecs_get, ecs_has and get_object are now constant time
    • Improved performance of scope iterators
    • Improved performance of fetching components from base entities & instantiating from base entities
    • Improved performance of ecs_lookup family of functions

Breaking changes:
This release introduces a number of minor breaking changes when compared with the last 2.3.2 release. A non-exhaustive lists of breaking changes is provided here and may be extended later:

  • The EcsName component is changed to an EcsIdentifier relation which is instantiated with EcsName and EcsSymbol tags
  • Component destructors are now called on the source component after moving between archetypes
  • The ecs_get_object function no longer accepts a component to find an object for a relation, but an index to find the nth object for a relation
  • The group_by callback signature have been modified to allow for a context
  • The system/query APIs have been updated to a fluent-style builder pattern
  • The C++ API no longer uses STL data structures, which in practice means that code that relied on functions returning an std::string may have to be updated.
  • Most legacy syntax constructs of the query DSL have been removed
  • Removal of CHILDOF and INSTANCEOF roles (use the builtin ChildOf and IsA relations instead)
  • include and exclude filter fields are no longer supported (use new filter API)
  • entity::each(Func&&) now expects a function that accepts a flecs::id instead of a flecs::entity

This was a large release! A few random facts:

I'm skipping the full list of features/improvements/bugs for now as it's a lot, may add it later.

For the next 2 - 3 months the master branch will be used to migrate to the v3 APIs. If you need API stability, stay on the last v2 release until the official v3 release. There will be intermediate releases that allow for a more gradual upgrade path to the new v3 APIs.