GameMaker Studio · GML
Configuração
O Gamdato oferece um conjunto completo de serviços de backend para desenvolvedores de jogos. Atualmente damos suporte ao GameMaker Studio 2.3+ com planos de expandir para mais engines.
Crie uma Conta
Cadastre-se em gamdato.com. Um link de ativação será enviado para o seu e-mail (ele expira em 24 horas). Após verificar seu e-mail, faça login com suas credenciais para acessar o painel.
Registre um Jogo
Acesse seu painel e crie um novo jogo informando um nome. O sistema gerará um painel de controle onde você poderá gerenciar informações do jogo, rankings, conquistas e visualizar sua lista de jogadores.
Guarde o GAME_ID e a GAME_KEY, você precisará deles para estabelecer a conexão entre o seu jogo e o servidor.
Baixe e Instale a Extensão
Baixe a extensão Gamdato e importe-a para o seu projeto do GameMaker. O arquivo para download contém uma integração básica, porém completa, de todos os serviços Gamdato. Recomendamos analisar como ela funciona antes de usá-la no seu projeto.
Configuração do Controlador
Crie um objeto persistente que seja instanciado uma vez no início do seu jogo. Coloque os seguintes scripts em seus eventos correspondentes:
Create Event:
gmda_setController("GAME-ID", "API-KEY");
gmda_setLeaderboard("TABLE-KEY");Step Event:
gmda_Updatefunction();Async HTTP Event:
gmda_HTTPfunction();Lendo Resultados: a Fila de Eventos
Você nunca recebe os dados de volta da própria chamada. Quase toda função gmda_* é assíncrona: você a dispara e, em seguida, lê o resultado da fila de eventos com gmda_pollEvent(), o substituto no GameMaker para os sinais do Godot. Esvazie a fila a cada Step; cada entrada é uma struct { event, success, ... }. Os getters síncronos (gmda_get*, gmda_status) retornam seu valor diretamente.
// Step event, após gmda_Updatefunction()
var e = gmda_pollEvent();
while (!is_undefined(e)) {
switch (e.event) {
case "session_started": show_debug_message("player: " + e.player_name); break;
case "submit_completed": show_debug_message("best: " + string(e.response.score.score)); break;
case "save_loaded": /* e.response.save.data */ break;
case "error": show_debug_message("error: " + string(e.error)); break;
}
e = gmda_pollEvent();
}Funções Utilitárias
Auxiliares adicionais disponíveis na extensão:
- gmda_status(): true quando a sessão está ativa E as tabelas estão carregadas. Verifique antes de chamadas que precisam de dados.
- gmda_getDate(): a última data local gerada por gmda_refreshDate().
- gmda_refreshDate(): atualiza e retorna a data/hora atual.
- gmda_reloadinfo(): rebusca todas as tabelas de ranking do servidor.