Outils pour utilisateurs

Outils du site


fr:editeur:collaboration

Language / Langue : FR | EN

Édition collaborative

Depuis la version 4.12, l'éditeur graphique permet d'écrire un scénario à plusieurs, en temps réel. Une session collaborative est un document .jdrproj temporaire partagé par lien privé : chaque auteur travaille dans son éditeur habituel (web ou desktop) et voit les modifications des autres apparaître en direct.

<WRAP center round important 80%> La session ne sauvegarde rien : le document partagé vit en mémoire sur le serveur le temps de la session. Pensez à exporter ou sauvegarder régulièrement depuis votre éditeur — et toujours avant de quitter. </WRAP>

Vue d'ensemble

  • Une session = un document partagé + un token privé (dans le lien). Qui a le lien peut rejoindre.
  • Jusqu'à 10 auteurs simultanés, clients web et desktop mélangés librement.
  • Deux façons d'héberger :
    • sur le serveur web JDR-Bot (le plus simple) ;
    • sur votre PC via la version desktop (port TCP 41212), sans dépendre du serveur public.

Créer et rejoindre (web)

  1. Ouvrez votre scénario dans l'éditeur web.
  2. Outils → Créer session collaborative : donnez un nom à la session, le lien de partage est copié automatiquement.
  3. Envoyez le lien à vos co-auteurs. Le statut Collab (barre du bas) affiche les participants connectés, chacun avec sa couleur.

Pour rejoindre :

  • ouvrez simplement le lien reçu (…/editor?collab=…) — l'éditeur rejoint la session au chargement ;
  • ou Outils → Rejoindre session collaborative et collez le lien (ou le token seul).

Le document de la session remplace ce qui était ouvert dans votre éditeur — sauvegardez votre travail en cours avant de rejoindre.

Depuis le desktop

Rejoindre une session web

Outils → Rejoindre session collaborative, collez le lien. La version desktop demande (et mémorise) l'URL du serveur JDR-Bot web si elle n'est pas déduisible du lien.

Héberger en local

La version desktop peut héberger elle-même la session, sans serveur public :

  1. Outils → Héberger session locale : un serveur collaboratif démarre sur votre PC (port TCP 41212) et le lien LAN est copié.
  2. Sur le même réseau local (domicile, association…), les co-auteurs ouvrent ce lien dans leur navigateur ou leur desktop : ça marche directement.
  3. Par Internet, vous devez ouvrir/rediriger le port 41212 de votre box vers votre PC (comme pour héberger une partie de jeu), puis partager le lien avec votre IP publique.

L'hôte desktop et les invités (web ou desktop) travaillent dans la même session, avec les mêmes fonctionnalités. La session s'arrête quand l'hôte ferme l'application.

Pendant la session

  • Présence : la liste des participants (nom + couleur) est visible dans le statut Collab et mise à jour en temps réel.
  • Propagation : chaque modification (texte, variable, salle ajoutée/supprimée, renommage…) apparaît chez les autres en ~1 seconde, sans recharger.
  • Verrou doux : quand un auteur édite un champ, les autres voient un indicateur à son nom et sa couleur. Ce verrou est consultatif — il signale, mais n'empêche pas d'écrire au même endroit. Il reste actif tant que le champ a le focus et disparaît quand l'auteur en sort (ou se déconnecte).
  • Copier lien de session (menu Outils ou statut Collab) : à tout moment, pour inviter quelqu'un en cours de route.

Conflits et synchronisation

La session fonctionne par versions : chaque modification est envoyée comme un petit patch basé sur la version courante du document.

  • Champs différents : deux auteurs qui éditent des choses différentes au même moment (deux salles, une salle et une variable…) sont fusionnés automatiquement — aucune gêne, aucun message.
  • Même champ : le dernier qui écrit gagne. L'autre auteur est resynchronisé sur la valeur gagnante, avec un message explicite. Pas de texte mélangé, pas de demi-fusion.
  • Suppressions concurrentes : supprimer une salle pendant qu'un autre édite la liste des salles déclenche aussi une resynchronisation (pour ne jamais éditer la mauvaise salle).

Le brouillon local

Quand une resynchronisation écarte vos changements non envoyés, ils ne sont pas perdus : une fenêtre « Resynchronisation collaborative » propose de copier ou d'exporter la copie locale (.jdrproj). L'éditeur reste marqué « modifié » tant que ce brouillon n'est pas traité — fermer ou quitter la session demandera confirmation.

Annuler / Rétablir (Ctrl+Z / Ctrl+Y)

L'historique d'annulation est local à chaque auteur : il mémorise des instantanés complets de votre document, pas les modifications des autres.

  • Rejoindre une session ou être resynchronisé vide l'historique. C'est voulu : les étapes précédentes décrivaient un document qui n'est plus celui de la session.
  • Ctrl+Z restaure votre instantané, y compris par-dessus les modifications reçues entre-temps. Si un co-auteur a modifié la salle 3 après votre dernière action et que vous annulez, sa modification est annulée chez tout le monde — proprement, comme si vous l'aviez éditée vous-même.
  • Le dernier qui écrit gagne : même règle que pour deux éditions simultanées du même champ.

<WRAP center round tip 80%> En collaboration, préférez des annulations immédiates (juste après votre propre action) — elles ne touchent alors que vos changements. Avant un Ctrl+Z appuyé, prévenez vos co-auteurs. </WRAP>

Sauvegarde et export

  • Le serveur ne sauvegarde jamais le scénario : il ne fait que synchroniser les auteurs.
  • Chaque participant peut utiliser Exporter YAML / Sauvegarder à tout moment depuis son éditeur — tout le monde travaille sur le même document courant, les exports sont identiques.
  • Conseil d'équipe : désignez un « gardien » qui exporte régulièrement, surtout avant les pauses.

Fin de session

  • Outils → Quitter collaboration : déconnexion propre (confirmation demandée s'il reste des changements non sauvegardés).
  • Session vide : quand tout le monde est parti, la session reste joignable ~2 minutes (grâce de reconnexion), puis elle est supprimée. L'ancien lien ne fonctionne plus.
  • Session inactive : si plus personne ne touche à rien (onglets fermés ou cachés) pendant 30 minutes, la session expire. Un onglet ouvert et visible compte comme présent — pas d'expiration tant que l'équipe est là, même sans éditer.
  • Redémarrage du serveur : les sessions vivent en mémoire — elles sont perdues. Recréez une session et repartagez le lien (vos documents locaux et exports ne sont pas affectés).

Limites et garde-fous

Limite Valeur
Participants par session 10
Taille du projet partagé 8 Mo
Taille d'une modification 256 Ko (un collage énorme est refusé proprement)
Rythme de modifications ~120 messages/min par auteur
Reconnexion automatique ~20 tentatives (~4 min), puis arrêt avec message — le document local est conservé

En cas de coupure réseau, l'éditeur se reconnecte tout seul et resynchronise. Si la session a expiré entre-temps, un message clair l'indique.

Messages courants

Message Signification
Session collaborative introuvable ou expirée Le token ne correspond plus à une session (expirée, serveur redémarré, lien erroné). Recréez/redemandez un lien.
Session collaborative complète 10 participants déjà connectés.
Trop de messages Rythme de modifications trop élevé — attendez quelques secondes, tout repart.
Document resynchronisé avec la session Un conflit a été résolu en faveur d'un autre auteur ; vos changements écartés sont dans le brouillon local.
Reconnexion collaborative interrompue Serveur injoignable après plusieurs tentatives. Votre document local est intact ; rejoignez via le lien quand le serveur répond.

Voir aussi : Présentation de l'éditeur · Linter et export

fr/editeur/collaboration.txt · Dernière modification : de cyrilfiesta