libgdx 0.9.2 released

Hurray, a new libgdx version. Here’s the run-down of the most important changes, additions and fixes since 0.9.1.

  • A metric ton of bug fixes, see the SVN commit log.
  • Quite some improvements on the 3D API end. Still far from being done, you can see the WIP in the model-loaders extension. Not ready for prime time yet.
  • Two new demo games called Cuboc and Very Angry Robots. The later was kindly donated by Badly Drawn Rod.
  • A full-fledged UI library that has undergone some major changes since the first commit. Check out the latest blog posts by Nate on that topic as well as While this is only a tiny item on this list, a ton of work went into it and we should all bow down to Nate. Do it now!
  • Updated to the latest and greatest box2d version, including new shapes like ChainShape and EdgeShape, adding post/pre solve to the ContactListener and better pooling.
  • Fullscreen support and on-the-fly resolution changes on the desktop in addition to fullscreen antialiasing on all platforms if the hardware allows it.
  • Better configuration options via LwjglApplicationConfiguration/JoglApplicationConfiguration and AndroidApplicationConfiguration.
  • ImmediateModeRenderer20, so you can draw them fancy lines and stuff in OpenGL ES 2.0 as well
  • ShapeRenderer, build on top of the ImmediateModeRenderer implementations for even more convenient drawing of shapes
  • Completely reworked all resource classes like Texture, TextureAtlas, BitmapFont and so on to take OpenGL unaware XXXData instances. Cleaner design, less code in the resources themselves and paves the way for the next item on the list
  • Fancy schmancy AssetManager. I haven’t talked about it yet on here but will do so sometime next week, telling you how to use it. It’s incredibly powerful and allows for asynchronous loading of assets. See
    AssetManagerTest for a taste of what it is capable of.
  • ETC1 support, see ETC1Test
  • DecalBatch, kindly contributed by Vevusio who’s since disappeared. See DecalTest
  • Brand new JSON serialization framework to write and read object graphs. Again, thank Nate for that one. It’s the basis of the new Skin implementation among other things, so make yourself comfortable using it.
  • In-place operators for matrices, it’s been about time.

The above list is of course not extensive. For more detailed info check the SVN log.

Thanks to all the people helping out on the forums and reporting issues. Special thanks to Radioking for setting up the brand new Libgdx community wiki. Go check it out and contribute!

We have a couple of things cooking at the moment and iterate at quite a pace. So, sorry if we broke things in the process, but it’s for the betterment of the entire library.

As soon as the dust has settled a little i’ll try to get back to the 3D API again. At the moment i’m working through all the classes, improving the Javadocs. That might take some time. I also hope Tamas and i can finish of the development guide we’ve been talking about for so long in the coming month.

Finally, i just discovered that there’s a livewallpaper backend on Google code. We’ll contact the author and ask for permission to include it in libgdx itself. Good job on that one!

18 thoughts on “libgdx 0.9.2 released

  1. Awesome, sounds like a ton of good updates! Still haven’t used all the great stuff that was already there, so have to spend more time “exploring” everything 😀

    Thanks for putting so much time into it for all of us!

  2. The new ui framework is straight up sexy! Have just implemented it in my main menu and settings classes with buttons and fields being skinned with the Skin example in gdx-tests. One question, do you mind if we use a modified version of the skin in our production code?

    Also I’ve been looking at using the new AssetManager stuff and a blog post or a quick writeup on the best practice on how to use it would be much appreciated, any chance of getting that? Top stuff guys

  3. Why is the circle shape no longer supported in the ShapeRenderer class? I saw in the documentation that there is a method for drawing a circleis in the class, but I guess its from a previous version of libgdx.

  4. Hello!

    I’m about to jump into libgdx land. I’ve been a remote fan of this project for a long time, followed news, blog posts etc – without even trying 🙂 This project just *feels right* to me :))

    I am a developer who likes to make Android live wallpapers and in this post you’ve mentioned “libgdx-backend-livewallpaper” and that you plan to contact author for inclusion. Did it lead anywhere? Is it safe for me to start using it, how do you think?

    I’m planning to use libgdx mainly for LW’s, that’s why I’m asking…

  5. Got in contact with him, however, he didn’t have time to help with integrating it. It’s a little outdated and i’m not entirely sure it will work with the latest revision. Some things are also a bit hackish due to the nature Android exposes live wallpapers. You’ll have to check the project on Google Code yourself, at the moment we have no plans of supporting it i’m afraid.

  6. Thank you!
    I’ll see if it works and then – who knows, maybe I’ll find a courage to do some fixing. Though I must admit that I lack deep libgdx and OpenGL knowledge, but so far I had found myself able to learn fast at times… 🙂

  7. i also just realized, after following some basic tutorials about libgdx and growing fond of it, that it’s not supposed to work inside a live wallpaper, which was also my use case. i currently do all the rendering stuff manually in my lwp and it seemed to be a waste of time and resources since some good libs like libgdx should also do the 2d rendering, just better.

    i tried the lwp-backend project with the recent libgdx, but i got tired after adapting the first dozen of classes. it’s clearly outdated and i think it’s not even a good idea to continue updating it since the initial approach is just wrong: it consists of a bunch of copied classes from libgdx, stripped and modified to work with a wallpaper service instead of an application. that at one point one of the copies gets left behind and falls apart is not surprising.

    even if it was up to date i think you would have to refactor the classes anyway as you also don’t want to have mostly duplicated code in two locations. it’s a clear sign that a design is not up to the task it’s used for.

    so i wonder in how far you intend to adapt libgdx to also work within an lwp context? if one diffs the files from Elijah with the originals one can clearly see that he mainly removed or worked around some assumptions that libgdx makes internally about it’s context, mainly being an application with activities, not a service.

    i think that someone who knows the control flow of the current implementation well enough should be able to move the common part of those files modified by Elijah into abstract classes and derive from them, one application-based and one service-based class. that would combine both versions in a maintainable way.

    the question is of course if you intend to do this or if you are not interested in live wallpaper support for libgdx.

    btw, just as a sidenote: after realizing the current state for lwp usage i tried andengine, which is supposed to support lwps out of the box. this project seems to be in a desolate state altogether. on the main page they link to google code, but it turns out there you will just find old remains of the project, the current sources are on github. then you get all the projects from there and the stuff doesn’t even compile.

    then you start wondering, check the forums and yes, there are lists of which classes you have to modify how to make it work. so people commit changes to the official repository that lead to compilation errors and this state is then kept for months. not really a code base i want to invest much of my time into.

    there are also private repository clones some people created due to those problems, but they resulted in even worse problems when i tried them. then you can’t run the examples in the emulator as even the basic ones require ogl 2.0 and the emulator is broken since april if you enable gpu emulation. there are loads of bug reports, but google doesn’t seem to care, the answer is use the linux version, only the windows gpu emu is broken.

    then i tried it on my phone and was disappointed to see much lower performance than i had hoped for for several of the demos. i know my nexus one is not up to date anymore, but that really put me off.

    my preferred framework would clearly be libgdx at this point: active developers, good performance, documentation and the wonderful ability of testing things on your desktop. if it just came with official wallpaper support 🙂

    maybe you can take a look at the required changes to integrate this into one of the next versions, my impression is that it’s not overly time consuming if you know the insights.

  8. LWPs are not on our roadmap i’m afraid. While i see that some people badly want that backend, it’s simply not a priority for me at all, as i have other goals with libgdx. Since this is a hobby project, i have to manage my time by prioritizing what’s most important. Sadly, LWP support is not at the top of this priority list.

    However, we’d be more than greatful if someone wants to join the team and implement an official version. I can offer moral and technical support, i won’t be able to contribute much on the coding side on things i’m afraid.

    @AndEngine lol

  9. i’m still on vacation for a few more days and the weather isn’t great, so i’ll try my best to get something out of this situation 🙂

    first i’ll try to fix the lwp project setup (it doesn’t compile against the gdx project but against local jar/lib file copies), clean it up (remove duplicate gdx classes that were only copied but not modified) and make it run again with the latest libgdx. in the end it should consist of just the handful of classes that had to be modified to work with a service instead of an application.

    as i have no idea what limitations Elijahs version had i can’t say for sure that i wont make it worse, so once i get some of the few examples Elijah used to render within an lwp context i consider this step done 🙂

    the question is if you’re interested in such an intermediate version to integrate it into libgdx? intermediate since it won’t be launching the full gdx test suite, so it’s not possible to check if every feature works in the lwp context (i strongly doubt that). it wont be a full integration but a proof of concept. like Elijahs project, just a bit cleaner and up to date 😉

  10. LWP not working…

    I just set up a simple live wallpaper:

    it said:

    08-08 22:10:18.205: E/AndroidRuntime(7845): java.lang.RuntimeException: Unable to instantiate service test.gdx.lwp.WPService: java.lang.ClassNotFoundException: test.gdx.lwp.WPService

    again and again.

    if I create a new project, again. the samples not works on android.
    my manifest is good

Leave a Reply

Your email address will not be published.