Releases: SanderMertens/flecs
Flecs v3.2.0
Release announcement
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 withDontInherit
- 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 missingconst
qualifiers to query functions[c]
Add missingconst
qualifier toecs_id_in_use
[c]
Addecs_get_parent
convenience function[cpp]
Addflecs::rule::move
method[cpp]
Don't assert when creating invalid rule, addflecs::rule::is_valid
method[cpp]
Addflecs::entity_builder::set_alias
method[cpp]
Add API for singleton pairs toflecs::world
[cpp]
Ensure world is cleaned up whenapp().run()
returns[rules]
Rule engine refactor[rules]
Improved support forNot
,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 withself
modifier for target[rules]
Allow for usage of relationships other thanIsA
for component inheritance[rules]
Add support for parsing variable values from argument string[rules]
Add performance optimization for trivial rule queries[filters]
Default toInOutNone
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 invalidorder_by
component id[core]
Implement relationship flattening[core]
Replace all remaining occurrences ofecs_vector_t
withecs_vec_t
[core]
Cache(ChildOf, *)
id record on world for improved performance[core]
Cache(Identifier, Name)
id record on world for improved performance[core]
AddAlwaysOverride
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 onoffset
/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]
Addparent()
,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]
MakeEXPR
/META
addon mandatory when using script addon[script]
Add support forusing foo.*
syntax[script]
Add support formodule foo
syntax[script]
Add Flecs script tutorial[script]
Add support for assigning singletons with$ :- Component{}
[log]
Addecs_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 withecs_vec_t
(#466 (comment))
Known issues
New Contributors
- @SaadiqDaniels made their first contribution in #933
- @icolwell made their first contribution in #937
- @benjitrosch made their first contribution in #944
Full Changelog: v3.1.5...v3.2.0
Flecs v3.1.5
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
tobool
- 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 forecs_ensure
to be called from stage[core]
AddTraversable
property to allow for relationships that are acyclic but not traversable[core]
Only applyDontInherit
property toIsA
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 fromflecs::entity
constructor inid::second()
[cpp]
Addbegin/end
methods toflecs::type
so it can be iterated[cpp]
Addentity::view
method for safe upcast from stagedflecs::entity
object[cpp]
Automatically disable enum reflection for compilers that don't support it[docs]
Improve documentation ofget_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 ofecs_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 anAcyclic
andTraversable
property (#466 (comment))
Known issues:
#844
#765
#714
#620
#478
#314
New Contributors
- @BeanCheeseBurrito made their first contribution in #923
- @Thinkofname made their first contribution in #928
Full Changelog: v3.1.4...v3.1.5
Flecs v3.1.4
Highlights
- Performance improvements for many core ECS operations! 🎉 (see below)
- A new benchmark suite with more than 100 tests: https://github.com/SanderMertens/ecs_benchmark
- Changes made to an existing component with a deferred
get_mut
are now immediately visible to systems & otherget_mut
calls (#466 (comment))
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]
Deferredecs_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]
Addworld::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 forentity::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 ofecs_vector_t
in sparse set with fasterecs_vec_t
[internals]
Add new/faster sparse set operations that assume id is alive[internals]
Cleanup sparse set API[internals]
Replace code ofecs_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 addingself
flag toSystem
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
- @copygirl made their first contribution in #902
- @gorilux made their first contribution in #906
- @dmlary made their first contribution in #908
Full Changelog: v3.1.3...v3.1.4
Flecs v3.1.3
Highlights
- New documentation website!
- Query rematching performance improvements
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 deferredecs_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 inecs_entity_init
[cpp]
Add const to query class methods[cpp]
Add const to iterable class methods[cpp]
Addemplace_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 callingecs_table_get
from stage[units]
Add units for hyperlinks, images and files[units]
AddLength::Pixel
unit[docs]
Add doxygen headers to source and include files[docs]
Addedcs_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
Flecs v3.1.2
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 byECS_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 returnFirst*
This version includes the following improvements:
[cpp]
Add missingconst
toflecs::world
methods[cpp]
Add missingconst
toflecs::entity_view
methods[cpp]
Change argument type ofrun_pipeline
toflecs::entity_t
[cpp]
Addobserver::query
method[pipeline]
Refactor of pipeline code[pipeline]
AddOnStart
phase for systems that are ran only at startup[rest]
Addset
endpoint for remotely setting component values[rest]
Adddelete
endpoint for remotely deleting an entity[internals]
Add debugging instrumentation to allocator[internals]
Remove redundant code[internals]
Add missing tests forget
pair operations[internals]
Split off entity filter code (union relationships/bitsets) from query iterator code
Flecs v3.1.1
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 usingecs_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
toecs_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 shorthandwith
/without
methods to filter builder API[c++]
Add pair support toemplace
[c++]
Add pair support forflecs::ref
[c++]
Ensureset
,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 withself
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]
Addecs_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 usedouble
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 toecs_scope_iter
[doc]
Replaceflecs::entity
withflecs::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 inflecs_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
Flecs v3.1.0
Release announcement
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
andctx_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
_
inECS_STRUCT
- Fixed issues with parsing pointer types in
ECS_STRUCT
This version includes the following improvements:
[c]
Addedecs_children
/ecs_children_next
functions for iterating an entity's children[c++]
Addedentity_view::parent
function (shorthand fortarget(flecs::ChildOf)
[c++]
Made callingworld::module
in module constructor optional[c++]
Addedeach
/iter
overloads that accept a stage[c++]
Allow module entity to be retrieved usingworld::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 ofFilter
in combination with queries[queries]
Addedecs_query_next_table
for fast iteration where only tables are needed[queries]
Improved performance/cleanup technical debt of query change detection[queries]
Addedecs_query_get_group_info
function[observers]
AddedEcsFilter
/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 afterno_staging
system to ensure schedule consistency[stats]
AddedFLECS_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]
SetSO_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 useecs_bulk_init
on stage[internals]
Reduced number of heap allocations with internals now mostly using custom allocators[internals]
Allow for overriding ofECS_HI_COMPONENT_ID
macro[internals]
Allow for overriding ofECS_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]
Improvedstrbuf
API so it relies less onstrlen
[internals]
Improved performance offlecs_sparse_clear
Flecs v3.0.4
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 foremplace
- Fixed issue where
move_ctor
wasn't called when merging deferredemplace
- 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
Flecs v3.0.3
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:
- Group iterators (https://github.com/SanderMertens/flecs/tree/master/examples/cpp/queries/group_iter)
Breaking changes:
- Fixed inconsistencies in naming between fields and terms: #466 (comment)
Flecs v3.0.2
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
orTOGGLE
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:
- Added support for prefab slots (see https://github.com/SanderMertens/flecs/tree/master/examples/cpp/prefabs/slots)