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.
Prérequis#
- Godot 4.2 ou plus récent, GDScript. Exports desktop, mobile et Web.
- Aucune dépendance : uniquement
HTTPRequest,CryptoetFileAccessde Godot.
Installation#
- Téléchargez le
.zipdu SDK Godot depuis la page de votre projet ou la page téléchargements. - Décompressez-le dans votre projet pour que le dossier soit
res://addons/majacloud(gardez ce nom). - 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ètre | Par défaut | Signification |
|---|---|---|
connection/base_url | L'adresse de cette installation. | |
connection/project_id | Tableau de bord ▸ Clés API. | |
connection/client_key | La clé publique pk_live_…. | |
connection/config_public_key | Renseignée par Test connection ; épingle la vérification de la configuration à distance. | |
advanced/timeout_seconds | 15 | Secondes avant qu'une requête échoue avec timeout. |
advanced/max_retries | 2 | Nouvelles tentatives des requêtes sûres en cas d'erreur réseau ou serveur. |
advanced/fetch_config_on_start | true | Récupérer la configuration à distance au démarrage du jeu. |
advanced/log_requests | false | Afficher 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 :
# 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.
| Champ | Signification |
|---|---|
ok | true si l'appel a réussi. |
value | La réponse REST sous forme de Dictionary (voir la référence REST) ; les nombres entiers arrivent en int. |
error | Vide en cas de succès, sinon un code stable comme conflict ou network (voir les erreurs). |
message | Une explication lisible. |
status | Statut HTTP, 0 si le serveur n'a pas été joint. |
request_id | Recherchez-le sur la page Journaux. |
details | Donné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 :
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.