Solar Explorer V2.2.0: Working backwards
I originally started work on Solar Explorer back in late 2010, shortly after Google had finally permitted Australian based developers the right to release paid apps.
Back then, all those months ago, I was testing the infant app on my brand new HTC Desire, with it’s 1GHz single core CPU.
Boy was it slow!
Even though the Desire was one of the most powerful phones on sale at the time, with a previous generation GPU and Android 2.1, it really struggled to run 3D apps. The version of Shiva that I was using at the time also didn’t help. I needed OpenGL ES 2.0 support to make the planets look a little more realistic, but enabling it caused the frame rate to flat-line.
To get the app usable on the device, I had to build in all manner of hacks and tricks.
Time has passed and with it Froyo is now old and most devices are now on Gingerbread, which runs code much faster than the old Android 2.1. At the same time, the Android has become more important and more familiar, leading to the Shiva developers drastically improving support for OpenGL ES 2.0 apps.
When I was working on Exoplanet Explorer recently, I decided that I wanted to try out normal mapping and specular mapping to see how they’d look on the planets. I was seeking way to increase the “wow factor” of the app, and since powerful Android tablets and phones were starting to become more common, it seemed the idea time to try it.
The result was truly shocking.
With everything turned on and on high-detail, my poor old Desire with it’s sad GPU still managed a sold 20fps!
Back in early 2011, the same code would have been unusable on the device.
Version 2.0.0 of Solar Explorer introduced the first version of the app where I’d begun to disassemble all the hacks I’d spent so much time constructing.
Following this came a series of releases that removed even more of the old code, culminating with today’s V2.2.0 release which fixed a few bugs in the old release, but more importantly, all the workarounds are now gone.
One of the things I did in this release was to re-write the navigation code so the camera moves a lot smoother when flying around the Solar System. There’s a little bit of work left as I feel it’s still too quick, but that can wait for a later release.
With all this app re-building going on, there’s always the possibility of new bugs being introduced, so if you see anything that’s not working the way it used to, or any kind of weird behaviour, then feel free to contact me here.
As always, don’t bother reporting problems on the Android Market comment system, as I probably won’t be able to help you because Google’s comment system won’t let me contact you for more information.