Finally! During the past couple of months me and a bunch of awesome collaborators have been working on a proper Ashley release and now it's done. Here is the list of the new shiny features.
Mind that some of them break the previous API. However, this is our first official release, we'll push hard to keep the API backwards compatible from now on.
- Gradle: we got rid of the Eclipse projects and now use Gradle to manage our dependencies and build process.
- Maven Central: Ashley is now available from Maven Central, which makes it dead easy for your project to depend on it. In Gradle, add the following dependency:
compile "com.badlogicgames.ashley:ashley:1.0.1"
. - Jenkins build: Mario kindly offered us some server time to make sure Ashley is always stable.
- Unit tests: there are unit tests for pretty much every component in Ashley. They are run after every commit by our Jenkins job.
- Immutable collections: core Ashley classes now return
ImmutableArray
andImmutableIntMap
references, making it harder for client code to break the system. - Family filtering: now we get the collection of entities that have a set of components, have at least one component from a given set and do not have a single component from another given set.
- GWT compatibility: you can now use Ashley for HTML5 games through the magic of GWT and Libgdx.
- Depends on gdx core: this has allowed us to remove all the duplicated optimised container classes and gives us a GWT compatible reflection API. Some might say it's a big dependency but we do believe the pros outweigh the cons.
- Cleanup and bug fixes.
I try to keep an up-to-date TODO list with a very informal roadmap. Here is what to expect next:
- Performance tests and comparison with Artemis
- Make javadocs available online
- Complete wiki
Feel free to send your suggestions by opening an issue!