SDK Godot

Un addon GDScript pour Godot 4.2+ avec les mêmes services que le SDK Unity.

Les commentaires du code et les noms d'API restent en anglais pour correspondre aux SDK.

Sur cette page

Prérequis#

  • Godot 4.2 ou plus récent, GDScript. Exports desktop, mobile et Web.
  • Aucune dépendance : uniquement HTTPRequest, Crypto et FileAccess de Godot.

Installation#

  1. Téléchargez le .zip du SDK Godot depuis la page de votre projet ou la page téléchargements.
  2. Décompressez-le dans votre projet pour que le dossier soit res://addons/majacloud (gardez ce nom).
  3. Project ▸ Project Settings ▸ Plugins : activez Majacloud. Le plugin ajoute l'autoload Majacloud.

Paramètres du projet#

Le plugin ajoute ces entrées dans Project Settings ▸ General ▸ Majacloud :

ParamètrePar défautSignification
connection/base_urlL'adresse de cette installation.
connection/project_idTableau de bord ▸ Clés API.
connection/client_keyLa clé publique pk_live_….
connection/config_public_keyRenseignée par Test connection ; épingle la vérification de la configuration à distance.
advanced/timeout_seconds15Secondes avant qu'une requête échoue avec timeout.
advanced/max_retries2Nouvelles tentatives des requêtes sûres en cas d'erreur réseau ou serveur.
advanced/fetch_config_on_starttrueRécupérer la configuration à distance au démarrage du jeu.
advanced/log_requestsfalseAfficher chaque requête dans la sortie.

Test connection#

Project ▸ Tools ▸ Majacloud: Test connection appelle l'API avec vos paramètres, affiche le nom du projet et l'offre, et enregistre la clé publique de la configuration à distance dans majacloud/connection/config_public_key.

Configurer depuis le code#

Appelez configure() pour changer d'environnement depuis le code. Ces paramètres remplacent les précédents pour le reste de la session :

GDScript
# Switch environments from code; the last argument pins the Remote Config key (PEM)
Majacloud.configure("https://staging.yourstudio.com", "<project id>", "pk_live_…", public_key_pem)

MajacloudResult#

Chaque appel s'attend avec await et renvoie un MajacloudResult. Il ne plante jamais en cas d'erreur réseau ou serveur.

ChampSignification
oktrue si l'appel a réussi.
valueLa réponse REST sous forme de Dictionary (voir la référence REST) ; les nombres entiers arrivent en int.
errorVide en cas de succès, sinon un code stable comme conflict ou network (voir les erreurs).
messageUne explication lisible.
statusStatut HTTP, 0 si le serveur n'a pas été joint.
request_idRecherchez-le sur la page Journaux.
detailsDonnées supplémentaires du serveur, par ex. next_claim_at.
is_retryable() et is_not_found().

Signaux#

Connectez ces signaux pour mettre à jour votre interface :

GDScript
func _ready() -> void:
	Majacloud.auth.player_changed.connect(_on_player_changed)
	Majacloud.auth.session_expired.connect(func(): show_sign_in_screen())
	Majacloud.remote_config.updated.connect(func(): apply_balance())

func _on_player_changed(player: Dictionary) -> void:
	$NameLabel.text = player.get("display_name", "")

Stockage sur l'appareil#

La session invité est stockée chiffrée dans user://majacloud/<project id>.session et restaurée au lancement suivant. La configuration à distance vérifiée est mise en cache à côté pour le jeu hors ligne, et user://majacloud/device.id contient un ID d'installation aléatoire (non lié au matériel).

Exports Web#

  • Servez l'export en HTTPS ; l'API envoie les en-têtes CORS dont les navigateurs ont besoin.
  • user:// est conservé dans le stockage du navigateur : les sessions survivent aux rechargements de page.
  • Appelez link_account() depuis un événement d'entrée (par exemple un appui sur un bouton) pour que le navigateur autorise le nouvel onglet.

Recherche dans les titres de page, les intertitres et le texte.

↑↓ pour naviguer ↵ pour ouvrir Esc pour fermer