Skip to content

Releases: jMonkeyEngine-Contributions/zay-es

Zay-ES core 1.3.1

14 Feb 09:03
Compare
Choose a tag to compare

Minor bug fix release.

Change log:

  • Fixed MemStringIndex.getStringId(string, false) to return -1 instead of throwing an NPE if the string has no ID.
  • Modified DefaultEntityData.addEntityComponentListener() to throw an IllegalArgumentException for null listeners.

Zay-ES-Net release 1.4.0

14 Feb 09:02
Compare
Choose a tag to compare

Bug fixes and internal improvements including the ability to provide per-client component filtering.

Change log:

  • Fixed HostedEntityData.getStringInfo() to send back a null if the ID doesn't exist for the string rather than sending back -1. A -1 would have been cached but a null won't be.
  • Added EntityDataHostedServer.getHostedEntityData() for setting up connection specific entity stuff from other services.
  • Added support for client-specific ComponentVisibility filters that can be used to limit the clients' views of certain component values, e.g.: based on permissions, local object visibility, etc..
  • Added lots of additional trace logging in support of the above.
  • Fixed HostedEntityData.getEntitySet() to force the next sendUpdates() to make at least one pass through the entity sets. Else some components won't be properly tracked.

Zay-ES core 1.3.0

20 Nov 00:56
Compare
Choose a tag to compare

Really just a version refresh. Source compatibility was set to 1.7 and some compiler warnings were fixed.

Change log:

  • MemStringIndex fixed to consider the boolean 'add' parameter.
  • Set sourceCompatibility to 1.7 and turned on detailed 'unchecked' warnings
  • Fixed a ton of 'unchecked' related issues. Many of the generic method signatures
    have changed.
  • Some javadoc formatting fixes.

Zay-ES-Net release 1.3.1

20 Nov 00:59
Compare
Choose a tag to compare

Bug fix release over 1.3.0 which was also mostly a bug fix release.

Complete change log for both versions (1.3.0 has no github version):
Zay-ES-Net v1.3.1 (latest)

  • Fixed a bug introduced in PR #18 where the filter check in RemoteEntityData
    completeEntity() was inverted.

Zay-ES-Net v1.3.0

  • RemoteEntityData.completeEntity() modified to check the components against
    the filter to fix the case where two entity sets share the same components
    but not the same filter. See PR #18
  • Fix NPE in RemoteStringIndex when asking for a non-existant string. See Issue: #14
  • Set sourceCompatibility to 1.7 and turned on detailed 'unchecked' warnings
  • Fixed a ton of 'unchecked' related issues. Many of the generic method signatures
    have changed.
  • Some javadoc formatting fixes.

Zay-ES core version 1.2.1

20 Feb 08:06
Compare
Choose a tag to compare

Includes the new WatchedEntity support for tracking the components and changes for a single entity. There are other small internal infrastructure changes.

Additionally, this release is built with gradle and will eventually make it to a central repo... but the immediate benefit is that -sources and -javadoc jars are generated automatically and available as part of the release.

Changelog:

  • Upgraded the project to be JDK 1.7 and source 1.7 based.
  • Added the ability to get a WatchedEntity which acts like an entity
    except can be watched for changes in a way similar to a whole
    EntitySet. Useful for single-entity focused systems like player
    displays/controls.
  • Deprecated the EntitySet.applyChanges(Set) method as it's not really
    possible to accurately return the changes that caused the set
    to be in its new state... especially not without a proper ordering.
    The network code that relies on this method has been reworked to
    do it more correctly.
  • DefaultEntityData.getEntities() now delegates loading of the entities
    to the set instead of hand-rolling it. (The DefaultEntitySet was
    already capable of loading its own data.)
  • DefaultEntitySet's Transaction.completeEntity() method was moved to
    the outer class so that subclasses can override how incomplete entities
    are resolved by the set.

Zay-ES-Net release 1.2.1

20 Feb 08:03
Compare
Choose a tag to compare

This release includes several performance improvements and some additional infrastructure classes making it easier to work with JME 3.1's new network service model. This makes networking an ES even more 'plug and play'.

Additionally, this release is built with gradle and will eventually make it to a central repo... but the immediate benefit is that -sources and -javadoc jars are generated automatically and available as part of the release.

Changelog:

  • Upgraded the project to be JDK 1.7 and source 1.7 based.
  • Added support for a TransientComponent tagging interface
    that can be used to avoid sending certain component types over the
    wire. (They go over as null.) Note: the classes themselves still
    need to be registered with the Serializer so that the types can be
    sent. This is a compromise over a more invasive and ultimately less
    flexible transient design. (For example: this still lets you grab
    entities with a transient component for selection purposes, it just won't
    have a value.)
  • Added support for the new WatchedEntity feature of EntityData. This can
    be a more efficient way of tracking one entity versus constantly polling
    using getComponent().
  • Added EntityDataHostedService and EntityDataClientService implementations
    to take advantage of JME 3.1's new service model.
  • Server-side entity data services modified to require ObservableEntityData
    implementations.
  • Completely reworked how entity updates are sent to clients. The
    HostedEntityData.sendUpdates() method is entirely new and based on a new
    approach. In short: client interest is tracked in a mark-and-sweep data
    structure and only relevant changes are sent after the data structures
    have been updated. This avoids sending out of order information as well
    as redundant or hidden information.
  • RemoteEntityData's internal RemoteEntitySet now avoids resolving incomplete
    entities. In the latest code, if the entity is a member of the set then
    it would already have received all of the necessary data. A round trip
    to the server to grab data that definitely won't be there is a wasteful
    op, now avoided.

Zay-ES core version 1.1.1

07 Sep 07:26
Compare
Choose a tag to compare

Post project conversion and move release.

Zay-ES as a Java-based entity-component-system library (https://en.wikipedia.org/wiki/Entity_component_system) that manages to side-step many of the common disadvantages of entity systems without breaking 'purity'.

Depends on:

  • guava 12 or better
  • slf4j-api-1.7.5

Note: if you find this project useful to you in they "Hey, I'd like to buy that guy lunch sometime" kind of way... consider becoming a patron: https://www.patreon.com/pspeed42

Change log for this release:

  • Fixed the DefaultEntitySet logger to log to the appropriate category.
  • Added some defensive entityId parameter checks to DefaultEntityData
    getComponent and setComponent.
  • Added an in-memory StringIndex implementation and include it by default
    in DefaultEntityData if it hasn't been extended.

Zay-ES-Net release 1.1.1

07 Sep 07:21
Compare
Choose a tag to compare

Post project conversion and move release.

Zay-ES-Net is an extension to Zay-ES that provides client/server networking support.

Depends on Zay-ES v1.1.1 or better.
Depends on JME's SpiderMonkey.

Note: if you find this project useful to you in they "Hey, I'd like to buy that guy lunch sometime" kind of way... consider becoming a patron: https://www.patreon.com/pspeed42

Changelog with this release: (last release's items are included also since there was a version consistency issue.)

  • Implemented RemoteEntityData's string index.
  • Added trace log for cache hits in RemoteEntityData.
  • Modified RemoteEntityData.RemoteEntitySet.release() to check
    to see if the connection is still connected before sending
    the release message.
  • Fixed a bug where really eager sendUpdate() calls were causing
    thread contention with entity set creation. This would be
    especially true for large sets and short update cycles.
  • Fixed a similar future-bug for resetting the filter, too,
    though that one would be much harder to time just right, ie:
    even more bizarre if seen in the wild.