Tutoriel Mulijoueur 2 : CHAT ROOM

1

Index

Statistiques

1,710 visites, 3,275 vues

Outils

Partager

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Published on 12 Nov, 2021.

Groupe de signalisation

Ce groupe s'occupe du serveur de signalisation. Nous devons nous connecter au serveur de signalisation pour savoir qui d'autre est dans la salle, pouvoir nous connecter à eux et savoir si nous sommes devenus l'hôte. Tout d'abord, nous devons nous connecter au serveur de signalisation, qui est le serveur officiel hébergé par Scirra à l'adresse wss://multiplayer.scirra.com. (Chaque étape est également enregistrée dans le journal de chat afin que l'utilisateur puisse voir la progression au fur et à mesure).

Un moment plus tard, en supposant que tout s'est bien passé, la signal On signalling connected se déclenche. Cependant, le serveur de signalisation ne nous permettra pas de rejoindre une partie tant que nous ne nous serons pas connectés avec notre nom d'utilisateur (appelé alias par le serveur de signalisation). Donc, lors de la connexion, nous demandons également à nous connecter avec le nom d'utilisateur de l'écran de connexion (Login).

Ensuite, en supposant que notre demande de connexion a été réussie, le signal On signalling logged se déclenche. Nous sommes maintenant prêts à rejoindre une partie. Notez que si l'alias demandé est déjà utilisé sur le serveur de signalisation, celui-ci peut simplement vous attribuer un nouvel alias. Par exemple, si deux personnes se connectent sous le nom de "Joe", la deuxième personne reçoit en fait l'alias "Joe2". Pour éviter toute confusion, il est bon d'afficher à l'utilisateur l'alias qui lui a été attribué (à partir de l'expression Multiplayer.MyAlias) afin qu'il puisse voir quel est réellement son nom. Maintenant que nous sommes connectés, nous pouvons également demander à rejoindre la salle (en utilisant nos constantes globales pour les noms de jeu, d'instance et de salle).

En rejoignant la salle, nous découvrons pour la première fois si nous sommes devenus l'hôte ou non. Le serveur de signalisation fera de la première personne à entrer dans une salle l'hôte. Les données réelles du jeu sont transférées via la connexion de cette personne (elle agit comme le serveur du jeu). Nous testons si nous sommes devenus l'hôte en utilisant la condition Is host dans un sous-événement du déclencheur On signalling joined room. Puisque l'hôte (agissant comme le serveur) et les Clients (agissant comme des clients du serveur) exécutent le jeu à partir du même projet unique, il est judicieux d'organiser les événements en deux groupes différents, l'hôte et le Client. Chacun est initialement désactivé, mais en rejoignant la salle, nous activons le groupe approprié. Cela signifie que nous avons un endroit pratique pour mettre les événements qui ne devraient s'appliquer qu'à l'hôte ou aux Clients. Nous ajoutons également notre propre nom à la liste des Clients, puisque nous ne recevrons pas de notification "peer joined" pour nous-mêmes.

Les trois derniers événements de ce groupe servent essentiellement à gérer les erreurs. Dans la grande majorité des cas, tous les événements ci-dessus devraient fonctionner correctement. Cependant, si nous quittons la salle, sommes déconnectés du serveur de signalisation ou rencontrons une erreur sur le serveur de signalisation, nous ajoutons un message au journal du chat afin que l'utilisateur puisse voir ce qui s'est passé.

Ce groupe nous a permis de nous connecter, de rejoindre la salle sur le serveur de signalisation et d'activer le groupe approprié pour être l'hôte ou un Client. Une fois la salle jointe, les données du jeu ne fonctionnent que via l'hôte. Le reste des événements concerne le salon de discussion lui-même. Il existe trois autres groupes Commun, Client et Hôte sous le groupe parent du Chat.

  • 0 Comments

Want to leave a comment? Login or Register an account!