Adicionar o GSDK ao projeto
Este artigo descreve como atualizar um projeto existente para que ele possa ser hospedado no PlayFab Multiplayer Servers (MPS). O processo envolve adicionar e configurar o PlayFab GSDK em um projeto do Unreal. As instruções aqui foram escritas usando o projeto modelo ThirdPersonMP do Unreal. Observe que seu projeto do Unreal deve ter os seguintes recursos:- Rede
- Multijogador
- Servidor de jogo dedicado
Objetivos
Adicionaremos e configuraremos o PlayFab Unreal GSDK no seu projeto e o testaremos localmente para verificar se ele funciona conforme o esperado no PlayFab Multiplayer Services.Requisitos
- Baixe o Visual Studio. A versão Community é gratuita.
- Cargas de trabalho necessárias: Desenvolvimento para desktop com .NET e Desenvolvimento para desktop com C++
- Baixe o código-fonte do Unreal Engine. Para obter instruções, consulte Baixando o código-fonte do Unreal Engine (externo).
- Um projeto de exemplo ThirdPersonMP concluído ou um projeto com recursos semelhantes
- Plug-in PlayFab Unreal GSDK
- [Opcional] Plug-in do PlayFab no Marketplace ou a versão de código-fonte no GitHub. Esse plug-in não é necessário para o GSDK, mas é necessário para muitos serviços do PlayFab, incluindo o logon.
Implementação em C++
Adicionar o plug-in ao projeto
Siga estas etapas para adicionar o Unreal GSDK ao seu projeto:- Vá para o seu projeto do Unreal
- Abra o Explorador de Arquivos e crie uma pasta Plugins no diretório raiz do seu jogo. Na pasta Plugins, crie uma pasta chamada PlayFabGSDK.
- Vá para {depot}\GSDK\gsdk\UnrealPlugin. Arraste todos os arquivos da pasta UnrealPlugin para a pasta Plugins/PlayFabGSDK.
- Por fim, abra o arquivo
{ProjectName}.uprojectem um editor de texto de sua escolha. Na matriz de plug-ins, adicione o plug-in “PlayFabGSDK”.
Incluir o plug-in nos seus módulos
- Atualize o arquivo {ProjectName}.Build.cs para adicionar “PlayFabGSDK” à lista PublicDependencyModuleNames.AddRange(); da seguinte forma:
- Clique com o botão direito do mouse no arquivo
{ProjectName}.uprojecte selecione a opção Switch Unreal Engine version, que é como você pode verificar rapidamente qual versão do Unreal Engine está usando no momento. O pop-up mostrado abaixo deverá aparecer. Se você já vir que a versão do Unreal Engine é o build a partir do código-fonte, não precisa alterar nada; então, clique em Cancel. Se a versão do Unreal não for o build a partir do código-fonte, selecione-o na lista suspensa e clique em OK.

-
Clique com o botão direito do mouse no arquivo
{ProjectName}.uprojectnovamente e selecione “Generate Visual Studio Project Files”. - Por fim, crie o projeto no Visual Studio e inicie o Editor selecionando a configuração Development Editor.

Configuração do projeto
Depois que seu projeto tiver o modo de servidor habilitado, você terá um arquivo {ProjectName}Server.Target.cs. O resultado deve ser semelhante a:Criar/atualizar a classe GameInstance
Criar uma classe GameInstance
Se você estiver criando um projeto do zero e ainda não tiver uma classe GameInstance, siga primeiro estas instruções de exemplo para criar uma classe GameInstance. Se estiver usando um projeto que já tem uma classe GameInstance (por exemplo, ShooterGame da biblioteca de exemplos do Unreal), passe para a seção intitulada Modificar a classe GameInstance.No Unreal Editor:
- Selecione Files
- Selecione Create a new C++ class
- Selecione Show all classes
- Digite
GameInstanceno campo de pesquisa- Ao selecioná-la diretamente, conforme descrito, tudo deverá ser gerado corretamente e, em seguida, você poderá adicionar as funções detalhadas abaixo
- Feche o Unreal e execute Generate project files novamente no modo de build a partir do código-fonte
- Usando o Visual Studio, abra esses arquivos recém-criados e siga as instruções para modificar a classe GameInstance.
Modificar a classe GameInstance
Dependendo da configuração do seu projeto, você pode modificar a classe GameInstance usando C++ ou Blueprints. As duas formas são apresentadas abaixo; selecione a que atende às suas necessidades.Implementação em C++
Localize sua classe GameInstance, que provavelmente tem um nome semelhante a {ProjectName}GameInstance ou MyGameInstance. De agora em diante, sua classe GameInstance será indicada como [YourGameInstanceClassName].Modificar o arquivo de cabeçalho da GameInstance
Primeiro, verifique as instruções include e garanta que os seguintes itens estejam incluídos no arquivo de cabeçalho da sua classe GameInstance ([YourGameInstanceClassName].h):Modificar o arquivo CPP da GameInstance
Em seguida, localize o arquivo [YourGameInstanceClassName].cpp. Verifique se os seguintes itens estão incluídos:Criar a função Init()
Se você já tinha uma função Init(), verifique no arquivo
[YourGameInstanceClassName].cpp se há uma variável que indica se a instância é de um servidor dedicado. Se você encontrar essa variável, adicione o seguinte ao final da sua função Init():
Modificar a função Init() existente
Por fim, adicione estas implementações de método ao final do arquivo
[YourGameInstanceClassName].cpp:
Implementação em Blueprint
Esta parte só é necessária se você decidiu prosseguir com a implementação em Blueprint, e não com a implementação pura em C++.- Observe a janela Content Browser no Unreal Editor
- Escolha ou crie uma pasta para conter os novos Blueprints
- Clique com o botão direito do mouse e crie uma classe Blueprint
- No menu suspenso All classes, encontre sua classe GameInstance
- Neste exemplo, o blueprint se chama “MyGameInstance”
- Clique duas vezes no blueprint
- No lado esquerdo, passe o mouse sobre o campo de funções e selecione o menu suspenso Override
- Selecione a função Init
- Clique com o botão direito do mouse no gráfico e adicione todas as funções de registro do GSDK
- Para GSDK Shutdown e Maintenance Delegate, arraste uma linha a partir do quadrado vermelho e selecione “Add Custom Event”
- Para “Register GSDK Health Check Delegate”, selecione “Create Event” em “Event Dispatchers”.
-

- No menu suspenso do novo nó, selecione “Create matching function”. Isso é importante, pois o GSDK Health Check Delegate tem um valor de retorno.
-

- Na função, verifique se o valor booliano de retorno está marcado.
-

- Não se esqueça de conectar todos os nós ao nó Event Init.
- Ao final, adicione o nó “ReadyforPlayers” para poder reagir ao sinal de prontidão do PlayFab.
- Além disso, não se esqueça de adicionar o nó “SetDefaultServerHostPort” para se conectar à porta que o GSDK espera.
- Para cada função/nó do GSDK que você quiser adicionar ao seu Blueprint, você pode verificar se ele existe digitando as primeiras letras do nome da função no novo nó e vendo a função do GSDK esperada aparecer nas sugestões.
- No final, seu Blueprint deverá ser semelhante ao apresentado na imagem abaixo.
-

Definir a classe GameInstance
Depois de criar uma classe GameInstance personalizada que se integra ao gsdk, você precisa configurar seu projeto para realmente usar essa classe GameInstance recém-criada. Há duas maneiras de fazer isso: pelo editor do Unreal Engine ou editando diretamente o DefaultEngine.ini.No Unreal Editor
No editor, a GameInstance padrão pode ser definida pela interface do usuário. No editor, vá para Edit -> Project Settings. Na janela aberta, navegue até Maps&Modes no lado esquerdo. Role até o final e, em seguida, você poderá definir a opçãoGameInstanceClass diretamente como sua nova classe GameInstance (evite erros de digitação; ela deve corresponder exatamente).
