Is The Android NDK The "Future"?

edited May 2012 in Android Java (deprecated)
I see that there have been a few updates to the NDK version for Android but no activity on the standard Java implementation. Is the NDK the future of Photon on Android and should we expect to shift to that going forward, or will the standard Java version get more attention in the future as well as right now it seems abandoned?



  • Our C++ Android NDK Clients share the same codebase with our C++ clients for iOS, Marmalade, OS X and Windows, while we currently do not offe any other Java clients excpet the Android SDK ones. Most of the codebase of our C++ clients is also shared with our objC clients for iOS and OS X.
    Therefor the NDK clients profit from the fact, that the overall demand for C++ an objC clients is a lot bigger than the one for Java clients, although there is not much difference in Android SDK vs. Android NDK demand.
    Also for various reasons we often have to put more work into the native clients than into the Java ones to reach the same featureset (APIs for 3 languages instead of 1, getting it working correctly on 5 platforms instead of 1, etc.), which leads to more, but smaller updates than in Java.

    We don't plan to abandon the Android Java clients.

    Our recommendation is, to use C++, when there is a chance, that you are going to later release your game to another platform than Android, as you can then sharre the same C++ code between Android and for example iOS. The same recommnedation holds true, if one is developing a game for iOS, but could potentially want to port it to Adroid later. Writing your games code once in one language (C++) just saves you a lot of time and money in comparison to writing it two times in two languages (Java and objectiveC).
    However if you are 100% sure, that your game will be Android only, then you should choose your programming language depending on your skills in that language and on available 3rd party libraries (not everyone is supporting Java and C++ like we do). If it then is still a tough decision, then probably Java is the better choise, as it gets better support from google.
  • Thanks Kaiserludi, I appreciate the detailed response. I have a game already live for some time that uses Java on Android and ObjectiveC on iOS for many different reasons (one being limits that using the NDK means for us, but also frankly it does not slow us down to do so today). We have skills in all the relevant languages, and so if I read your response correctly it sounds like we may be well served to switch to using the NDK when we make the move to Photon 3 and then share some code between the different iOS and Android versions of our game in that it would give us some consistency as well as more focused support due to the demand being higher.

    Thanks again,
  • Well, if the completeness and and amount of bugs of the gamecode is already at a ready for release level, which seems to be the case, as you have released the game), then most of the work on it is done anyway and if you are not planning huge changes to the codebase for the futuere, then it would probably cost more time to switch the language of the code and get the game stable again thereafter, than it could ever save you.
    Its maybe more interesting to think about a switch for your next game, thanto do it for this one.