Releases: mlange-42/arche
Releases · mlange-42/arche
Arche v0.4.1
Bugfixes
- Fix units symbol for bytes from
b
toB
in string formatting of world statistics (#111)
Other
- Adds github.com/wfranczyk/ento to benchmarks (#110)
Arche v0.4.0
API revision, split out generics and filters into separate packages.
Features
- Generic queries support optional, additional and excluded components (#53, #56, #58, #59, #60, #63)
- Logic filters for complex queries (#54, #58, #61)
Query
andWorld
have a methodMask(Entity)
to access archetype masks (#65)- Generic query
Get
method returns all queried components (#83) - Added method
World.Stats()
for inspecting otherwise inaccessible world statistics (#67) - Entities can be initialized with components, via ID as well as using generics (#76)
- A listener function can be registered to the world, for notification on entity changes (#77)
- Support for up to 128 distinct component types per world (was limited to 64 before) (#78)
- Generic entity manipulation through types
Map1
,Map2
, ... andExchange
(#79, #84, #87)
Other
- Overhaul of the module structure, with generics and filters in separate packages (#55, #57, #61, #64)
- Generic queries are compiled to masks and cached on first build (#62)
- Boilerplate code for generic filters and queries is auto-generated with
go generate
(#64) - Ensure 100% test coverage by adding a CI check for it (#68)
World.RemEntity(Entity)
is nowWorld.RemoveEntity(Entity)
(#87)- Optimization of adding/removing components, with 2-3x speedup and vast reduction of (number of) allocations (#93)
- More examples as user documentation (#83, #95)
- Speed up component world access by use of nil pointer check instead of bitmask (#96)
- General API cleanup with renaming of several types and methods (#100)
Arche v0.3.1
Other
- Fix failing https://pkg.go.dev to fetch Arche version v0.3.0
Arche v0.3.0
Arche v0.2.0
Changes compared to v0.1.4:
Features
World
has methodExchange
to add and remove components in one go (#38)World
has methodAssign
add and assign components in one go (#38)World
has methodAssignN
add and assign multiple components in one go (#38)
Other
- Optimization of
Query
iteration, avoids allocations and makes it approx. 30% faster (#35) - Removed method
Query.Count()
, as it was a by-product of the allocations in the above point (#35) - Archetypes are stored in a paged collection to use more efficient access by pointers (#36)
- Much smaller archetype data structure at the cost of one more index lookup (#37)
Arche v0.1.4
Other
- Extended and improved documentation (#34)
Arche v0.1.3
Arche v0.1.2
Arche v0.1.1
Arche v0.1.0
Initial release.
Basic ECS implementation.