Discuss Scratch
- Discussion Forums
- » Français
- » [Résolu] Comment créer une connexion multijoueur solide ?
- Lu_Li_49
-
Scratcher
500+ posts
[Résolu] Comment créer une connexion multijoueur solide ?
Bonjour,
je suis actuellement en train de coder un système multijoueur, et je ne souhaite pas utiliser de serveur externe à scratch.
- Problème : chaque joueur a une “case” à lui dans la variable cloud pour y stocker sa position, mais quand un joueur se connecte, comment faire pour qu'il ne prenne pas la “case” d'un autre qui est en train de jouer ?
- Solution : faire que le tous les joueurs se signalent sans arrêt sur une autre variable pour dire qu'ils sont en train de jouer sur une “case” spécifique.
- Problème : comment faire si un joueur quitte le navigateur sans signaler qu'il arrête de jouer ? La “case” va continuer à dire qu'il joue encore ?
- Solution : à chaque fois, le joueur qui se connecte va remettre toutes les cases à “ne joue pas” et les autres joueurs signaleront automatiquement qu'ils sont en train de jouer. Le joueur qui se connecte va attendre 3 secondes que tout le monde est bien connecté.
- Problème : un joueur est connecté par un réseau très lent et il met plus de 3 secondes pour signaler qu'il joue. Le joueur qui se connecte peut se connecter sur sa “case” ?
- Solution : pas trouvée.
- Problème : un joueur va sur un autre onglet, et le code arrête de fonctionner mais il reste sur sa “case”. Si un autre se connecte, il ne pourra pas se signaler comme quoi il joue et le joueur qui se connecte peut prendre sa case. Si le joueur revient sur l'onglet du projet, ils seront deux sur la même case ?
- Solution : pas trouvée.
Voici mon début de code :

Peut-être que je m'y prend mal, mais avez-vous une solution ?
Si vous avez une question, n'hésitez pas à me la poser.
je suis actuellement en train de coder un système multijoueur, et je ne souhaite pas utiliser de serveur externe à scratch.
- Problème : chaque joueur a une “case” à lui dans la variable cloud pour y stocker sa position, mais quand un joueur se connecte, comment faire pour qu'il ne prenne pas la “case” d'un autre qui est en train de jouer ?
- Solution : faire que le tous les joueurs se signalent sans arrêt sur une autre variable pour dire qu'ils sont en train de jouer sur une “case” spécifique.
- Problème : comment faire si un joueur quitte le navigateur sans signaler qu'il arrête de jouer ? La “case” va continuer à dire qu'il joue encore ?
- Solution : à chaque fois, le joueur qui se connecte va remettre toutes les cases à “ne joue pas” et les autres joueurs signaleront automatiquement qu'ils sont en train de jouer. Le joueur qui se connecte va attendre 3 secondes que tout le monde est bien connecté.
- Problème : un joueur est connecté par un réseau très lent et il met plus de 3 secondes pour signaler qu'il joue. Le joueur qui se connecte peut se connecter sur sa “case” ?
- Solution : pas trouvée.
- Problème : un joueur va sur un autre onglet, et le code arrête de fonctionner mais il reste sur sa “case”. Si un autre se connecte, il ne pourra pas se signaler comme quoi il joue et le joueur qui se connecte peut prendre sa case. Si le joueur revient sur l'onglet du projet, ils seront deux sur la même case ?
- Solution : pas trouvée.
Voici mon début de code :

Peut-être que je m'y prend mal, mais avez-vous une solution ?
Si vous avez une question, n'hésitez pas à me la poser.
Last edited by Lu_Li_49 (April 17, 2026 18:48:22)
- ma33-ma
-
Scratcher
500+ posts
[Résolu] Comment créer une connexion multijoueur solide ?
Voici ce que je fait dans mes jeux multijoueurs :
- Problème : chaque joueur a une “case” à lui dans la variable cloud pour y stocker sa position, mais quand un joueur se connecte, comment faire pour qu'il ne prenne pas la “case” d'un autre qui est en train de jouer ?Ce que je fais c'est que j'attribue des valeurs (ici un numéro de case) à l'identifiant du joueur ainsi je sait à tout moment quelle case appartient à qui, je peux faire une liste de joueur et une autre de cases…
- Problème : comment faire si un joueur quitte le navigateur sans signaler qu'il arrête de jouer ? La “case” va continuer à dire qu'il joue encore ?Une des valeurs que j'attribut au joueur et les décimales du chrono, elle change tout le temps comme ça je sait si qlqn est connecté ou pas : tu met un temps max (ex 3sec) au bout duquel tu supprime l'utilisateur (faut pas avoir de freeze de plus de 3 sec)
- Problème : un joueur est connecté par un réseau très lent et il met plus de 3 secondes pour signaler qu'il joue. Le joueur qui se connecte peut se connecter sur sa “case” ?Là tu jauge le temps qui te paraît bon pour que la deconnexion soit rapide sans qu'il y ait d'erreurs, ça dépend d'à quel point ton jeu va vite…
- Problème : un joueur va sur un autre onglet, et le code arrête de fonctionner mais il reste sur sa “case”. Si un autre se connecte, il ne pourra pas se signaler comme quoi il joue et le joueur qui se connecte peut prendre sa case. Si le joueur revient sur l'onglet du projet, ils seront deux sur la même case ?ça ça dépend des navigateur le jeu peut tourner en arrière plan le mieux est à mon avis de prévenir les gens de pas quitter la page mais aujourd'hui plein de navigateur font encore tourner les onglets en arrière plan (à 3 ou 4 FPS sur scratch). Ensuite si les gens peuvent choisir une case ça va être compliqué si c'est aléatoire tu peux garder en mémoire les précédentes cases pour eviter de les reselectioner.
Ensuite tu doit faire de la gestion d'erreur si ça arrive, faire des rollback(le remettre sur la case précedente, stocker en memoire les action pour les reeffectuer si il y a un problème.
Tout ce que je te dit n'est pas forcément utile pour ton jeu mais certaines choses peuvent se l'avérer.
- Lu_Li_49
-
Scratcher
500+ posts
[Résolu] Comment créer une connexion multijoueur solide ?
Merci, ça me sera utile.
- NinoM11
-
Scratcher
500+ posts
[Résolu] Comment créer une connexion multijoueur solide ?
Merci, ça me sera utile.
Il faut aussi une box “Messages”, qui servirait à enregistrer une déconnexion. C'est à dire que quand un joueur (le suivant) détecte que le précédent est déconnecté, il envoie un message pour réduire l'ID de tous les joueurs au dessus de 1. Sinon, il y a un trou. En fait, on décale les joueurs à la case précédente.
- ma33-ma
-
Scratcher
500+ posts
[Résolu] Comment créer une connexion multijoueur solide ?
sauf si tu laiss l'emplacement d'ID libre comme ça ça ne genere pas d'erreurs, aussi si tu enregistre les usernames pas besoin d'ID…Merci, ça me sera utile.
Il faut aussi une box “Messages”, qui servirait à enregistrer une déconnexion. C'est à dire que quand un joueur (le suivant) détecte que le précédent est déconnecté, il envoie un message pour réduire l'ID de tous les joueurs au dessus de 1. Sinon, il y a un trou. En fait, on décale les joueurs à la case précédente.
- Lu_Li_49
-
Scratcher
500+ posts
[Résolu] Comment créer une connexion multijoueur solide ?
Je ne souhaite pas avoir de serveur qui tourne 24h/24 chez moi, donc difficile d'enregistrer tous les noms d'utilisateurs.
- ma33-ma
-
Scratcher
500+ posts
[Résolu] Comment créer une connexion multijoueur solide ?
Je ne souhaite pas avoir de serveur qui tourne 24h/24 chez moi, donc difficile d'enregistrer tous les noms d'utilisateurs.ah non juste tu crée une instance en direct pour chaque utilisateur pas besoin de serveur
- Maela14
-
Scratcher
93 posts
[Résolu] Comment créer une connexion multijoueur solide ?
Ou alors tu met un nombre limité de joueurs avec une variable cloud par joueur.
- ma33-ma
-
Scratcher
500+ posts
[Résolu] Comment créer une connexion multijoueur solide ?
Ou alors tu met un nombre limité de joueurs avec une variable cloud par joueur.Le problème c'est que c'est 8 joueurs max…
- Scratcheurscratch
-
Scratcher
100+ posts
[Résolu] Comment créer une connexion multijoueur solide ?
J'arrive peut être en * sur le sujet, mais je conseille fortement le tutoriel de griffpatch qui explique très bien et donne un programme qui fonctionne encore très bien aujourd'hui (malgré que ces variables sont désactivées)
- Lu_Li_49
-
Scratcher
500+ posts
[Résolu] Comment créer une connexion multijoueur solide ?
Merci, je regarde ça tout de suite.
Je crois même que je vais regarder toutes ses vidéos…
Je crois même que je vais regarder toutes ses vidéos…
Last edited by Lu_Li_49 (April 17, 2026 18:47:32)
- NinoM11
-
Scratcher
500+ posts
[Résolu] Comment créer une connexion multijoueur solide ?
Merci, je regarde ça tout de suite.
Je crois même que je vais regarder toutes ses vidéos…
C'est vrai que c'est bien, mais moi, je me pose toujours la question du conflit d'usage des variables clouds.
J'utilise une liste d'attente pour rafraîchir mes variables cloud, mais c'est long et peu pratique. Alors, je me demandais s'il existait une meilleure technique pour les multijoueur massifs.
- ma33-ma
-
Scratcher
500+ posts
[Résolu] Comment créer une connexion multijoueur solide ?
2 choses : tu peux régler l'utilisation des variables pour quelle ne soit pas aléatoire grâce à l'horloge et le multijoueur massif est très rare sur scratch…Merci, je regarde ça tout de suite.
Je crois même que je vais regarder toutes ses vidéos…
C'est vrai que c'est bien, mais moi, je me pose toujours la question du conflit d'usage des variables clouds.
J'utilise une liste d'attente pour rafraîchir mes variables cloud, mais c'est long et peu pratique. Alors, je me demandais s'il existait une meilleure technique pour les multijoueur massifs.
- Discussion Forums
- » Français
-
» [Résolu] Comment créer une connexion multijoueur solide ?