Exemplos
- Clãs/guildas - Os grupos de entidades podem ser usados para descrever um conjunto de jogadores que jogam juntos regularmente, seja qual for o vínculo social que os mantém unidos a longo prazo.
- Grupos - Os grupos de entidades podem ser usados para grupos de curto prazo criados para permitir que jogadores individuais atinjam um objetivo imediato e, depois, sejam facilmente desfeitos.
- Canais de chat - Canais de chat de curto ou longo prazo podem ser definidos como um grupo de entidades.
- Assinatura de informações no jogo - Você tem um item lendário de instância única no seu jogo? Os jogadores querem atualizações constantes sobre o que está acontecendo com esse item? Crie um grupo de entidades focado nesse item, tendo como membros todas as entidades de jogador interessadas no item.
- Dados de objeto
- Dados de arquivo
- Perfis
Os grupos têm um limite padrão de 1000 membros por grupo e só oferecem suporte a jogadores e personagens como membros
Usando grupos de entidades
Ao criar um grupo, a primeira entidade adicionada ao grupo é colocada em uma função de Administrador (para simplificar, este guia se refere a essa entidade como proprietário). O proprietário poderá então convidar novos membros, criar novas funções com uma ampla variedade de permissões personalizáveis, modificar funções de membros, expulsar membros etc. Além disso, as mesmas funções de entidade que existem para entidades também funcionam para grupos, então você poderá salvar objetos JSON e arquivos diretamente no grupo para armazenar dados arbitrários específicos do jogo. O exemplo de código fornecido abaixo deve dar a você um ponto de partida para a interação básica com guildas. Ele permite criar grupos, adicionar e remover membros e excluir o grupo. Ele foi pensado como um ponto de partida e não demonstra nenhuma das funções ou permissões.Desconstruindo o exemplo
Este exemplo é construído como um controlador, que salva o mínimo de dados em um cache local (sendo o PlayFab a camada de dados autoritativa) e oferece uma maneira de executar operações CRUD em grupos. Vamos dar uma olhada em algumas das funções do exemplo fornecido:-
OnSharedError- Esse é um padrão típico nos exemplos do PlayFab. A maneira mais simples de lidar com um erro é relatá-lo. O cliente do seu jogo provavelmente terá uma lógica de tratamento de erros muito mais sofisticada. -
ListMembership- ChamaListMembershippara determinar todos os grupos aos quais a entidade fornecida pertence. Os jogadores querem saber de quais grupos já participam. -
CreateGroup/DeleteGroup- Praticamente autoexplicativas. Este exemplo demonstra a atualização do cache local de informações do grupo quando essas chamadas são executadas com sucesso. -
InviteToGroup/ApplyToGroup- Entrar em um grupo é um processo de duas etapas, e pode ser iniciado em ambas as direções:- Um jogador pode pedir para entrar em um grupo.
- Um grupo pode convidar um jogador.
-
AcceptGroupInvitation/AcceptGroupApplication- A segunda etapa do processo de entrada. A entidade que responde aceita o convite, concluindo o processo de tornar o jogador parte do grupo. -
RemoveMembers- Membros com autoridade para isso (definida pelas permissões de suas funções) poderão expulsar membros de um grupo.
Servidor vs. cliente
Como todos os novos métodos de API de entidade, não há distinção entre a API de servidor e a API de cliente. A ação é executada pelo chamador, de acordo com a forma como o processo foi autenticado. Um cliente será identificado como tal e chamará esses métodos como uma entidade de jogador do título, e suas funções e permissões dentro do grupo serão avaliadas a cada chamada, garantindo que ele tenha permissão para executar essa ação. Um servidor é autenticado com a mesmadeveloperSecretKey, que identifica esse processo como uma entidade de título. Um título ignora as verificações de função, e as chamadas de API executadas por um título só falharão se a ação for impossível de executar, como no caso em que uma entidade não pode ser removida por não ser membro.
