GameMaker Studio · GML
Configuracion
Gamdato proporciona un conjunto completo de servicios backend para desarrolladores de juegos. Actualmente soportamos GameMaker Studio 2.3+ con planes de expansion a mas motores.
Crear una Cuenta
Registrate en gamdato.com. Se enviara un enlace de activacion a tu correo electronico (expira en 24 horas). Despues de verificar tu email, inicia sesion con tus credenciales para acceder al panel.
Registrar un Juego
Navega a tu panel y crea un nuevo juego ingresando un nombre. El sistema generara un panel de control donde podras gestionar la informacion del juego, tablas de clasificacion, logros y ver la lista de jugadores.
Guarda el GAME_ID y GAME_KEY, los necesitaras para establecer la conexion entre tu juego y el servidor.
Descargar e Instalar la Extension
Descarga la extension de Gamdato e importala en tu proyecto de GameMaker. El archivo descargable contiene una integracion basica pero completa de todos los servicios de Gamdato. Recomendamos revisar como funciona antes de usarla en tu proyecto.
Configuracion del Controlador
Crea un objeto persistente que se instancie una vez al inicio de tu juego. Coloca los siguientes scripts en sus eventos correspondientes:
Evento Create:
gmda_setController("GAME-ID", "API-KEY");
gmda_setLeaderboard("TABLE-KEY");Evento Step:
gmda_Updatefunction();Evento Async HTTP:
gmda_HTTPfunction();Leer Resultados: la Cola de Eventos
Nunca obtienes datos de la llamada misma. Casi toda funcion gmda_* es asincrona: la disparas y luego lees el resultado de la cola de eventos con gmda_pollEvent(), el reemplazo en GameMaker de las senales de Godot. Vacia la cola en cada Step; cada entrada es un struct { event, success, ... }. Los getters sincronos (gmda_get*, gmda_status) retornan su valor directamente.
// Evento Step, despues de 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();
}Funciones de Utilidad
Ayudantes adicionales disponibles en la extension:
- gmda_status(): true una vez que la sesion esta activa Y las tablas estan cargadas. Verificalo antes de llamadas que necesitan datos.
- gmda_getDate(): la ultima fecha local generada por gmda_refreshDate().
- gmda_refreshDate(): actualiza y retorna la fecha/hora actual.
- gmda_reloadinfo(): vuelve a obtener todas las tablas de clasificacion del servidor.