Signalisation
Comme indiqué dans la section précédente, pour qu'un Client se connecte à l'hôte, il doit trouver son adresse IP et déterminer comment s'y connecter. L'hôte peut être n'importe qui, n'importe où dans le monde, il est donc impossible de savoir à l'avance à qui se connecter. Pour permettre aux joueurs de se retrouver, il existe donc un serveur central distinct appelé serveur de signalisation.
Le serveur de signalisation n'héberge pas les jeux proprement dits : le premier joueur dans une salle héberge le jeu et transmet les données de jeu aux autres Clients. Le serveur de signalisation est simplement un lieu central où les joueurs peuvent se retrouver. Lorsqu'un Client veut rejoindre un hôte, le serveur de signalisation relaie des informations telles que les adresses IP et les détails de connectivité entre les deux. Une fois que le Client s'est connecté avec succès à l'hôte, le serveur de signalisation n'est plus impliqué et les joueurs communiquent directement entre eux.
Scirra héberge un serveur de signalisation public dédié à l'adresse wss://multiplayer.scirra.com. (wss : indique une connexion WebSocket sécurisée, puisque les données de signalisation sont relayées par des WebSockets. Les jeux eux-mêmes continuent de fonctionner en utilisant WebRTC).
Terminologie de la signalisation
Le serveur de signalisation doit éviter de mélanger les joueurs de jeux non liés et permettre à différents groupes de joueurs d'organiser des jeux séparés en même temps. Pour ce faire, les joueurs rejoignent une salle dans une instance de jeu (Le Lobby).
Le serveur de signalisation sépare d'abord les joueurs dans chaque jeu. Votre jeu en particulier doit avoir un nom globalement unique sur le serveur. Ensuite, tous les joueurs de votre jeu rejoignent le même jeu sur le serveur de signalisation. Cela permet d'éviter que les joueurs de votre jeu ne soient mélangés avec des joueurs de jeux non apparentés qui fonctionnent de manière complètement différente ! Pour chaque jeu que vous créez, vous ne devez utiliser qu'un seul jeu sur le serveur de signalisation. Pour vous assurer que le nom de votre jeu est unique sur le serveur et qu'il n'est jamais accidentellement choisi par le jeu de quelqu'un d'autre, incluez votre nom ou celui de votre société, par exemple "MyStudio-Asteroids" ou "JohnSmith-Asteroids" au lieu de simplement "Asteroids". (Ce nom n'est jamais affiché nulle part et n'est utilisé qu'en interne sur le serveur de signalisation, alors n'hésitez pas à ajouter d'autres détails pour garantir l'unicité).
Ensuite, le serveur de signalisation sépare les joueurs en une instance de jeu. Cela vous permet d'exécuter différentes instances isolées de votre jeu. Par exemple, vous pouvez avoir une instance "stable" que la plupart des joueurs rejoignent, mais une instance "bêta" pour les testeurs qui utilisent la prochaine version (légèrement différente) de votre jeu. Cela empêcherait les bêta-testeurs de se connecter aux joueurs normaux qui pourraient avoir des mécanismes ou des fonctionnalités de jeu différents. Pour la même raison, les instances pourraient être des versions, comme "v1.0", "v1.1", "v1.2", en veillant toujours à ce que les joueurs ne voient que les autres joueurs ayant la même version du jeu qu'eux. Un autre bon usage est d'avoir des instances basées sur la localisation, comme "Europe", "Amérique du Nord" et "Asie". En supposant que les joueurs rejoignent l'instance correspondant à leur emplacement réel, ils ne verront que les autres joueurs se trouvant dans le même endroit, ce qui augmente les chances d'obtenir une connexion de bonne qualité. Ces objectifs peuvent même être combinés, comme "Europe-v1.1", "Europe-v1.2", etc.
Enfin, les joueurs peuvent rejoindre une salle. Une salle représente un groupe de joueurs qui jouent les uns avec les autres. Les joueurs ne peuvent pas voir d'autres joueurs que ceux qui se trouvent dans la même salle. Le premier joueur qui entre dans une salle est désigné comme hôte. Ensuite, le serveur de signalisation informe l'hôte de tout autre joueur qui rejoint la même salle. Ils se connectent alors les uns aux autres et peuvent commencer à jouer, en voyant les actions des autres en temps réel !
Dans l'objet Multiplayer de Construct, toutes les actions, conditions et expressions relatives au serveur de signalisation se trouvent dans la catégorie Signalisation. Toutes les autres caractéristiques concernent les jeux eux-mêmes.