Category Archives: Games development

Ashley 1.1.0 released

ashley-small

Just under a month of the first official release we are ready to release a new stable version: Ashley 1.1.0. Here is the list of changes.

  • Performance improvements: massive performance gains with O(1) component retrieval through ComponentMapper and the use of Array<Entity> rather than IntMap<Entity>. Unfortunately this changes the API slightly, but hopefully you guys will appreciate the benefits.
  • Complete Ashley manual: now the wiki has a lot more content, it fully covers Ashley. The rest is sugar.
  • API Cleanup: renames Family.getFamilyFor() to Family.getFor() for simplicity.
  • Configurable pools: PooledEngine now accepts the initial and maximum sizes for the entity and components pools. This will add a lot more flexibility to bigger games.
  • Libgdx 1.3.0: Ashley now depends on gdx-core 1.3.0.

Keep the feedback coming and happy coding!

Finally, Ashley has a logo

ashley-small

Ashley now has a logo and it’s awesome! What an amazing contribution.

This is really good news because Ashley lacked an image to make it a bit more memorable. Now back to work, there will soon be a new release. Despite it involving some API changes, it will make for a much faster framework.

Ashley javadocs and wiki

Ashley, your favourite entity framework now has online javadocs and a wiki.

Wooohooo!

The javadocs correspond to the latest repository snapshot. Our Jenkins instance grabs the code, runs the tests, builds the jars and publishes the javadocs to the badlogic.com server. Kudos to Mario for the setup.

I just started putting stuff into the wiki yesterday so it’s pretty empty as of now. Expect more content soon!

Libgdx setup tool now supports Ashley

gdx-setup ashley

Last night I added Ashley support to the official Libgdx setup tool. Creating Libgdx projects that use Ashley entity framework is now even easier. Simply make sure you tick the Ashley checkbox before generating your project.

By the way, if you already have a a project, adding the extra dependency is also trivial.

  • Core project: com.badlogicgames.ashley:ashley:1.0.1
  • Android project: com.badlogicgames.ashley:ashley:1.0.1
  • GWT project: com.badlogicgames.ashley:ashley:1.0.1:sources

Remember that using Ashley in non Libgdx projects is also perfectly fine.

Ashley 1.0.1 released

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 and ImmutableIntMap 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!