Libgdx port of Vector Pinballs

Brian Nenninger of Dozing Cat Software published the code of Vector Pinball under the GPL license. He used libgdx mainly for the box2d JNI wrapper. I asked Brian whether i could port it to straight libgdx, replacing the Canvas method he employs in the original. Well, i had an hour yesterday and ported the baby :). The full source can be found in the trunk/demos/vectorpinball directory in SVN. I only had to clean up some nasty temporary object allocations and implement a new renderer based on ImmediateModeRenderer (which i improved by a factor of 4 btw.). Runs well on all phones i tested on, even on the Hero. Until you touch the screen that is, then it goes from 45 fps to 25fps and shit starts to stutter. I hate the shitty touch screen drivers :/ Note that it’s just a proof of concept, i do not display the scores at the moment, and the game is pretty much endless. I leave that as an excersice to anyone who wants to adapt it 🙂 Here’s a clickable QR code to the APK:


Anyways, thanks to Brian for letting us include it in the demo section of libgdx and i hope it will be of some use to you people out there. All the code is GPL, if you adapt it you have to release any modifications as GPL as well!

Slick now on Android, thanks to libgdx!

That’s what libgdx was meant for: port your stuff from the desktop to Android easily. The first framework to join the party is Slick by Kevin Glass, a pretty famous Java OpenGL based 2D game engine. Of course the poor thing has still some rough edges like temporary object allocation and so on, but Kev was able to port one of his games already, running pretty well:

You can find a preliminary apk at Make sure to report any bugs in this JGO thread.

libgdx 0.81 released

Oki, just released 0.81. Fingers crossed that i didn’t fuck it up yet again. We fixed a lot of things and introduced a couple of new features. The list is way to long to recite here. Please refer to the SVN changelog, starting from revision 921 (you can page through this). I’ll just refer to the SVN changelog from now on.

Just a few highlights:

  • We included the Lwjgl backend and the TWL extension in this release. Note that the former is still experimental. Stick to the Jogl one for now i’d say. Textures are not pre-multiplied at the moment and mipmap generation is a joke.
  • We removed support for Mpg123Decoder at this point. We need to rework the licensing issues (dynamic linking instead of static on Android). I’ll probably setup a separate google project for that, like the GL 2.0 bindings project.
  • A nice bug in Color.toFloatBits(). See this thread for a discussion. Darn Java float implementation… Thanks to Matthias Mann for suggesting this “fix”.
  • All classes in com.badlogic.gdx.scene2d have protected instead of private members/methods now. No idea why i had those private. Thanks to Lefthand for pointing that issue out
  • BitmapFont to use cap height as origin rather than baseline. Named methods better. Added method to get text bounds. If you are as confused about this as me then poke Nate, he can explain it. Here’s a thread on the topic
  • Introduction of SpriteCache class. Can be used to implement tiled maps for example. See this thread
  • SpriteSheet and SpriteSheetPacker, for your sprite packing pleasure
  • Some improvements to SpriteBatch and Mesh be rewritting the backends. You can now do n-buffering with SpriteBatches too. This is useful if you don’t have a lot of sprites but all of them have different textures like in Nate’s game
  • Reverted the event based input processing back to a listener concept. InputProcessor stays the same, instead of Input.processEvents() you call Input.setInputProcessor() now though. See Java docs for more info
  • The Files and FileHandle interface received a major overhaul. They are pretty sweet to use now. Also, if you use internal files on the desktop the classpath will be searched first. Useful when you want to deploy your game as an applet of jws app.
  • Lots of other small bug fixes and improvements. For a full list check out the SVN changelog.

    Please report any bugs you find on the bug tracker!