Google Play Games Services - Realtime Multiplayer

2020-02-14 03:34发布

问题:

I am trying to implement a real-time multiplayer in my Android game using the Google Play Games Services but I am facing an issue when the onRoomCreated method, that I overrided, is called.

  @Override
  public void onRoomCreated(int statusCode, Room room) {
    if (statusCode != GamesStatusCodes.STATUS_OK) {
      stopKeepingScreenOn();
      showGameError();
      return;
    }
    roomId = room.getRoomId();
    showWaitingRoom(room);
  }

The status code is always different of GamesStatusCodes.STATUS_OK and actually equal to 2 (+ the room parameter is null), which means according to Google :

The GoogleApiClient is in an inconsistent state and must reconnect to the service to resolve the issue. Further calls to the service using the current connection are unlikely to succeed.

But there is no change if I call getApiClient().reconnect(). So I would really appreciate any help. For information, getApiClient() comes from the GameHelper class that I extend and which is provided in the library from the Android samples page.

回答1:

onRoomConnected is called when the client attempts to create a real-time room. The real-time room can be created by calling the createRoom(RoomConfig) operation which create a real-time room for the current game. The lifetime of the current game's connection to the room is bound to this GamesClient's lifecycle. When the client disconnects, the player will leave the room and any peer-to-peer connections for this player will be torn down.

You can visit this page for more information.

You can also check this document on how to use the Google Play Developer Console to set up Google Play games services if you forgot something.