int main(void)

My Blog

Posted 02/08/12 @ 3:31pm - By Ross

GLES2 conversion

The game I’m developing for Android utilizes an open source OpenGL library called AndEngine. I’ve been experimenting with it for about a year now and finally feel as though I’ve got a solid handle on it. But about a month ago I got thrown a curve ball. The core got a huge update as they converted it to support OpenGL ES 2.0. While this is great as it increases it’s functionality, there is a whole new slew of relearning I had to do.

So what changed? First off, the use of a VertexBuffer manager that is now referenced on all drawn objects. This obviously follows from the other big benefit of going to ES 2.0, programmable shaders! I haven’t yet played around with writing my own GLSL programs as I’ve been updating my code to work with the new update, but it’s high on my list to see what it can do. Another nice change is the division of extensions out of the main library. The library itself was starting to get bloated with the inclusion of things like the tmx file format and box2d physics.

The best thing about the conversion is I got a HUGE performance increase after the upgrade. Previously, zooming out all the way on the tmx map would drop frame rates down to the teens. Now it rarely dips below 50. This is credited to big improvements with tmx handling and the A* path generation along with better hardware use.

Another nice side effect is I’ve been going through and rewriting a lot of my code to clean it up. This project started during my junior year in college and there were many mistakes to be found. Not to say it’s now perfect, but it is much better than what it was.

return 0;