Skip to content

Flecs v3.1.5

Compare
Choose a tag to compare
@SanderMertens SanderMertens released this 22 Feb 01:53
· 1132 commits to master since this release
e9c5ddb

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:

  • Inconsistencies in the naming of JSON deserialization functions have been fixed (#466 (comment))
  • The behavior of the Acyclic property has been split up into an Acyclic and Traversable property (#466 (comment))

Known issues:
#844
#765
#714
#620
#478
#314

New Contributors

Full Changelog: v3.1.4...v3.1.5