Godot 4 · GDScript
Configuração
O Gamdato oferece serviços de backend prontos para usar. O cliente Godot é um addon para Godot 4.5+ (GDScript) que expõe um nó global chamado Gamdato, acessível a partir de qualquer script sem precisar importar nada.
Crie uma Conta
Cadastre-se em gamdato.com. Um link de ativação é enviado para o seu e-mail (expira em 24 horas). Após verificar seu e-mail, faça login para acessar o painel.
Registre um Jogo
No seu painel, crie um novo jogo informando um nome. Você recebe um painel de controle para gerenciar rankings, conteúdo, recompensas e visualizar sua lista de jogadores.
Guarde o GAME_ID e a API_KEY: você precisará deles para conectar o seu jogo ao servidor.
Habilite o Plugin
Copie a pasta do addon para addons/ no seu projeto e habilite-o em Project > Project Settings > Plugins > Gamdato > Enable. Isso registra o nó global Gamdato, disponível a partir de qualquer script.
Configuração Inicial
Configure o cliente uma vez na inicialização, normalmente no _ready() da sua cena principal. A ordem das tabelas define o índice delas (1, 2, 3...).
Gamdato.set_controller("YOUR-GAME-ID", "YOUR-API-KEY")
Gamdato.set_leaderboard(["table_key_1", "table_key_2"])Seguranca: nao fixe no codigo nem faca commit da sua API_KEY. Leia-a de uma variavel de ambiente, var key := OS.get_environment("GAMDATO_API_KEY"), ou de um arquivo de config ignorado pelo git, e passe-a para set_controller(). A chave continua embutida no build exportado, mas mante-la fora do controle de versao evita vazamentos. Um bom padrao e um autoload persistente (ex.: um no "GamdatoController") que carrega as credenciais uma vez e chama set_controller() por voce.
Conecte os Sinais
Você nunca faz chamadas de rede: você chama funções e escuta os sinais para obter o resultado. Conecte os sinais no _ready() antes de configurar. A sessão é mantida ativa e renovada automaticamente.
func _ready() -> void:
Gamdato.session_started.connect(_on_connected)
Gamdato.tables_loaded.connect(_on_ready)
Gamdato.submit_completed.connect(_on_score_sent)
Gamdato.set_controller("YOUR-GAME-ID", "YOUR-API-KEY")
Gamdato.set_leaderboard(["scores_normal", "scores_hard"])
func _on_ready() -> void:
for row in Gamdato.get_table_data(1):
print("#%d %s %d" % [row.rank, row.player_name, row.score])Status e Conexão
Funções de status para reagir na sua UI:
- is_ready(): true quando os dados estão prontos para exibição.
- is_session_active(): true enquanto conectado (ideal para um indicador de status).
- has_connectivity(): true se houver internet no momento. Escute connectivity_changed para reagir às mudanças.
- reload_info(): atualiza todas as tabelas a partir do servidor.
Funciona Offline
O Gamdato foi projetado para que seu jogo nunca pareça quebrado sem internet:
- Leituras instantâneas: classificações, sua melhor pontuação e o conteúdo baixado são servidos a partir do armazenamento local.
- As pontuações estão seguras: com submit_with_retry, uma pontuação enviada offline é entregue na reconexão, mesmo que o jogador feche o jogo.
- Reconexão automática: o plugin tenta novamente por conta própria e se recupera quando a rede retorna.