Is the Android Java SDK Incomplete/Outdated/Unusable?

edited November 2014 in Android Java (deprecated)
There are some things in the Android Java SDK which seem to be missing and it looks like this SDK is actually not usable? I just want to know if there is a more updated SDK or something for Android because it doesn't seem like this one is fully functional. Here are just a few things I noticed while trying out the SDK:

1. The Player class has a variable "m_loadBalancingClient" which is never instantiated unless the Player object is the local player object, which causes some other functions in the Player class to give a NullPointerException since m_loadBalancingClient is used in those methods and it is not instantiated (or checked for a null value either)
2. When I join a room that already has other players in it, I don't get any information about those other players except their ID number, not even their name or anything. (I tested this out further and for some reason, if the person that created the room disconnects and reconnects into the room, then all new players that connect, including himself, get all other players information. Otherwise any new players that connect to the room DO NOT receive any information about the other players except their ID number, this is extremely weird behavior).
3. There are a bunch of places in the source for the LoadBalancingClient where it says "//TODO: handle error" or "//TODO: add callback" so apparently many errors are not actually handled and many callbacks are missing.
4. The client's state sometimes gets set to "JoinedLobby" even though the player is NOT in a lobby. After noticing this I actually found a few lines in the source for the LoadBalancingClient that said "// TODO: maybe we have to return to another state here (if we didn't join a lobby)" so this tells me that the getState() method can be misleading sometimes.

There are probably more things missing/incomplete so I just wanted to know if these things are actually going to be fixed or if there is a newer version of the Android Java SDK?


  • Sorry for the late reply. It seems someone didn't do his work properly while I was on vacation (and no one responded).
    The Java Android SDK is a bit outdated as the demand is pretty low. But it should be usable and complete enough for making games and was used in several cases already. Just not in as many as e.g. Unity.

    Even if comments look like something is missing, they are mostly notes for improvements but not must-have-to-work tasks.

    Other players are only available while in a room. When in a room, access them via Room.getPlayers() and per player you should be able to get Player.getName() and Player.m_customProperties.
    Or are you saying those values don't get updated and set as expected?

    We will have to work through the null exceptions and the misleading state reporting.
    Initially, the need to know the m_loadBalancingClient was only given for the local player but maybe that got updated and used in a bad way.
  • It seems to me that nothing has changed since the last reply - which is quite unfortunate, Android being a not-so-small platform. I have been considering Photon instead of AppWarp due to pricing & professionalism (judging by the website), but the state of the Android SDK is quite a shocking disappointment to me - even the existing parts feel like someone with no/minimal Android experience wrote them.
    Any plans on remediating the issues in the near future?
  • I can't disagree. The Java SDK is getting less attention than other SDKs.
    The simple reason is: Most mobile games are multi-platform and so far, we didn't have a lot interest in the Java Android version of our SDK. Instead, C++ seems to be more popular and Unity is making up the majority of titles.
    Being neither C# nor C++, it is quite some effort to keep Java more up to date. Even though it's not a small platform.

    Which engine do you use? What do you plan?