Tag Archive for Eclipse

BitmapFont can Increase Your LibGDX Load Time

I noticed that my game was making a lot of calls to StringTokenizer and other String-related classes during significant portions of its load time. My game spent nearly 50% of its load time chugging away at Strings somewhere. This perplexed me for weeks until I noticed some calls to BitmapFont. I knew that BitmapFont had some expensive operations but I didn’t realize that just creating a new instance is very expensive.

I went about consolidating all the BitmapFont instances into one shared instance in the main Game class. I then passed the reference to this instance into the constructors for whatever classes needed to write text to the screen. Going from 4 instances of BitmapFont to just 1 shaved about 4 seconds off the load time. That’s a huge improvement when my game used to take 8 seconds to load on my Evo 4G.

So if method profiling yields several groups of StringTokenizer calls lasting around 1-2 seconds during your game’s loading phase, check if you are using more than one instance of BitmapFont. If all of your text uses the same font style and size, try using one shared instance.

Catching libgdx Exceptions in Eclipse

For those of you that actually know what you’re doing in Eclipse, you can skip this post. For the rest of us, I wanted to share a quick tip for debugging libgdx in Eclipse.

Make sure to set the debugger to break on GdxRuntimeException or any other libgdx exceptions you want to inspect. This Stack Overflow post shows how.

If you don’t set the debugger to catch these exceptions, you’ll likely find that it breaks execution in the OpenGL thread, which is generally not very helpful, because the code that threw the original exception is in your game thread.