Godot 4 · GDScript
Configuracion
Gamdato ofrece servicios backend listos para usar. El cliente de Godot es un addon para Godot 4.5+ (GDScript) que expone un nodo global llamado Gamdato, accesible desde cualquier script sin importar nada.
Crear una Cuenta
Registrate en gamdato.com. Se enviara un enlace de activacion a tu correo (expira en 24 horas). Despues de verificar tu email, inicia sesion para acceder al panel.
Registrar un Juego
En tu panel, crea un nuevo juego ingresando un nombre. Obtendras un panel para gestionar tablas, contenido, recompensas y ver la lista de jugadores.
Guarda el GAME_ID y la API_KEY: los necesitaras para conectar tu juego con el servidor.
Activar el Plugin
Copia la carpeta del addon a addons/ en tu proyecto y activalo en Project > Project Settings > Plugins > Gamdato > Enable. Esto registra el nodo global Gamdato, disponible desde cualquier script.
Configuracion Inicial
Configura el cliente una sola vez al arrancar, normalmente en el _ready() de tu escena principal. El orden de las tablas define su indice (1, 2, 3...).
Gamdato.set_controller("TU-GAME-ID", "TU-API-KEY")
Gamdato.set_leaderboard(["clave_tabla_1", "clave_tabla_2"])Seguridad: no escribas tu API_KEY directamente en el codigo ni la subas al repositorio. Leela de una variable de entorno, var key := OS.get_environment("GAMDATO_API_KEY"), o de un archivo de configuracion ignorado por git, y pasala a set_controller(). La clave sigue incluida en el build exportado, pero mantenerla fuera del control de versiones evita filtraciones. Un buen patron es un autoload persistente (p. ej. un nodo "GamdatoController") que cargue las credenciales una vez y llame a set_controller() por ti.
Conectar Senales
No haces peticiones de red: llamas funciones y escuchas senales con el resultado. Conecta las senales en _ready() antes de configurar. La sesion se mantiene y renueva 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("TU-GAME-ID", "TU-API-KEY")
Gamdato.set_leaderboard(["puntajes_normal", "puntajes_dificil"])
func _on_ready() -> void:
for fila in Gamdato.get_table_data(1):
print("#%d %s %d" % [fila.rank, fila.player_name, fila.score])Estado y Conexion
Funciones de estado para reaccionar en tu UI:
- is_ready(): true cuando ya hay datos listos para mostrar.
- is_session_active(): true si estas conectado (ideal para un indicador de estado).
- has_connectivity(): true si hay internet ahora. Escucha connectivity_changed para reaccionar a los cambios.
- reload_info(): refresca todas las tablas desde el servidor.
Funciona sin Conexion
Gamdato esta pensado para que tu juego nunca se sienta roto sin internet:
- Lectura instantanea: rankings, tu mejor score y el contenido descargado se sirven desde lo guardado.
- Scores a salvo: con submit_with_retry, un score enviado sin conexion se manda solo al reconectar, incluso si cierras el juego.
- Reconexion sola: el plugin reintenta conectarse por su cuenta y se recupera cuando vuelve la red.