18 million indices

Just solved a performance issue in Legacy where I was basically squaring the size of the index buffer for the wall mesh, which was allocating space for about 6 million triangles instead of a couple thousand. When this happened the framerate dropped from 60 to 55, and CPU usage went up to 12%. So I learned two things:

1) I have a lot of performance headroom.*
2) Nothing is stopping me from making stupid mistakes like that, and I might not ever notice them if they don't cause problems, so I'd better develop some better techniques.

I feel pretty good about it though. And I'll post some progress on the Legacy blog soon.

*I'd better, I'm not drawing very much yet.. This is one of my persistent boogeymen with game programming; I'm not a graphics expert, in fact I honestly have very little idea of what the machine can do, what I can throw at it, etc.. Basically it's like learning to jump when you're afraid you might hit the ceiling. I should get over that.

libgdx fonts

Use gdx-fontpack instead of Heiro for higher-quality fonts. You have to be a little careful to export the font .png with the exact same name as the .fnt file, and only use one font face and size per file, so that the libgdx skinning works with it.

(This screenshot shows multiple fonts and sizes, which I just told you not to do, if you want to use the libgdx skin system.)

It uses FreeType instead of java default font rendering, so the output is much nicer.

I'm interested in upgrading to distance field fonts as well, but it doesn't seem that the built in UI actors support custom font shaders, and I don't particularly want to muck around with them at the moment.



You can use a higher-dimensional noise volume to create a seamless (tileable) noise pattern in a lower dimension, by tracing a path through the higher dimensional space.

cool, huh?