There is a newer version of the record available.

Published February 20, 2023 | Version v0.4.0
Software Open

mlange-42/arche: Arche v0.4.0

Authors/Creators

  • 1. @Helmholtz-UFZ @finam-ufz

Description

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 and World have a method Mask(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, ... and Exchange (#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 now World.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)

Files

mlange-42/arche-v0.4.0.zip

Files (80.3 kB)

Name Size Download all
md5:536b8b2812daba41472dbc85831ddee2
80.3 kB Preview Download

Additional details

Related works