Skip to content

Releases: junkdog/artemis-odb

artemis-odb-0.13.1

23 Sep 11:54
Compare
Choose a tag to compare

Change Log

Version: 0.13.1 - 2015-09-20

  • Fix: Deleted entities no longer mess up subscriptions when edited in SubscriptionListener#removed.
  • Fix: Deleted entities retain components.

artemis-odb-0.13.0

14 Sep 00:46
Compare
Choose a tag to compare

This release is a little peculiar, but handy:

  • libgdx's json implementation now backs a second world serializer. This means saving/loading is now compatible when building with GWT, and more libgdx container classes are properly serialized.

  • The new debug artifact, artemis-odb-debug injects some extra runtime checks compared to artemis-odb. Useful for tracking down escaping flyweight entities.

    artemis-odb-debug replaces artemis-odb, either use a profile or do it quick and dirty:

<dependency>
    <groupId>net.onedaybeard.artemis</groupId>
    <!--
    <artifactId>artemis-odb</artifactId>
    -->
    <artifactId>artemis-odb-debug</artifactId>
    <version>0.13.0</version>
</dependency>

Change Log

Version: 0.13.0 - 2015-09-14

  • BREAKING CHANGES
    • World#getEntity(int) can return inactive Entities, check state using Entity#isActive or
      EntitityManager.isActive(int).
    • Entity.isActive no longer works for checking whether an entity was just created, instead
      use EntityManager#isNew(int).
  • New additional serialization backend: json via libgdx.
    • GWT support, works with libgdx's HTML5 backend.
    • Supports more libgdx classes out of the box.
  • New artemis-odb-debug artifact
    • Replaces normal artemis-odb with this (remove artemis-odb from pom/gradle/IDE)
    • Performs extra runtime checks; tries to catch run-away flyweights.
    • Incurs a rather hefty performance penalty.
  • Fix: SubscriptionListeners#removed ids resolved to a lot of nulls.

Version: 0.12.1 - 2015-09-05

  • Fix: IntDeque resets beginIndex when growing.

Downloads

Maven

<dependency>
    <groupId>net.onedaybeard.artemis</groupId>
    <artifactId>artemis-odb</artifactId>
    <version>0.13.0</version>
</dependency>

See weave automation and module overview

Gradle

  dependencies { compile "net.onedaybeard.artemis:artemis-odb:0.13.0" }

artemis-odb-0.12.1

05 Sep 15:52
Compare
Choose a tag to compare

Change Log

Version: 0.12.1 - 2015-09-05

  • Fix: IntDeque resets beginIndex when growing.

Downloads

Maven

<dependency>
    <groupId>net.onedaybeard.artemis</groupId>
    <artifactId>artemis-odb</artifactId>
    <version>0.12.1</version>
</dependency>

See weave automation and module overview

Gradle

  dependencies { compile "net.onedaybeard.artemis:artemis-odb:0.12.1" }

artemis-odb-0.12.0

04 Sep 19:23
Compare
Choose a tag to compare

DON'T USE THIS VERSION, GO WITH 0.12.1 instead.

So... another feature release before hitting 1.0.0. This one is smaller than usual, which I suppose is a good thing.

Change Log

Version: 0.12.0 - 2015-09-04

  • InvocationStrategy configurable via WorldConfiguration.
  • Add @Skipwire annotation to exclude injection targets.
  • Entities recycled in FIFO order.
  • Change EntitySubscription order to deleted/added/changed.
  • Change AspectSubscription order to removed/inserted.
  • FIX: Resolved potential "markSupported() is undefined for the type InputStream" message when
    compiling for GWT.

Version: 0.11.4 - 2015-08-18

  • Fix: Excessive object creation when serializing entities.
  • Fix: Components referencing other entities are implicitly included when serializing.
  • Fix: SaveFileFormat should only enumerate required components.

Version: 0.11.3 - 2015-08-14

  • Fix: entity reference operations could fail when loading into a fresh World instance.

Version: 0.11.2 - 2015-08-11

  • Added boolean WorldSerializationManager#alwaysLoadStreamMemory, forces fully loading the stream into
    memory during loading, even if stream reports that mark is supported. Necessary when working
    with libgdx's FileHandles.
    • Enabled by default.
  • Fix: Duplicate ComponentNameComparator in json module, causing failing android builds.

Version: 0.11.1 - 2015-08-11

  • Fix: Entities not registered as added to world during batch entity synchronization.

Downloads

Maven

<dependency>
    <groupId>net.onedaybeard.artemis</groupId>
    <artifactId>artemis-odb</artifactId>
    <version>0.12.0</version>
</dependency>

See weave automation and module overview

Gradle

  dependencies { compile "net.onedaybeard.artemis:artemis-odb:0.12.0" }

0.10.1 - a few steps closer to 1.0.0

19 Jul 23:33
Compare
Choose a tag to compare

Psst. 0.10.2 has been released - it fixes a bug w.r.t. entity transmuters.

0.10.0/0.10.1 dev suffered neglect during the past months. Saving/loading world instances has been pushed back to the next release. Earlier experiments waded in growing complexity. I have a much simpler solution in mind now, without sacrificing any/much of the potential of the previous design.

The biggest changes for this release revolve around the AspectSubscriptionManager, increasing the responsibility of WorldConfiguration, and generally decoupling the world - making it slightly more open to custom configurations.

Nota Bene: breaking existing code

This release can be considered a preparatory release anticipating 1.0.0. Some existing code will break; most/all deprecated code should have javadoc or exceptions pointing you in the right direction.

The cycle of breakage will stop once we reach 1.0.0; until then, please bear with me.

Nota Bene: perf hit

0.11.0 introduced a pretty nasty perf hit. Initial benchmarks indicate <25% poorer throughput when iterating entities.

In the interest of moving towards 1.0.0 as quickly as possible, optimizations restoring the performance has been postponed until 1.1.0 (or 1.0.0).

Change Log

Version: 0.10.1 - 2015-07-20

  • Fix: Reduced visibility of AspectionSubscriptionManager constructor.
  • Fix: NPE related to EntitySubscription#createSubscription.

Version: 0.10.0 - 2015-07-19

  • MINOR BREAKING CHANGES
    • BaseSystem is now the most basic system type.
      • World#getSystems returns Bag.
    • EntitySystem constructor expects Aspect.Builder:
      • Implies existing classes have to be recompiled against this release.
      • Existing custom entity systems need to pass Aspect.Builder to EntitySystem.
    • EntitySystem no longer implements EntityObserver.
    • ArtemisProfiler#initialize now requires BaseSystem instead of EntitySystem.
    • VoidEntitySystem no longer subclass of EntitySystem.
    • setSystem and setManager now under WorldConfiguration. This
      effectively removes World#initialize, as initializations happens inside
      World's constructor.
  • New internal EntitySubscription and accompanying AspectSubscriptionManager
    resulting in cleaner and more flexible EntitySystems.
  • SystemInvocationStrategy opening up for more granular control over system processing.
    • Default strategy behaves as before.
  • Aspect split into Aspect and Aspect.Builder.
    • Simplified static method names, mirroring Aspect's old instance methods.
  • EntityFactories support for enum values.
  • Children of EntitySystems can create flyweight entities.
  • Fix: Uninitialized worlds threw cryptic NPE when invoking #process.
  • Fix: World#createFactory(Class<EntityFactory>) was package local.
  • Fix: Entity#edit used together with EntityTransmuters or Archetypes
    caused the wrong compositionId to be reported, if all changes took place
    during the same processing round..

Downloads

Maven

<dependency>
    <groupId>net.onedaybeard.artemis</groupId>
    <artifactId>artemis-odb</artifactId>
    <version>0.10.1</version>
</dependency>

See weave automation and module overview

Gradle

  dependencies { compile "net.onedaybeard.artemis:artemis-odb:0.10.1" }