Repository navigation
Relation Client Serveur FlowChart
1.0 Lance Partie/Serveur
2.0 Connexion au serveur
3.0 Le joueur "host" démarre la partie
3.1 Les autres joueurs attendent le début
4.0 Client reçoit le message du serveur qu'ils peuvent commencer:
-Démarre le timer(frame counter)
-Se positionne dans la salle principale(Lobby)
4.1 Client renvoit sa position initiale
4.2 Client se position et affiche les autres à partir de l'info reçu du serveur
5.0 À chaque tick du timer, le frame est augmenté.
5.1 La liste des évènements depuis le dernier tick est envoyé au serveur:
-Tick/Frame
-Évènements
-ID
-Position?
5.2 - ATTEND -
5.2.1 - ATTEND -
5.3 - ATTEND -
5.3.1 - ATTEND -
5.3.2 Met à jour les données dans le modèle et la vue par rapport au modèle
5.3.3 Retour à 5.0
5.4 - ATTEND -
5.5 Reçois les données du serveur et actualise le modèle, et la vue par rapport au modèle(voir 5.3.2)
5.5.1 Vide la liste des évènements
6.0 Retour à 5.0
1.0 Serveur démarre
2.0 Serveur reçoit connexion:
-Vérifie la quantité de connexion
-Accepte: Renvoie au client son ID et envoie à tous la nouvelle liste de connectés
-Refuse: Renvoie au client la raison du refus de connexion
3.0 Le serveur reçoit l'information que la partie démarre. Refuse à partir de ce moment toutes nouvelle connexion
4.0 Indique à tous les joueurs que la partie commence
4.1 Serveur reçoit la position de départ des joueurs
4.2 Serveur renvoie la position de départ des joueurs aux joueurs
5.0 - ATTEND -
5.1 Le serveur écoute les clients et reçoit les données
5.2 Le serveur vérifie s'il a reçu toutes les données et sinon, si un client c'est déconnecté
5.2.1 Si un client c'est déconnecté, il actualise sa liste de clients et l'indique aux autres joueurs
5.3 Le serveur vérifie les frames. Il compare ceux-ci et trouvent ceux en retard.
5.3.1 Si des clients sont en retards, le serveur renvoit à ceux-ci leur action et celles des autres. Il leur indiquent de continuer.(But: Synchronisation pour que tous soit au même point)
5.3.2 - ATTEND -
5.3.3 Retour à 5.0
5.4 Si tous les clients sont en même temps, renvoie à tous les évènements de tous
5.5 - ATTEND -
5.5.1 - ATTEND -
6.0 Retour à 5.0
Après vérification et consultation avec Jean-Marc, principe de synchronisation: Un client envoie au serveur ses évènements. Le serveur va faire exécuter pour chaque client l'évènement quelque frame plus loin que le clients le plus en avance.