Mode Hors-Ligne & Synchronisation
Architecture offline-first : jouez sans interruption et synchronisez vos données automatiquement.
Comment fonctionne le mode hors-ligne ?
Toutes les lignes lues sont mises en cache sur l'appareil. Lorsque le joueur effectue une requête hors-ligne, les données sont servies instantanément depuis le cache local.
Les créations, modifications et suppressions sont empilées dans une file d'attente persistante sans bloquer le jeu ni afficher d'erreur au joueur.
Dès que l'appareil repasse en ligne, les opérations sont rejouées dans l'ordre strict sur le serveur et les identifiants temporaires sont remappés automatiquement.
Conditions de détection réseau
L'extension expose des conditions visuelles pour réagir à l'état du réseau :
// Tester si l'appareil a une connexion active
Condition : L'appareil est connecté à internet (AngonCloud::EstEnLigne)
Action : Modifier l'opacité de IconeReseau = 255
// Détecter le passage hors-ligne
Condition : L'appareil est hors ligne (AngonCloud::EstHorsLigne)
Action : Afficher un bandeau d'information "Mode hors-ligne actif"Les 3 Politiques Hors-Ligne par table
Chaque table peut avoir une politique d'accès différente, configurable dans la console :
| Politique | Lecture hors-ligne | Écriture hors-ligne | Cas d'usage idéal |
|---|---|---|---|
| autorise (Défaut) | Oui (cache local) | Oui (file de sync) | Inventaire joueur, quêtes, progression locale |
| lecture_seule | Oui (cache local) | Non (bloquée) | Catalogue d'objets, encyclopédie, succès |
| desactive | Non (interdite) | Non (interdite) | Boutique argent réel, transactions sensibles |
Génération d'identifiants temporaires
Lorsqu'une nouvelle ligne est créée en mode hors-ligne, Angon Cloud génère un identifiant unique local préfixé par loc_ (par exemple loc_1740001234_abc).
Cet identifiant peut être manipulé immédiatement dans le jeu (par exemple pour attacher un objet à un inventaire). Lors de la synchronisation vers le serveur, le serveur attribue le véritable UUID Postgres et met à jour automatiquement toutes les références locales.
Synchronisation vers Angon Cloud
La synchronisation se déclenche automatiquement à chaque détection d'événement réseau online. Vous pouvez également forcer manuellement l'envoi de la file d'attente à tout moment :
// Déclencher l'envoi immédiat des données en attente
Action : Synchroniser les données locales vers Angon Cloud (AngonCloud::ForcerSynchronisation)
// Vérifier si des données attendent encore d'être envoyées
Condition : Des données locales sont en attente de synchronisation (AngonCloud::DonneesEnAttenteDeSynchronisation)
Action : Modifier le texte de StatutLabel = ToString(AngonCloud::NombreOperationsEnAttente()) + " action(s) à synchroniser"