Skip to content

Releases: SanderMertens/flecs

Flecs v3.2.0

27 Mar 06:28
1c36f18
Compare
Choose a tag to compare

Release announcement

Flecs 3.2 is out!

Release notes

This version includes the following bugfixes:

  • Fix issue with batched set commands and emitting OnSet events
  • Fix issue where bitset iteration index could go out of bounds
  • Fix issue where ecs_get_target would try inheritance for relationship with DontInherit
  • Fix error in custom_phases_no_builtin C++ example
  • Fix issue in JSON serializer with large string values
  • Fix issue in JSON serializer with entity ids at offset
  • Fix potential crash in ecs_get_target_id_for
  • Correctly set ecs_iter_t::offset in component hooks
  • Fix issue with suspending deferred mode
  • Fix issue in cursor API with double assignment after dotmember
  • Fix issue in script parser with binary operator followed by component assignment
  • Fix issue with vectors in JSON serializer
  • Fix issue where comments inside value blocks didn't work correctly in Flecs script
  • Fix issue with setting name string that overlaps with existing name in deferred mode
  • Add missing implementation of ecs_rule_get_filter
  • Fix issue with command ordering when setting name after reparenting
  • Fix compilation issue with new version of emcc
  • Fix issue where event for multiple ids triggered for wrong entity
  • Fix issue where event for multiple ids triggered multiple times for same observer
  • Fix issue where id in table was not updated after calling ecs_set_entity_generation
  • Fix issue that prevents using ecs_get_target_for_id from stage
  • Fix issue with component registration across binaries in multithreaded applications
  • Fix memory leak in HTTP server
  • Fix issue with importing C module in multiple worlds
  • Fix component registration issue with binaries compiled by different compilers
  • Fix issue with component registration of world::vector
  • Correct for overshoot value when returning delta_system_time for interval systems

This version includes the following improvements:

  • [c] Add missing const qualifiers to query functions
  • [c] Add missing const qualifier to ecs_id_in_use
  • [c] Add ecs_get_parent convenience function
  • [cpp] Add flecs::rule::move method
  • [cpp] Don't assert when creating invalid rule, add flecs::rule::is_valid method
  • [cpp] Add flecs::entity_builder::set_alias method
  • [cpp] Add API for singleton pairs to flecs::world
  • [cpp] Ensure world is cleaned up when app().run() returns
  • [rules] Rule engine refactor
  • [rules] Improved support for Not, Optional, Or operators
  • [rules] Added support for fuzzy name matching
  • [rules] Added support for dependent terms
  • [rules] Added a query profiler for analyzing term performance
  • [rules] Many improvements to performance, VM, data structures, runtime
  • [rules] Add option to auto-match unresolved identifiers at query creation time by name
  • [rules] Add support for using any (_) variable as term source
  • [rules] Add support for queries that start with Not/Optional terms
  • [rules] Add support for transitive queries with any (_) target
  • [rules] Add support for transitive queries with self modifier for target
  • [rules] Allow for usage of relationships other than IsA for component inheritance
  • [rules] Add support for parsing variable values from argument string
  • [rules] Add performance optimization for trivial rule queries
  • [filters] Default to InOutNone if the term type is not known beforehand
  • [filters] Change interface for Or operator to allow for neighboring Or terms
  • [queries] Improve query sorting performance
  • [queries] Add assert on invalid order_by component id
  • [core] Implement relationship flattening
  • [core] Replace all remaining occurrences of ecs_vector_t with ecs_vec_t
  • [core] Cache (ChildOf, *) id record on world for improved performance
  • [core] Cache (Identifier, Name) id record on world for improved performance
  • [core] Add AlwaysOverride component property
  • [core] Ensure children of a prefab are also tagged as prefabs
  • [core] Add stricter check on adding properties to components that are already in use
  • [meta] Add conversion to cursor API from bool to int
  • [meta] Throw less confusing error in cursor API when assigning out of bounds element/member
  • [rest] Add validity checks on offset/limit parameters
  • [rest] Add functions to call REST API from C
  • [http] Implement request caching (replaces caching mechanism of REST API)
  • [doc] Fix conflicting declaration in quickstart example
  • [doc] Fix outdated code example in systems manual
  • [doc] Add build instructions to quickstart for cmake and bake
  • [doc] Fix incorrect link in README to prefab documentation
  • [doc] Add parent(), target_for() to query section of relationship manual
  • [doc] Expand explorer section of REST manual with query examples
  • [script] Add experimental support for loading managed scripts
  • [script] Add experimental support for assemblies
  • [script] Allow for setting nested members in expression
  • [script] Add support for deriving variable name from assigned member
  • [script] Add support for adding variables as components
  • [script] Make EXPR/META addon mandatory when using script addon
  • [script] Add support for using foo.* syntax
  • [script] Add support for module foo syntax
  • [script] Add Flecs script tutorial
  • [script] Add support for assigning singletons with $ :- Component{}
  • [log] Add ecs_log_get_level

Breaking Changes

  • The interface for creating queries with Or operators has changed (#466 (comment))
  • The ecs_vector_t type has been removed from the source and replaced with ecs_vec_t (#466 (comment))

Known issues

#844
#765
#714
#620
#478
#314

New Contributors

Full Changelog: v3.1.5...v3.2.0

Flecs v3.1.5

22 Feb 01:53
e9c5ddb
Compare
Choose a tag to compare

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

Flecs v3.1.4

26 Jan 01:46
5fc3e45
Compare
Choose a tag to compare

Highlights

Performance improved in this release for 116 in a total of 120 benchmarks! Here are a few of the most significant improvements between v3.0.0 and v3.1.4 (which also includes improvements from command batching & the observer cache):

Benchmark v3.0.0 v3.1.4 Difference
has_id 8.92ns 4.38ns +50.90%
get_id 7.18ns 3.69ns +48.61%
get_mut_id 12.22ns 7.35ns +39.85%
set_id 29.13ns 11.85ns +59.32%
add_remove_1_tag 20.43ns 17.63ns +13.71%
add_remove_cmd_16_tags 40.40ns 17.55ns +56.56% (command batching)
get_mut_cmd_16 47.17ns 18.65ns +60.46% (command batching)
create_delete_tree_depth_10 19.27us 8.24us +57.25%
emit_propagate_depth_10 1.52us 194.33ns +87.25% (observer cache)
query_iter_16_tags_4_terms 56.39ns 26.15ns +53.63%

Release notes

This version includes the following bugfixes:

  • Ensure HAVE_EXECINFO is defined on all platforms
  • Fix compilation issue on clang 16 (thanks @gorilux!)
  • Add missing flecs_cpp.c to the meson build file
  • Fix issue where non-instanced query with multiple traversal terms did not match entities
  • Fix broken links in documentation
  • Remove <strong></strong> from documentation markdown headers
  • Fix issue where atomic id generation was used without threading
  • Fix issue where flecs::ref would store stage instead of world
  • Fix assert in observer cache after deleting parent with relationship to child
  • Fix issue with passing string to ecs_set_name that overlaps with current name
  • Fix compile error when passing existing object to set<R, T>
  • Fix memory corruption when using ecs_bulk_init with existing table
  • Fix command batching issue with adding ChildOf pair while removing name

This version includes the following improvements:

  • [core] Require entities to be alive for ECS operations
  • [core] Deferred ecs_get_mut_id now returns reference to actual component if it exists (thanks @dmlary!)
  • [c] Add matching *_DECLARE convenience macro's for each *_DEFINE macro
  • [cpp] Add world::get_ref
  • [docs] Lots of small improvements to documentation (thanks @copygirl!)
  • [docs] Move build instructions from README to Quickstart
  • [docs] Improve build instructions for gcc/clang on Windows
  • [ux] Add example for entity::emplace
  • [internals] Faster map implementation that no longer stores a variable size payload
  • [internals] Use array vs. sparse set to lookup id records with low ids
  • [internals] Replace usage of ecs_vector_t in sparse set with faster ecs_vec_t
  • [internals] Add new/faster sparse set operations that assume id is alive
  • [internals] Cleanup sparse set API
  • [internals] Replace code of ecs_has_id with faster implementation
  • [internals] Remove redundant code from table graph operations
  • [internals] Improve performance of defer/suspend mechanism
  • [internals] Improve performance of pipelines queries by adding self flag to System term

Breaking Changes:

  • Entities now must be alive before using with ECS operations (#466 (comment))
  • Deferred get_mut now returns pointer to existing component (#466 (comment))

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

New Contributors

Full Changelog: v3.1.3...v3.1.4

Flecs v3.1.3

28 Dec 23:38
ddf4dfc
Compare
Choose a tag to compare

Highlights

Release notes

This version includes the following bugfixes:

  • Fix issues with looking up numerical ids from scope (e.g. foo::bar::100)
  • Fix issue where reachable cache invalidation would not iterate all ids
  • Fix issue with parsing entity path that can't fit in 32bit int
  • Fix issue where filter with self term is created before id
  • Fix issue where id records were incorrectly deleted for ecs_remove_all/ecs_delete_with
  • Fix issue with adding ChildOf pair and deferred ecs_entity_init
  • Fix issues with updating EcTableHasObserved flag (fixes reachable cache asserts)
  • Fix issue where id record could not get cleaned up correctly (fixes reachable cache asserts)
  • Add move hook to Pipeline component (fixes segfault when using multiple pipelines)

This version includes the following improvements:

  • [entities] Use empty separator string to prevent tokenization of name in ecs_entity_init
  • [cpp] Add const to query class methods
  • [cpp] Add const to iterable class methods
  • [cpp] Add emplace_override for pairs
  • [queries] Prevent query rematching from happening more than once per query/frame
  • [pipelines] Prevent adding empty operation at end of schedule
  • [table] Support calling ecs_table_get from stage
  • [units] Add units for hyperlinks, images and files
  • [units] Add Length::Pixel unit
  • [docs] Add doxygen headers to source and include files
  • [docs] Add edcs_get_depth, entity_view::depth, ecs_table_get_depth, table::depth functions
  • [docs] Add doxygen documentation
  • [docs] Replace old flecs.dev site with doxygen generated one
  • [docs] Remove dead links to docsforge pages
  • [docs] Add instructions for how to fix compilation errors related to time/socket functions
  • [ux] Improved C/C++ APIs for working with tables
  • [ux] Remove redundant tracing when component is reregistered
  • [ux] Throw assert when trying to delete entity/component that is still queried for
  • [internals] Move code out of query iterator in preparation of union/bitset support for filters
  • [internals] Remove redundant relationship traversal call from table edge creation code

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

Flecs v3.1.2

14 Dec 10:01
784c994
Compare
Choose a tag to compare

Highlights

  • The Flecs explorer can now edit component values!
  • Systems can now be registered with an OnStart phase which is ran only in the first frame

Release notes

This version includes the following bugfixes:

  • Fix issue with C++ bitmask binding (type must now inherit from flecs::bitmask)
  • Fix issue where use_low_id was not set by ECS_COMPONENT
  • Fix issues with invoking ctor/move/dtor when merging tables
  • Fix issue where observer could be invoked for wrong table
  • Fix invalid read in multithreaded app after pipeline rebuild
  • Fix race condition between pipeline worker and no_readonly system
  • Fix issue where term with wildcard pair & self flag would not iterate all permutations
  • Fix issue where get_mut<First, Second> would always return First*

This version includes the following improvements:

  • [cpp] Add missing const to flecs::world methods
  • [cpp] Add missing const to flecs::entity_view methods
  • [cpp] Change argument type of run_pipeline to flecs::entity_t
  • [cpp] Add observer::query method
  • [pipeline] Refactor of pipeline code
  • [pipeline] Add OnStart phase for systems that are ran only at startup
  • [rest] Add set endpoint for remotely setting component values
  • [rest] Add delete endpoint for remotely deleting an entity
  • [internals] Add debugging instrumentation to allocator
  • [internals] Remove redundant code
  • [internals] Add missing tests for get pair operations
  • [internals] Split off entity filter code (union relationships/bitsets) from query iterator code

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

Flecs v3.1.1

01 Dec 07:59
8f3a4bc
Compare
Choose a tag to compare

Highlights

  • Observer refactor with new hierarchy cache that can improve event propagation performance up to 200x
  • Systems are now excluded from a schedule when their module or phase is disabled
  • Single threaded systems are now guaranteed to run on main thread
  • New journaling addon

Release notes

This version includes the following bugfixes:

  • Fixed issue with page/worker iterators and InOutNone
  • Fixed issue with invoking on_add hooks when using ecs_bulk_init
  • Fixed issue with searching for union relationships
  • Fixed C++ enum relationships on Apple Clang 14
  • Fixed issue with batched deferred emplace and remove
  • Fixed issue where ctx/binding_ctx was not set for multithreaded systems
  • Fixed race condition with no_readonly systems in multithreaded apps
  • Fixed issue where pipeline would resume at incorrect point in schedule after merge
  • Fixed issue with batched clear commands
  • Fixed issue where auto-overriding components would write to wrong component
  • Fixed issue with parsing template name in module
  • Fixed assert during deferred component registration in multithreaded app
  • Fixed leak in pipeline cleanup
  • Fixed issues with sending valid preflight response in HTTP server
  • Prevent sending response to invalid socket
  • Don't call send on socket when reply has no data
  • Fixed issue with setting symbol on entity with IsA relationship
  • Fixed issue with observer that has multiple fixed sources
  • Fixed escaping issue in doc strings in JSON serializer
  • Fixed issue where serialized path of core entity was not relative to root
  • Fixed HTTP socket leak, add timeout to connection socket
  • Replaced incorrect cast to float to ecs_ftime_t in system addon
  • Fixed issue with flecs::filter move assignment

This version includes the following improvements:

  • [c++] Add support for run callback to C++ observers
  • [c++] Add typed method for getting iterator ctx in C++ API
  • [c++] Add support for run callback to C++ systems
  • [c++] Add .term<R>(string) and .term(R, string) overloads to filter builder
  • [c++] Add shorthand with/without methods to filter builder API
  • [c++] Add pair support to emplace
  • [c++] Add pair support for flecs::ref
  • [c++] Ensure set, set_override use move for pairs where possible
  • [journal] Implement journaling addin
  • [queries] Improve performance of query rematching
  • [filters] Allow for creation of named filters/rules
  • [filters] Cache id record on filter terms for faster matching
  • [rules] Enable overriding transitive behavior with self flag
  • [observers] Refactor observer code for improved event propagation performance
  • [observers] Implement reachable id cache to improve event performance of adding relationships
  • [pipeline] Add doc name to pipeline schedule tracing
  • [pipeline] Exclude systems from pipeline with disabled phase/disabled module
  • [pipeline] Run single threaded systems on main thread
  • [iterator] Add ecs_iter_first function
  • [query DSL] Add query DSL support for specifying flags for (r, t) notation
  • [commands] Reduce lookups during command batching (performance improvement)
  • [storage] Reduce overhead of table graph edges, improve table creation speed
  • [stats] Always use double for metric types to avoid precision issues
  • [stats] Add REST and HTTP statistics
  • [units] Add frequency units
  • [rest] Add endpoint for requesting results of existing query
  • [rest] Add endpoint for enabling/disabling entities
  • [rest] Add caching for named query requests
  • [rest] Start/stop HTTP servers when enabling/disabling REST module
  • [http] Send HTTP headers in send thread
  • [http] Improve response times and handling of HTTP preflight requests
  • [http] Always use double precision for time values in HTTP server
  • [doc] Add system examples
  • [doc] Update C++ examples with simplified query variable syntax
  • [doc] Add example to show how to forward declare component/tag variables
  • [doc] Fix typos in manuals
  • [doc] Add custom phase example that does not use builtin phases
  • [doc] Remove outdated reference to ecs_scope_iter
  • [doc] Replace flecs::entity with flecs::entity_t in C++ order_by example
  • [doc] Improve pipeline section of manual
  • [doc] Add observer examples for C/C++
  • [ux] Improve error message for conflicting symbols during implicit component registration
  • [build] Improve directory structure of cmake build to match visual studio
  • [build] Improve bazel build to support .inl files
  • [internals] Don't free chunks in flecs_sparse_clear (performance improvement)
  • [internals] Use faster sparse set function in table event batching admin
  • [internals] Replace map with faster sparse set in generic allocator
  • [internals] Use faster storage for id records in low id range
  • [internals] Inline type_info sparse set

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

Flecs v3.1.0

15 Oct 21:56
3745586
Compare
Choose a tag to compare

Release announcement

Flecs 3.1 is out!

Release notes

This version includes the following bugfixes:

  • Fixed issue with terms that had Not operator in combination with relationship traversal
  • Fixed issues in C++ API where component hooks could get reregistered across DLLs
  • Fixed issue in queries with shared components and change detection
  • Fixed issue in queries with fixed source terms and change detection
  • Fixed issue in sparse set with bulk id generation and recycling
  • Fixed issues with using emplace and commands
  • Fixed issue in group_by example so it always returns alive entity identifier
  • Fixed issue in pipeline with no_staging system after inactive system
  • Fixed issue with instanced queries and nested iter calls
  • Fixed issue where using observer with multiple components would crash when setting ctx and ctx_free
  • Fixed issue where ecs_ref_t would do more lookups than necessary
  • Fixed C++ issue with overriding a prefab child that was associated with a type
  • Fixed missing call to move hook when moving entity in table
  • Fixed double free for moved-away from component
  • Fixed leak where world was not destroyed when using app::run
  • Fixed table lock assert when adding component in observer during merge
  • Fixed crash when OnRemove observer adds component to deleted entity
  • Fixed issue with using ecs_add_path when path is root
  • Fixed issue with assigning the same name to an entity after reparenting
  • Fixed JSON crash on union pair with invalid target
  • Fixed crash where no_staging system activated at end of schedule
  • Fixed leak when multithreaded pipeline rebuilt after running the last system
  • Fixed issue where HTTP server would write to memory of purged connection
  • Fixed issue where observer would not restore iterator state for next observer
  • Fixed issues with redefining addon macro's
  • Fixed issues with parsing identifiers that start with _ in ECS_STRUCT
  • Fixed issues with parsing pointer types in ECS_STRUCT

This version includes the following improvements:

  • [c] Added ecs_children / ecs_children_next functions for iterating an entity's children
  • [c++] Added entity_view::parent function (shorthand for target(flecs::ChildOf)
  • [c++] Made calling world::module in module constructor optional
  • [c++] Added each/iter overloads that accept a stage
  • [c++] Allow module entity to be retrieved using world::entity / world::component
  • [threading] Allowed using the world (vs. stage) in single threaded system running in multi threaded apps
  • [commands] Command batching, which reduces archetype moves for entities when doing deferred operations
  • [entity DSL] Improved syntax
  • [entity DSL] Added entity DSL examples
  • [entity DSL] Added support for multiline strings
  • [entity DSL] Added support for anonymous entities
  • [entity DSL] Added variable support (reusable values)
  • [entity DSL] Added support for using simple arithmetic expressions
  • [entity DSL] Implemented a vscode extension for DSL syntax highlighting
  • [os api] Added function to get OS API struct (for easier support in language bindings)
  • [queries] Added ability to add user-defined context to query groups
  • [queries] Added assert on invalid usage of Filter in combination with queries
  • [queries] Added ecs_query_next_table for fast iteration where only tables are needed
  • [queries] Improved performance/cleanup technical debt of query change detection
  • [queries] Added ecs_query_get_group_info function
  • [observers] Added EcsFilter/flecs::Filter term flag for terms only for filtering, not receiving events
  • [observers] Added level 3 trace that shows which observers are invoked
  • [pipeline] Improved detection of sync points, correctly handle wildcard queries
  • [pipeline] Always insert sync point after no_staging system to ensure schedule consistency
  • [stats] Added FLECS_ACCURATE_COUNTERS for tracking allocation counters in multithreaded apps
  • [stats] Added new statistics for allocators, events and performance tracking
  • [stats] Organized statistics into categories
  • [stats] Improved system time measurement so it no longer includes merge time
  • [stats] Fixed issue where measuring system time for last part of schedule could be skipped
  • [stats] Use 64bit counters to reduce occurrences of stat overflows
  • [stats] Ensure counter metrics are monotonically increasing in case of overflow
  • [rest] Added brief descriptions to stats endpoints for improved visualization in explorer
  • [http] Don't enqueue requests for connections that are no longer alive
  • [http] Don't keep HTTP connection open longer than timeout
  • [http] Set timeout on connection receive socket
  • [http] Set SO_KEEPALIVE on connection socket so server is notified when client drops connection
  • [http] Implement send queue to prevent blocking on main thread when sending reply
  • [http] Fixed issue with sending replies without payload
  • [ux] Throw assert when component id overlaps with reserved bits for id flags
  • [ux] Added typename to invalid ctor/dtor error messages
  • [ux] Added assert when attempting to use ecs_bulk_init on stage
  • [internals] Reduced number of heap allocations with internals now mostly using custom allocators
  • [internals] Allow for overriding of ECS_HI_COMPONENT_ID macro
  • [internals] Allow for overriding of ECS_ID_CACHE_SIZE macro
  • [internals] Reduced bits reserved for id flags from 8 to 4
  • [internals] Improved detection of platforms where execinfo/backtrace is not available
  • [internals] Improved strbuf API so it relies less on strlen
  • [internals] Improved performance of flecs_sparse_clear

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

Flecs v3.0.4

31 Aug 14:07
d4f681b
Compare
Choose a tag to compare

This version includes the following bugfixes:

  • Fixed issue where system created with each was not automatically instanced
  • Fixed copy/paste error in term::read function that set the wrong inout kind
  • Fixed issue that prevented deferring an emplace with types that had no default ctor
  • Fixed issue that prevented on_add hook to be called for emplace
  • Fixed issue where move_ctor wasn't called when merging deferred emplace
  • Fixed issue where fps or thread count was overwritten when calling ecs_app_run
  • Fixed issue where name prefix wasn't reset after bootstrap
  • Fixed issue where union relationship wasn't properly initialized for prefab child
  • Fixed various issues with using mingw
  • Fixed wrong escaping of pipe symbol in documentation
  • Fixed issues with enum reflection on clang and Windows
  • Fixed issue with instantiating prefab children that are associated with root type
  • Fixed issue where name lookup would fail after resetting name to NULL

This version includes the following improvements:

  • Added constructor to flecs::query for creating named queries
  • Rewrote outdated parts of "designing with flecs"
  • Improved performance of ecs_count_id
  • Improved performance of queries/observers that do relationship traversal
  • Added query section to relationship manual
  • Stats addon types now use customizable float type (ecs_float_t)
  • Improved error message when using union relationship in C++ query signature
  • Added overload for set_override where 1st element of pair is a tag
  • Improved conversion logic of meta cursor API
  • Improved documentation of ecs_new_id / ecs_new_low_id
  • Updated outdated JSON examples
  • Added entity::get_mut_second
  • Improved performance of ecs_set

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

Flecs v3.0.3

16 Aug 05:27
57af483
Compare
Choose a tag to compare

This version includes the following bugfixes:

  • Fixed bug where constructor was not called for explicitly registered component in multi world C++ application
  • Fixed bug with change detection and queries with OR terms

This version includes the following improvements:

  • Fixed broken links and typos in documentation
  • Added links to demos and blogs to README
  • Remove redundant includes
  • Remove redundant assignment in sparse set code
  • New group_by example

This version includes the following new features:

Breaking changes:

  • Fixed inconsistencies in naming between fields and terms: #466 (comment)

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

Flecs v3.0.2

08 Aug 07:48
4475088
Compare
Choose a tag to compare

This version includes the following bugfixes:

  • Fixed symbol export issues when using reflection convenience macro's like ECS_STRUCT
  • Fixed bug that prevented inheriting from entities with a symbol identifier
  • Fixed issue that could cause crash when creating tables with OVERRIDE or TOGGLE

This version includes the following improvements:

  • Improved error messages when using stage outside of readonly context
  • Several improvements that enable interop between C modules and C++
  • Added more prefab examples
  • DontInherit property is now respected when instantiating prefab children
  • Transfer ownership of world to app framework in C++ so it can be used in webasm builds

This version includes the following new features:

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