Tutoriels & RéférenceExemple concret
Cas pratique : Jeu de rythme communautaire
Exemple complet de partage de niveaux personnalisés combinant audio, image et table No-Code.
Ce cas pratique vous guide dans la réalisation d'une fonctionnalité communautaire complète : un éditeur de niveaux partagés pour un jeu de rythme. Vous allez combiner une Table No-Code pour les métadonnées et le Stockage Angon Cloud pour héberger les musiques, pochettes et partitions JSON.
Architecture de la solution
| Élément | Emplacement | Raison |
|---|---|---|
| Morceau audio (.mp3 / .ogg) | Stockage Cloud | Fichier volumineux (1 à 10 Mo). Renvoie une URL de streaming directe. |
| Pochette (.png / .jpg) | Stockage Cloud | Illustration pour la vignette du catalogue. |
| Partition des notes (.json) | Stockage Cloud | Structure JSON contenant les timings et positions des notes à frapper. |
| Fiche du niveau | Table niveaux_communaute | Titre, BPM, difficulté, pseudo créateur, likes et les 3 URLs. |
Étape 1 : Téléversement par le créateur
Dans la scène de création de niveau, le créateur choisit ses fichiers via les boîtes de dialogue natives :
Événements de publication du niveau
// 1. Envoi de la musique
Action : Ouvrir la boîte de dialogue pour téléverser un fichier sur Angon Cloud
(nom: "track.mp3", types: "audio/*", log: VariableLog)
Condition : Le dernier téléversement de fichier a réussi
Action : Modifier la variable Scene NouveauNiveau.url_musique = AngonCloud::DernierFichierUrl()
// 2. Envoi de la pochette
Action : Ouvrir la boîte de dialogue pour téléverser un fichier sur Angon Cloud
(nom: "cover.png", types: "image/*", log: VariableLog)
Condition : Le dernier téléversement de fichier a réussi
Action : Modifier la variable Scene NouveauNiveau.url_image = AngonCloud::DernierFichierUrl()
// 3. Sauvegarde de la partition de notes (JSON)
Action : Sauvegarder le fichier "partition.json" avec le contenu ToJSON(Variable(GrilleNotes))
sur Angon Cloud (écraser: true, log: VariableLog)
Condition : Le dernier téléversement de fichier a réussi
Action : Modifier la variable Scene NouveauNiveau.url_notes = AngonCloud::DernierFichierUrl()
Modifier la variable Scene NouveauNiveau.titre = ChampTitre.String()
Modifier la variable Scene NouveauNiveau.auteur = AngonCloud::Pseudo()
Modifier la variable Scene NouveauNiveau.likes = 0
// Créer la fiche dans la table communautaire
Créer une ligne dans la table "niveaux_communaute" depuis la variable Scene NouveauNiveauÉtape 2 : Consultation par la communauté
Dans le menu du catalogue communautaire, chargez les niveaux les plus appréciés :
Chargement du catalogue des niveaux populaires
// Récupérer les 20 niveaux les plus populaires
Condition : Au début de la scène
Action : Lister les lignes de la table "niveaux_communaute" triées par "likes" ordre descendant (limite: 20) dans la variable Scene NiveauxPopulairesÉtape 3 : Chargement et lancement du niveau
Lorsqu'un joueur clique sur un niveau du catalogue, votre jeu dispose directement des URLs publiques pour lancer la musique et charger la partition JSON :
- Musique : Lancer la lecture audio en streaming via l'action standard GDevelop Jouer un son sur un canal en passant l'URL.
- Pochette : Affecter l'URL à l'objet Sprite du menu.
- Partition : Télécharger le JSON de la partition et peupler la structure de données des notes.