Extension Réseau

L'extension Réseau permet aux jeux de communiquer par le biais du réseau, afin de créer par exemple des jeux multijoueurs en ligne.

Fonctionnement basique d'un réseau

Afin d'envoyer des données sur internet ou sur un réseau entre deux ordinateurs, il est nécessaire de connecter ces deux ordinateurs à l'aide de sockets. Sur un réseau, les ordinateurs sont identifiés par une adresse unique nommée adresse IP, formée de 4 nombres allant de 0 à 255 et séparés par des points ( Par exemple : 212.85.150.134 ). En plus de ces adresse IP, il est possible d'établir plusieurs liaisons réseau sur un même ordinateur en utilisant différent numéro de port pour chaque liaison.

Une fois une liaison établie entre deux ordinateurs grâce à leur adresse IP, les sockets vont permettre d'envoyer des paquets de données ( Texte, valeur… ).

Fonctionnement de l'extension Réseau sous GDevelop

Les sockets utilisées par GDevelop se basent sur le protocole UDP. Ce dernier permet d'envoyer facilement et rapidement des données sur le réseau de façon notamment adaptée aux jeux.

  • Pour que deux ordinateurs puissent s'échanger des données, il faut d'abord s'assurer de demander aux deux d'être prêt à en recevoir. L'action “Initialiser la réception de données” permet ceci. Elle prend en paramètre le port sur lequel l'ordinateur va attendre des données. Un port par défaut est choisi si aucun n'est renseigné.
  • Ensuite, il faut indiquer aux deux ordinateurs qu'il faut envoyer les données à l'autre. Pour cela, il faut utiliser l'action “Ajouter un destinataire” qui prend en paramètre l'adresse IP de l'ordinateur à qui envoyer les données, ainsi que le port sur lequel les envoyer.

Evidemment, afin que la communication soit opérationnelle, il faut s'assurer que les ports d'écoute et d'envoi soient les mêmes, et que les adresses IP soient correctes :

Une fois cette phase d'initialisation effectuée, au lancement de la scène par exemple, vous pouvez envoyer et recevoir des données.
GDevelop facilite la gestion des données en attribuant à chacune une titre. Les données peuvent être comme les variables soient du texte, soit un nombre.

  • Pour envoyer une donnée, utilisez l'action “Envoyer une valeur” ou “Envoyer un texte”, en indiquant le titre de la donnée, puis sa valeur.
  • Pour recevoir les données envoyées par le(s) autre(s) ordinateurs, il faut en premier lieu penser à récupérer les données et les stocker en mémoire. Pour cela, utilisez l'action “Recevoir les données en attente”. Cette action peut par exemple être placée au début de la scène dans un évènement sans condition. Une fois l'action appelée, les données reçues sont stockées en mémoire. Vous pouvez obtenir leur valeur grâce aux expressions GetReceivedDataValue(NomDeLaDonnée) ou GetReceivedDataString(NomDeLaDonnée) : Naviguez au besoin dans la liste de l'éditeur d'expression ou de texte pour les trouver.

Comportement Mise à jour en réseau automatique

Le comportement Mise à jour en réseau automatique permet d'automatiser une partie de l'envoi des données, en envoyant des données relatives aux objets : Cliquez ici pour en savoir plus.