Flecs v3.2.7
Highlights
- A new Flecs.NET C# binding by @BeanCheeseBurrito with a similar design as the C++ API!
- Deferred
set
operations are now almost twice as fast in the C++ API 💨 - New functions in the experimental JavaScript API for client-side replication of entities:
// Connect to flecs application
flecs.connect("http://localhost:27750")
// World that stores the joined result of two queries
let w = flecs.world()
.query("SpaceShip, (Dockedto, *)")
.query("Planet, Habitable")
.on_update(() => {
// Access replicated entities
for (let s in w.entities["fleet"]) {
const planet = w.entities[s.pairs.DockedTo];
// Is spaceship docked to a planet?
if (planet.tags.include("Planet") {
// Is planet habitable?
const habitable = planet.tags.include("Habitable") ? "habitable" : "inhabitable";
console.log("SpaceShip " + s.name + " is docked to a " + habitable + " planet!");
}
}
});
- The explorer can now show sync point statistics and which queries/systems an entity matches with:
Release notes
This version includes the following bugfixes:
- Fix issue where
ecs_table_get_column_size
was interpreting column as type index - Fix regression with using
get
with wildcard id - Replace invalid cast in Windows OS API with
TEXT()
- Fix crash in JSON serializer when trying to serialize variables for query iterators
- Fix issue with JSON type serializer and nested structs
- Fix issue where operations in
yield_existing
observers weren't always deferred - Fix issue where overriding exclusive relationships could cause an entity to have multiple instances
- Fix module registration issue across DLLs that could cause an
INVALID_COMPONENT_SIZE
assert
This version includes the following improvements:
[c]
Fix inconsistency in naming of get_ctx/set_ctx functions[c]
Addbinding_ctx
andctx_free
/binding_ctx_free
to world[c]
Addctx
/binding_ctx
to query objects[c]
AddPrivate
trait to more internal components[c++]
Assert when attempting to create a nested pair id[c++]
Improve performance of deferred C++set
operations[c++]
Fix issue in filter builder API with pair singletons[timer]
Allow for timer randomization to reduce spikes in pipeline schedule[queries]
Add support for setting$this
variable on query iterators[meta]
Shorten enum constant names by removing name prefix/enum type name prefix[json]
Addecs_entity_to_json_desc_t::serialize_ids
option[json]
Addecs_iter_to_json_desc_t::serialize_term_labels
option[json]
Addecs_iter_to_json_desc_t::serialize_id_labels
option[json]
Removeserialize_meta_ids
option[json]
Add option to serializer to return all queries an entity matches with[json]
Supportserialize_id_labels
andserialize_variable_labels
in combination withserialize_table
[json]
Allow for toggling private components in combination withserialize_table
[stats]
Add statistics for sync points[doc]
Fix typo in OS API header[doc]
Fix example in query manual (thanks @jbarthelmes!)[doc]
Fix outdated documentation in query manual and manual[doc]
Fix typo in query manual (thanks @pfeodrippe!)[doc]
Fix documentation forecs_new_w_pair
in manual[doc]
Fix links in flecs script tutorial[doc]
Fix & improve documentation in main header (thanks @copygirl!)[doc]
Add new C# binding by @BeanCheeseBurrito to README[doc]
Add questions to FAQ on how to debug issues with the explorer[doc]
Remove redundantgroup_by
callback fromgroup_iter
example[ci]
Suppress new clang warning
Benchmark results
https://github.com/SanderMertens/ecs_benchmark/tree/563b5476cf13afdeff70fe120ad9d4308da9350b
Breaking changes
- Fix inconsistencies in get/set ctx APIs (#466 (comment))
Known issues:
#844
#765
#714
#620
#478
#314
New Contributors
- @pfeodrippe made their first contribution in #1030
Full Changelog: v3.2.6...v.3.2.7