All posts by David Saltares

Ashley javadocs and wiki

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


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

Super Jumper Ashley remake


Ashley Super Jumper has been my weekend project. It is nothing more than a clone of the Libgdx demo game. The catch is that it goes for an entity system approach rather than the classic inheritance model. Naturally, it uses Ashley.

The point was to have a reference project folks could check out in order to understand how entity systems in general and Ashley in particular work.

Maybe one day, I’ll post a proper article explaining the design behind the entity systems at play in Super Jumper. I guess that could be useful.

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.

5 years old

This blog is now a lustrum old. A few days ago I received the yearly invoice from the hosting company, curiosity kicked in and made me check the date for the first one. I was surprised to see it’s from July 2009 and thought a recap was in order.

It might have been possible to say that 5 years can make a blog be referred to as veteran… If we were in 2010. That is no longer the case. There are many blogs out there that have been delivering high quality content for over 10 years now (and beyond). However, I believe that having kept doing this all this time is something one can be proud of.

In absolute terms, the numbers are far from impressive, although they mean a lot to me. There’s some really awesome content out there, why would people spend some of their valuable time reading this? This blog has had over 300K hits! Add it to the list of unsolved mysteries. I’ve posted 235 entries, which, to be fair, it isn’t that much considering we’re talking about a 5 year span. There’s an average of 3.75 comments per entry, not a lot but decent given that a lot of the discussion has moved to social networks like Twitter.

Embarrassingly, I started writing in Spanish about films, TV shows and concerts with the assertiveness of a true connoisseur. Past me was clearly a fool. In 2010, the topic started shifting towards technology and computery stuff. Once I moved to the UK in September 2011, all articles were in English and I’d only write about programming and games development.

Currently, the most popular articles in English are:

Well, hopefully, I’ll be able to keep doing this for a lot longer.

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!