Configuração do projeto Defold
SO: Este guia foi escrito para o Windows 10. Ele também deve funcionar bem em um Mac.- Crie uma conta e baixe o Defold, ou entre em https://www.defold.com/ (usa Google O-Auth): https://d.defold.com/stable/.
- Se você ainda não concluiu o “Getting Started Tutorial” do Defold, faça isso agora.
- Crie um novo projeto no Defold Dashboard, conforme mostrado abaixo.

- Execute o Defold e carregue seu novo projeto. Você verá várias janelas parecidas com o exemplo mostrado abaixo.

- Atualize as configurações do projeto (Project Settings) e inclua o PlayFab nas dependências: https://github.com/PlayFab/LuaSdk/raw/master/Defold/PlayFabClientSdk.zip

- Selecione: Project -> Fetch Libraries, e você verá uma nova pasta interna do PlayFab, conforme mostrado abaixo.

-
Crie alguns arquivos:
- main/PfGettingStarted.gui
- Selecione a pasta “main” -> new -> Gui File -> PfGettingStarted.gui.
- main/PfGettingStarted.gui_script
- Selecione a pasta “main” -> new -> Gui Script File -> PfGettingStarted.gui_script.
-
Conecte nossa nova GUI em main.collection.
- Selecione main.collection para abri-lo.
-
No painel Outline:
- Selecione Add Game Object (opcionalmente, renomeie para PfGui).
- Selecione o novo objeto, Add Component From File…
- PfGettingStarted.gui (criado acima).
- Selecione o novo objeto, Add Component From File…
- Selecione Add Game Object (opcionalmente, renomeie para PfGui).
-
O painel Outline exibindo main.collection deve ficar parecido com o exemplo mostrado abaixo.

Configurar sua primeira chamada à API
Este guia fornecerá as etapas mínimas para fazer sua primeira chamada à API do PlayFab. A confirmação ficará visível na janela do jogo.- No editor do Defold, clique duas vezes em PfGettingStarted.gui_script.
- Isso deve abrir o arquivo para edição de texto.
- Atualize o conteúdo de PfGettingStarted.gui_script conforme mostrado abaixo.
Para consultar o formato correto do objeto loginRequest neste exemplo, consulte a referência da API de LoginWithCustomID.
-
No editor do Defold, clique com o botão direito em PfGettingStarted.gui -> Open With -> Text Editor. Infelizmente, isso altera uma configuração interna do Defold, então:
- Abra-o novamente: clique com o botão direito em PfGettingStarted.gui -> Open With -> GUI Editor. Isso restaura o padrão normal.
- Selecione a guia de edição de texto de PfGettingStarted.gui.
- Atualize o conteúdo de texto de PfGettingStarted.gui conforme mostrado abaixo.
Concluir e executar
Primeiro, verifique se tudo foi salvo e selecione outra guia. Em seguida, procure marcadores ” * ” — às vezes o Defold não atualiza. Depois, compile seu jogo (Ctrl+b ou menus suspensos: Project -> Build and Launch). Você verá o seguinte texto na tela: “Congratulations, you made your first successful API call!” Para obter uma lista de todas as chamadas disponíveis da API de cliente, consulte nossa documentação de Referências de API do PlayFab. Boa programação!Desconstruir o código
-
PfGettingStarted.gui- Nossas instruções para
PfGettingStarted.guivisam a praticidade, não o ensino. Este arquivo é uma definição de GUI que adiciona uma caixa de texto à tela e a vincula ao nosso outro script:PfGettingStarted.gui_script. Normalmente, você NÃO editaria esses arquivos em formato de texto. - Para obter instruções adequadas sobre como criar widgets de GUI no Defold, leia este guia:
- GUI scenes in Defold
- Nossas instruções para
-
PfGettingStarted.gui_script-
Instruções require e configuração.
PlayFabClientApipermite fazer chamadas à API de cliente — é por isso que você está aqui.- IPlayFabHttps e PlayFabHttps_Defold:
- Os plug-ins do PlayFab para Defold são criados sobre o PlayFab LuaSdk. A linguagem Lua não tem um módulo HTTPS adequado. Cada mecanismo de jogo que usa Lua implementa o seu próprio. Essas duas variáveis informam ao PlayFabSdk como acessar HTTPS. Você só precisa fazer isso uma vez no projeto, na primeira cena. Fora isso, é um código clichê obrigatório
-
PlayFabClientApi.settings.titleId = "144"- Todo projeto que usa o PlayFab deve criar um título exclusivo no site do PlayFab, que chamamos de Game Manager. Encontre seu
titleIdno Game Manager e substitua144pelo seutitleId.
- Todo projeto que usa o PlayFab deve criar um título exclusivo no site do PlayFab, que chamamos de Game Manager. Encontre seu
-
function init(self)- Função do Defold — é chamada quando a GUI é inicializada.
-
local loginRequest = { TitleId = PlayFabClientApi.settings.titleId, CustomId = "GettingStartedGuide", CreateAccount = true }- A maioria dos métodos da API do PlayFab exige parâmetros de entrada, e esses parâmetros são empacotados em um objeto de requisição
- Cada método da API exige um objeto de requisição exclusivo, com uma combinação de parâmetros opcionais e obrigatórios
- Para
LoginWithCustomIDRequest, há um parâmetro obrigatórioCustomId, que identifica um jogador de forma exclusiva, eCreateAccount, que permite a criação de uma nova conta com essa chamada.
- Para
- Para o logon, a maioria dos desenvolvedores vai querer usar um método de logon mais adequado
- Consulte a documentação de logon do PlayFab para obter uma lista de todos os métodos de logon e parâmetros de entrada. As opções comuns são:
-
PlayFabClientApi.LoginWithCustomID(loginRequest, OnLoginSuccess, OnLoginFailed)- Isso executa a chamada à API usando a requisição e fornece funções de callback para as condições de sucesso e falha.
-
function OnLoginSuccess(result)- O objeto result de muitos callbacks de sucesso da API conterá as informações solicitadas.
LoginResultcontém algumas informações básicas sobre o jogador, mas, para a maioria dos usuários, o logon é simplesmente uma etapa obrigatória antes de chamar outras APIs.
-
function OnLoginFailed(error)- As chamadas à API podem falhar por vários motivos, e você deve sempre tentar tratar a falha.
-
Por que as chamadas à API falham (em ordem de probabilidade)
- PlayFabSettings.TitleId não está definido. Se você se esquecer de definir titleId para o seu título, nada funcionará.
-
Parâmetros da requisição. Se você não tiver fornecido as informações corretas ou obrigatórias para uma determinada chamada à API, ela falhará. Consulte
error.errorMessage,error.errorDetailsouerror.GenerateErrorReport()para obter mais informações. - Problema de conectividade do dispositivo. Celulares perdem e recuperam a conectividade constantemente, portanto qualquer chamada à API pode falhar aleatoriamente a qualquer momento e funcionar logo em seguida. Entrar em um túnel pode desconectar você completamente.
- Problema no servidor do PlayFab. Como em qualquer software, podem ocorrer problemas. Consulte nossas notas de versão para obter atualizações.
- A internet não é 100% confiável. Às vezes, a mensagem é corrompida ou não chega ao servidor do PlayFab.
- Se você estiver com dificuldades para depurar um problema e as informações do erro não forem suficientes, visite nossos fóruns
-
local pfTestOutput = gui.get_node("pfOutput")- Esta é outra função de GUI do Defold. Ela busca o objeto de GUI
pfOutputdefinido no nosso arquivo PfGettingStarted.gui e atribui a ele o texto a ser exibido ao usuário.
- Esta é outra função de GUI do Defold. Ela busca o objeto de GUI
-
Instruções require e configuração.
