Skip to content

Releases: dustContributor/dustArtemis

dustArtemis-1.1.4

23 Oct 23:33

Choose a tag to compare

  • Maven support, added through JitPack (easiest option out there).
  • Now component types used throughout the framework must be specified in the World builder. This is to avoid lookup costs when adding/removing components from entities.
  • On the other hand, no more hard limits on the amount of components now. Its dynamically handled via flat bitsets (ie, arrays of longs), also less memory consumption.
  • EntityObserver creation must be deferred to later since the World builder needs all the component types to assign them indices first, and Aspects need them to build themselves.
  • EntityObserver are added via either Supplier or Function<Aspect, EntitySystem> passed to the World builder, along an Aspect builder if needed.

dustArtemis-1.1.2

06 May 23:17

Choose a tag to compare

Updating to latest commits. Biggest changes in this release:

  • Arbitrary 'data' field in World instance, now you can provide an Object to the World builder which will be available via World#data accessor (visible from observer instances for example). Deprecated 'delta' field, you can implement it via the 'data' field now.
  • EntityWatcher observer, which has inserted/removed entity events but doesn't keeps track of an 'active' entities inside the observer, which avoids maintaining the sorted list of ids when you don't need it.
  • All entities components are tracked through a single bit set instance instead of tons of tiny fixed bit set instances, this improves locality and reduces memory consumption by quite a bit! In consequence, removed all fixed bit set classes, no need for them anymore.
  • Removed entity managers and IntervalEntitySystem, you're encouraged to implement such functionality on your own if you want it 😊

dustArtemis-1.1.0

22 Jan 22:25

Choose a tag to compare

Updating to latest commits. Biggest changes in this release:

New Injector utility class, allows you to inject the following things:

  • EntityObservers
  • ComponentHandlers
  • ImmutableIntBag views over the entities of other observers through @EntitiesOf annotation.

Optimizations like:

  • ComponentHandler now combines ComponentManager and ComponentMapper functionality to have one centralized fast way to add/remove components from an entity (as long as you hold onto that handler reference that is).
  • Now IdAllocator uses binary search when freeing ids (ie, much faster!).
  • processEntities gets only called if there is actually something to process (consistent with 'inserted' and 'removed').

And other things like:

  • World builder, which allows you to specify different orders for initialization and processing of EntityObservers (see World.builder() ).
  • DustArtemis exception to validate quite a few things across the framework.

A thing that did went away were pooled components. Might reintroduce them after I have a good idea for an API but really you should do that kind of resource management on your own 😃

dustArtemis-1.0.8

07 Nov 18:04

Choose a tag to compare

Updating to latest commits. Biggest changes in this release:

  • Removed VoidEntitySystem, simply extending EntityObserver accomplishes the same thing.
  • Added a bunch of utility methods to Bag (see getOrSet, forEach passing index, totalClear).
  • Added a bunch of static utility methods to Aspect for easier initialization (Aspect.all, Aspect.exclude, etc).
  • Tiny optimizations all around (avoiding full Bag.clear when necessary, processModifiedEntities is more efficient, etc).

dustArtemis-1.0.7

25 Apr 09:15

Choose a tag to compare

Updating to latest commits. Biggest changes in this release:

  • Inserted/removed events in EntityObservers now are handled in bulk. An ImmutableIntBag is passed with the entities that were removed or inserted to that observer in that frame.
  • Now there is a bit less indirection overall in the IdAllocator and ComponentManager by using plain arrays as much as possible.

dustArtemis-1.0.6

14 Mar 03:04

Choose a tag to compare

Updating to latest commits. Biggest changes in this release:

  • Added convenience methods for adding/removing components to avoid hash lookups of ComponentManager indices.
  • IdAllocator now uses plain int arrays to avoid creating objects.

dustArtemis-1.0.5

22 Jan 18:08

Choose a tag to compare

Updating to latest commits. Biggest changes in this release:

  • Now entities are plain 'int' IDs, removing Entity class altogether. This means that now operations like add/remove components or checking if an entity is enabled will be done through ComponentManager and EntityManager objects respectively, obtained through getter methods in a World instance.
  • Simplified logic in various places thanks to simpler plain 'int' entities.

dustArtemis-1.0.4

05 Dec 10:19

Choose a tag to compare

Updating to latest commits. Biggest changes in this release:

  • Added support for pooling components.
  • Added fixed-size bit sets for tracking components of entities and aspects.

dustArtemis-1.0.3

28 Oct 05:39

Choose a tag to compare

Updating to newest commits, biggest change is EntityObservers unification.

dustArtemis-1.0.2

19 Oct 00:19

Choose a tag to compare

Updating to newest commits.