Sander Mertens/flecs: Release v3.1.5

Name: flecs

Owner: Sander Mertens

Release: Flecs v3.1.5

Released: 2023-02-22

License: NOASSERTION

Release Assets:

Highlights

  • A big upgrade to the reflection framework which can now serialize/deserialize custom (including STL) types!
  • New functions to serialize & deserialize a world to & from JSON
  • Improved performance of iterating queries with tag fields (+30-50%)
  • Improved performance of table creation in apps with lots of cached queries (+70-90%)
  • Improved performance of notifying multiple observers for the same event (+20-30%)

Release notes

This version includes the following bugfixes:

  • Fix issue where symmetric relationship would be cleaned up before its observer
  • Fix issue in debug mode where entity generation check could use wrong index in dense array
  • Fix issue where on_set hook was not called before observers during command batching
  • Changed incorrect return type of ecs_id_is_tag to bool
  • Ensure destructor is called on moved away from value in command queue
  • Fix memory leaks when using a global flecs::world object
  • Ensure destructor is called on moved away from column when merging tables
  • Fix lambda compilation issue when using Visual Studio 2017

This version includes the following improvements:

  • [core] Allow for ecs_ensure to be called from stage
  • [core] Add Traversable property to allow for relationships that are acyclic but not traversable
  • [core] Only apply DontInherit property to IsA traversal
  • [meta] Serialization & deserialization support for opaque types
  • [meta] Add methods for deserializing values & entities to C++ API
  • [json] Add option to JSON serializer to serialize all contents of a matched table
  • [json] Add functions for serializing/deserializing world to/from JSON
  • [observers] Improve performance of invoking multiple observers for the same event
  • [queries] Improve detection and handling of query terms without data
  • [cpp] Remove redundant world argument from flecs::entity constructor in id::second()
  • [cpp] Add begin/end methods to flecs::type so it can be iterated
  • [cpp] Add entity::view method for safe upcast from staged flecs::entity object
  • [cpp] Automatically disable enum reflection for compilers that don't support it
  • [docs] Improve documentation of get_mut
  • [docs] Rewrite of the FAQ
  • [docs] Add query example for singletons, add singleton section to quickstart
  • [ux] Add assert when not using stage when creating iterator in multi threaded world
  • [internals] Use observers for notifying queries of new tables
  • [internals] Improve performance of ecs_bulk_init by using faster function to update entity index
  • [internals] Implement small utility API for parsing JSON strings

Breaking Changes:

Known issues: https://github.com/SanderMertens/flecs/issues/844 https://github.com/SanderMertens/flecs/issues/765 https://github.com/SanderMertens/flecs/issues/714 https://github.com/SanderMertens/flecs/issues/620 https://github.com/SanderMertens/flecs/issues/478 https://github.com/SanderMertens/flecs/issues/314

New Contributors

Full Changelog: https://github.com/SanderMertens/flecs/compare/v3.1.4...v3.1.5

To top