Tutoriel Mulijoueur 1 : Introduction

3

Index

Statistiques

3,609 visites, 9,318 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.

Connectivité

Le moteur multijoueur de Construct 2 est basé sur les WebRTC DataChannels. Il s'agit d'une technologie de mise en réseau par navigateur de type peer-to-peer. Les joueurs se connectent directement les uns aux autres, plutôt que de passer par un serveur central.

Malgré le fait que les joueurs puissent se connecter directement les uns aux autres, les jeux eux-mêmes sont toujours basés sur un serveur avec des clients. Le premier joueur à rejoindre un jeu devient l'hôte. Tous les joueurs qui rejoignent ensuite le jeu se connectent uniquement à l'hôte. Ses joueurs, qui se connectent à l'hôte, sont appelés " clients ". L'hôte fait office de serveur pour le jeu. La principale différence avec les serveurs centraux est que l'hôte peut être n'importe quelle personne se joignant au jeu, plutôt qu'un serveur toujours actif géré par le développeur du jeu. De plus, l'hôte peut être un participant actif au jeu, alors que les serveurs centraux se contentent souvent d'exécuter aveuglément le jeu pour les autres joueurs.

Il est cependant toujours possible d'utiliser des serveurs centraux : vous pouvez concevoir votre jeu de manière à ce que l'hôte ne participe pas au jeu, et le laisser tourner sur un serveur dédié. Cependant, cela nécessite de payer pour l'hébergement du serveur, de sorte que l'approche peer to peer est généralement plus économique.

Pour qu'un client rejoignant puisse se connecter à l'hôte, il doit savoir où il se trouve et comment s'y connecter. Cela implique de trouver son adresse IP, de savoir s'il a un routeur qui restreint les connexions et de contourner ces restrictions si possible.

Les routeurs restreints sont très courants. L'Internet est à court d'adresses IPv4 depuis plusieurs années. La solution de contournement consiste à cacher plusieurs utilisateurs derrière une seule adresse IP. Cela se fait par la traduction d'adresses réseau (NAT). Par exemple, chez vous ou au bureau, il peut y avoir un routeur par lequel tous les membres du réseau interne se connectent à l'Internet. Dans ce cas, une variante de la traduction d'adresses de réseau (Network Adress Translatrion) ferait en sorte que tout le monde semble provenir de la même adresse IP, mais sur des ports différents. Il existe plusieurs autres variantes du NAT, y compris le NAT à grande échelle appliqué à des régions entières, des FAI ou des réseaux mobiles, et certaines sont plus restrictives que d'autres. Malheureusement, cela signifie que dans certains cas, les connexions ne sont pas possibles, en particulier si l'hôte et l'homologue qui se joint à lui se trouvent derrière un NAT très restrictif. Cependant, avec des configurations courantes, les joueurs peuvent généralement se connecter les uns aux autres et, en général, plus ils sont proches géographiquement, plus la connexion a de chances de fonctionner et de fournir un service de bonne qualité. C'est l'une des raisons pour lesquelles il est bon d'encourager les joueurs à rejoindre de préférence d'autres joueurs du même continent.

La connectivité est gérée automatiquement par WebRTC. Il essaiera de déterminer comment se connecter à l'hôte en passant par les restrictions NAT. Cela signifie également qu'il n'y a pas de port spécifique sur lequel les jeux sont exécutés ; ils sont exécutés sur tous les ports que WebRTC trouve fonctionnels. Par exemple, dans le diagramme ci-dessus, trois clients partagent une adresse IP. Un client de l'autre côté doit donc se connecter à cette adresse IP via le port A pour atteindre le premier client, ou le port B pour atteindre le deuxième client, et ainsi de suite. Toutefois, n'oubliez pas que, dans certains cas, deux utilisateurs ne pourront pas se connecter l'un à l'autre et qu'il sera peut-être nécessaire de trouver un autre joueur pour faire office d'hôte.

Dans la grande majorité des cas, les appareils peuvent établir des connexions directes sur l'Internet. Cependant, dans un petit nombre de cas, en raison de la complexité du réseau et des restrictions qui y sont liées, deux appareils spécifiques peuvent être incapables d'établir une connexion directe entre eux. Dans ce cas, vous pouvez essayer de trouver un autre hôte. Une autre façon de s'assurer que presque tous les appareils peuvent se connecter est d'utiliser un serveur TURN. Il s'agit d'un serveur auquel les deux appareils se connectent et qui relaie le trafic entre eux, de sorte qu'ils puissent se connecter indirectement plutôt que directement. Cependant, cela nécessite l'hébergement d'un serveur et le paiement de la bande passante utilisée, et donne lieu à une connexion de moins bonne qualité, car les données ont beaucoup plus de chemin à parcourir. C'est pourquoi elle n'est pas activée par défaut et vous devez la configurer vous-même. Si vous le faites, vous pouvez ajouter votre propre serveur TURN à l'aide de l'action Add ICE server de l'objet Multiplayer au démarrage.

L'IPv6 s'impose progressivement sur l'internet grâce à un espace d'adressage beaucoup plus grand. Cela permettra à chaque appareil connecté à l'internet d'avoir à nouveau une adresse IP unique, ce qui rendra le NAT inutile et permettra des connexions entre tous les utilisateurs, quelle que soit leur configuration réseau. Jusqu'à ce que cela se produise, les problèmes de connectivité sont une conséquence malheureuse. Google publie également des statistiques sur l'adoption d'IPv6.

  • 0 Comments

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