Decidir quem é o jogador 1 e 2 em um jogo baseado em rodada com o Google Play Game Services

Tenho um jogo multijogador baseado em rodadas para Android que já funcionou no XMPP e quero mudar para o Google Play Game Services. Na versão antiga, havia um bot XMPP, decidindo qual jogador seria o jogador 1 ou 2. Isso é importante para saber qual jogador deve fazer o primeiro movimento.

Com os serviços relacionados a jogos do Google Play, encontrei uma solução que quase funciona:

@Override
public void onRoomConnected(int statusCode, Room room) {
    ArrayList<Participant> participants = room.getParticipants();
    Participant first = participants.get(0);
    if (first.getPlayer() == null || !first.getPlayer().getPlayerId().equals(myPlayerId)) {
        LaskaField.HUMAN_PLAYER = 2;
        LaskaField.OTHER_PLAYER = 1;
        opponent = first.getDisplayName();
    } else {
        LaskaField.HUMAN_PLAYER = 1;
        LaskaField.OTHER_PLAYER = 2;
        opponent = participants.get(1).getDisplayName();
    }
    setPlayerNames();
}

Desta forma, funciona bem ao convidar outro jogador. No entanto, muitas vezes falha quando ambos os jogadores selecionam a correspondência automática. Neste caso, ambos os jogadores estão na mesma posição nos participantes ArrayList. Portanto, ambos aparecerão como o mesmo jogador em seu dispositivo atualmente usado.

Qual é o caminho certo para selecionar o jogador 1 e 2, sem instância central para decidir isso. Existe algum dado útil na lista de participantes que não encontrei com o depurador?

questionAnswers(2)

yourAnswerToTheQuestion