All posts by David Saltares

Libgdx at Intel Buzz Workshop Stockholm 2015

intell buzz workshop

Quick update to let you know I have been invited to talk about all Libgdx things at Intel Buzz Workshop 2015, which will take place in Stockholm on July 17th. It will be a one day conference on mobile games development and will feature talks on virtual reality, Unreal Engine 4 and lots of cool stuff, check the programme for more details.

Register if you are interested, tickets are free until July 6th!

Hope to see you there!

Libgdx Cookbook samples updated to support Libgdx 1.6.0

libgdx cross platform development cookbook

Haven’t bought Libgdx Cross-platform Game Development Cookbook yet? Stop reading and go get it!

Quick update to inform you that I just updated the samples repository to use Libgdx 1.6.0 and Ashley 1.5.0, both recently released. Libgdx 1.6.0 introduces changes in our font rendering API, which require a few minor tweaks to the framework calls, nothing major.

7 months after the release of the book, we continue to support it. Rest assured, it is the most up to date Libgdx publication at this point in time.

Thanks for your support!

Ashley 1.5.0 released


Thanks to the contributors, here’s a new version of Ashley, which now stands at 1.5.0.

A new version of , your favourite component based entity framework is out. The version comes with a bunch of bug fixes that, hopefully, will iron out some of the rough edges in Ashley.

  • API addition: adds getFamily() method to IntervalIteratingSystem and IteratingSystem.
  • API change: IntervalSystem‘s update() method is now final, as it doesn’t make sense to override it.
  • Update: updated Libgdx version to 1.6.0.
  • Enhancement: allows IntervalSystem to update faster than the main loop.
  • Enhancement: improved hashCode() and equals() implementation of Family.
  • Bug fix: fixed GWT build and made a Jenkins job to make sure we also test GWT integrity.
  • Bug fix: empty Family now matches empty entities.

To use it, change your dependency to com.badlogicgames.gdx:ashley:1.5.0. The new nightly dependency is com.badlogicgames.gdx:ashley:1.5.1-SNAPSHOT.

As usual, all unit tests are passing and the wiki is up to date. Please keep up the good work sending more pull requests and reporting bugs.


For the past few weeks working on a new toy: Conjugate. It’s probably easier if I just stick a summary of the GitHub readme here.

Conjugate is a verb conjugator service. Enter a verb in English and get the conjugations for all tenses in a variety of languages.


Reason to be

When learning a new language, it is very common to struggle with verb conjugations. For example:

I want to know the third person singular form (masculine) of the future perfect tense of the verb to eat in French.

Unfortunately, the available resources are somehow limited:

  • Google translator: usually gets conjugations wrong for most languages, especially in terms of gender.
  • Apps: seriously? I don’t want to install yet another app!
  • Websites: lists are limited, the sites are old, full of ads and/or don’t play well with mobile devices.

Conjugate tries to solve that use case.

Project structure

The project is divided in two parts:

  • Scraper
  • Mobile friendly website


I wrote a web scraper in Python using BeautifulSoup4 that grabs translation and conjugation data from Verbix. This site doesn’t work very well on mobile, their API returns a 404 and their e-mail address is no longer valid. Honestly, I feared their comprehensive database is going to be lost at some point in the near future. Besides, they allow people to user their data for non profit purposes.

The script currently supports Romanian (which I’m trying to learn) and Spanish. Luckily, it’s pretty easy to add support for new languages, although no thanks to Verbix’s poor use of web standards.


Currently, I’m in the process of writing the mobile friendly application. It’ll be extremely simple:

  1. Enter a verb in English (infinitive).
  2. Select a language from a dropdown.
  3. Hit “Go”.


For the backend I’m using Flask and sqlalchemy to keep things in the Python world, not to mention that they’re really easy to get started with. Not too sure about the frontend, but I’ll probably go for a framework that makes responsive design simple enough.

Any suggestions?


I’ve been pretty lazy these days, blame it on FarCry 4 and Daredevil but I hope to report some progress on the project soon. Of course, I’d be more than happy to accept PR’s if you’re interested to help!

New domain and hosting

It’s been over 5 years since I registered At that time, I also signed up for a shared hosting plan with Hostgator. Unfortunately, I’m no longer 16 years old, so the domain felt a bit dated. A change was long overdue, but I can be real lazy during the weekend. Finally I got around to do a proper migration of both domain name and hosting.

Welcome to!

Here’s a brief of my experience with Hostgator and the migration process.


Hostgator wasn’t actually that bad. It had excellent client support and my plan offered “unlimited” disk space and monthly data transfer at a fair price. However, at the end of the day, both were limited by the number of people you shared your instance with. In all honestly, the uptime could have been better as it wasn’t rare for me to get notifications about the blog being unreachable.

The worst part about Hostgator were the access limitations. I couldn’t just run whatever software I wanted on the server. Whilst it supported PHP, I believe Java or Python weren’t among the list. I simply didn’t have the permissions to install anything.


A few friends have Digital Ocean droplets and are very happy with the service, so I went for it and got my Ubuntu SSD machine. I took advantage of the GitHub student pack, which offers a $100 voucher, meaning I don’t have to pay at all for the first 20 months.

Yes, you have to set absolutely everything up yourself, including a web server, PHP, MySQL, etc. Conveniently, Digital Ocean’s website has a myriad of tutorials with detailed steps on how to do all of this. Great way to polish up my rusty Linux skills.


After digging around for a bit, I registered with Namecheap. Despite being put off by the name, a lot of people recommended it and now I can see why. The DNS setup propagated extremely quickly and there is no fuss. Additionally, it’s really easy to find a discount code, so I got the domain during a year for £6, not bad.

All of this should have been seamless for everyone, so please contact me if something is not working quite well. Requests to now point to my droplet, so the old domain points to the same thing as