GameMaker Studio · GML
Sauvegardes cloud
Les sauvegardes cloud permettent a un joueur de conserver sa progression entre appareils. Chaque sauvegarde occupe un emplacement numerote (1-10) et est une struct libre validee selon le schema que vous definissez dans le panneau.
Definir un Schema de Sauvegarde
Dans le panneau, declarez les champs qu'une sauvegarde peut contenir et leurs types. Le serveur valide chaque sauvegarde selon ce schema.
Les emplacements vont de 1 a 10. Sauvegarder dans un emplacement utilise l'ecrase.
Sauvegarder
Envoyez une struct vers un emplacement et lisez save_completed dans la file.
var data = { x: obj_player.x, y: obj_player.y, money: global.money, map: global.mapid };
gmda_saveGame(1, data); // slot 1 -> save_completedLa struct est envoyee en JSON. Gardez les sauvegardes raisonnablement petites.
Charger
Demandez un emplacement et lisez save_loaded. Un emplacement vide n'est pas une erreur : e.response.save est undefined ; quand l'emplacement est utilise, e.response.save.data est votre struct, telle quelle.
gmda_loadGame(1); // -> save_loaded
// dans la boucle de poll :
case "save_loaded":
if (e.success && is_struct(e.response.save)) {
var data = e.response.save.data;
obj_player.x = data.x;
global.money = data.money;
}
break;// save_loaded -> e.response.save (undefined when the slot is empty):
{
"slot": 1,
"data": { "level": 5, "coins": 120 }, // your struct, verbatim
"updated_at": "2026-06-07T18:00:00.000Z"
}
// read it with: if (is_struct(e.response.save)) { var data = e.response.save.data; }Lister les Sauvegardes
Listez les emplacements utilises avec leurs metadonnees (sans le contenu) et lisez saves_listed.
gmda_listSaves(); // -> saves_listed (e.response.saves)# saves: Array, each used slot (metadata only, no data):
{
"slot": int,
"size_bytes": int,
"updated_at": String
}
# save_completed -> meta has the same shape (slot, size_bytes, updated_at).Supprimer une Sauvegarde
Supprimez un emplacement et lisez save_deleted.
gmda_deleteSave(1); // -> save_deleted