Z-man, you're correct. I have indeed pulled another one.
Welcome everyone to probably my most involved and therefore most dissapointing April Fools' Day joke of all time - so few people replied! Almost no one questioned! Instead of properly porting Armagetron, I have written an Armagetron clone from scratch, hence the different name. All new AI, physics, camera, rendering (GLES), input, menu. Shared code consists of
rModel.cpp lines 117 to 214 for model loading and that's it.
The idea was to trick everyone into believe Armagetron was "ported" to Android. Achieved simply by it look exactly like Armagetron. The Androgetron physics are all sort of "close enough" that it's believable that altering the Armagetron physics could result in similar play. If it looks and feels like Armagetron, is it Armagetron? In this case, no.
Porting Armagetron properly has some fundamental issues. First there's translation to GLES. Really, I don't think this is a huge issue. Some minor quirks you have to get used to but as near as I can tell it's pretty well the same in the end that it's easy enough to translate. All the tricky stuff is already done - such as working out what translations to use.
Let's assume we want to keep Armagetron in C++ on Android. Armagetron uses a gaggle of libraries at this point, which yes, most of them are nominally buildable with the Android NDK. It's still dependency hell, and the build system is nowhere near as nice as that of proper GNU Autotools. There's a more crucial problem, which I wish I could remember the proper name of. It boils down to Armagetron relies on the compiler including information about which objects are which classes internally (or something like that). The Android NDK strips this information out. Chunks of Armagetron would need to be rewritten to work around this or some heavy toolchain work would need to be done to switch out the NDK ARM compiler with one that actually does the necessary stuff. Of course, due to the build system being user-unfriendly, this is also difficult.
It boils down to from my point of view that, for me, porting Armagetron natively in C++ is a problem, with a lot of things I'm completely unfamiliar with involved. Alternatively there's rewriting Armagetron into Java - porting in the truest sense. This is another load of work involving not only porting engine code but working around all the libraries and either finding Java equivalents or writing Java equivalent functions as necessary. Not exactly easy, but from my point of view quite a bit easier. The problem becomes interpreting all the C++ which I may or may not properly understand into their Java equivalents (which I also may or may not understand) and getting it to all hang together. Friend classes anyone? Overall easier, but I also feel it's out of my skill range. So porting to Java is a problem too.
What I do have though is a rough idea of how Armagetron works. Go forwards, hit wall, die. I also have a rough idea of how to work in Java and in OpenGL. That leaves only the Android specific components of making a Tron clone as the unknowns. That's something I can get behind - it's much easier to learn one new thing at a time. So that's what I did and hence Androgetron.
Happy April Fools' Day!