Mirror WebGL
Ce guide vous aidera à utiliser Mirrorle transport Websocket et à créer un serveur sans interface sur Edgegap pour un projet Unity.
Ce guide utilisera le projet d'exemple open-source Tanksdisponible dans l'exemple Mirror sous Assets/Mirror/Examples/Tanks.
Vous pouvez trouver la version finale de cet exemple sur notre GitHub
Changer le transport
Nous devons d'abord effectuer quelques modifications sur la scène de base avant d'être prêts à construire le serveur du jeu.
Ouvrez
Scene.unitysitué sousAssets/Mirror/Examples/Tanks/Scenes;Dans le
NetworkManagergameObject, supprimez leKcpTransportscript et remplacez-le par leSimpleWebTransportsitué sousAssets/Mirror/Transports/SimpleWeb, assurez-vous également de mettre à jour le champ Transport duNetworkManagercomposant script avec ce nouveau transport. Assurez-vous également que l'optionAuto Start Server Buildest sélectionnée.Selon votre version de Mirror, vous pourriez avoir besoin de changer/mette à jour le
NetworkManagerHUDpour le faire fonctionner avec des transports différents de KCP, ainsi que pour vous permettre de saisir la valeur du port dans le HUD avant de rejoindre un serveur.
Prenez note du port utilisé pour les communications réseau, appelé [GAME PORT]. Dans ce cas, le port utilisé est 7778.
Construire le serveur de jeu & Conteneurisation
Pour faciliter le processus de conteneurisation et de déploiement, il est possible d'utiliser la dernière version du plugin Unity Edgegap sur notre GitHub pour automatiser le processus. Pour plus d'informations sur l'utilisation de ce plugin, vous pouvez consulter notre documentation.
Si vous préférez, vous pouvez également suivre ces instructions étape par étape.
Une fois que votre jeu est prêt, rendez-vous sur la Build écran de l'éditeur Unity, sous File -> Build Settings dans les menus en haut. Assurez-vous de sélectionner les bons préréglages en fonction de votre version d'Unity.
Avant la version 2021.2 :
Définissez
Target PlatformsurLinux;Définissez
Architecturesurx86_64;Cochez l'option
Server Build.
Sinon :
Définissez
PlatformsurDedicated Server;Définissez
Target PlatformsurLinux.
Puis appuyez sur build et sélectionnez un nouveau dossier vide nommé linux_server comme destination du fichier. Transférez le linux_server dossier vers un deuxième dossier vide, qui sera appelé [SERVER BUILD] dans ce document. Ajoutez les fichiers suivants Dockerfile et boot.sh au dossier [SERVER BUILD] :
Dockerfile
boot.sh
Assurez-vous de remplacer les [YOUR GAME] espaces réservés par le nom du fichier généré
Ensuite, ouvrez une invite de commande dans le [SERVER BUILD] dossier ; Exécutez les commandes Docker suivantes pour créer une image de votre build et la pousser vers un registre privé :
Pour les utilisateurs de CPU ARM (Mac M1, M2, etc.), ajoutez --platform linux/amd64 option à votre commande de build.
Utilisation de Linux
Utilisation de cmd
Utilisation de Powershell
Déployer le serveur sur Edgegap
Après s'être connecté au tableau de bord Edgegap, naviguez vers la page Applications & Games Cliquez sur le Create New bouton en haut à droite pour accéder au formulaire d'application. Voici les champs et comment les remplir correctement :
Nom de l'application : Peut être n'importe quel nom notable que vous souhaitez utiliser pour reconnaître facilement votre application parmi d'autres.
Image : Peut être n'importe quelle image spécifique que vous souhaitez utiliser pour reconnaître facilement votre application parmi d'autres.
Nom de version : Vous pouvez utiliser un nom de version pour décrire la portée de la version que vous déployez. Des exemples peuvent être « demo », « production », « v1 », « v2 »
Conteneur :
Registry : « [URL] », où [URL] est la valeur des identifiants que vous pouvez afficher sur la page du dépôt de conteneurs.
Image repository : « [PROJECT]/[YOUR GAME] », où [PROJECT] et [YOUR GAME] sont les valeurs que vous avez utilisées précédemment lors de la poussée de l'image docker.
Tag : « [TAG] », où [TAG] est la valeur que vous avez utilisée précédemment lors de la poussée de l'image docker.
Cochez « Using a private repository »
Nom d'utilisateur du registre privé : « [USERNAME] », où [USERNAME] est la valeur de vos identifiants.
Jeton du registre privé : « [TOKEN] », où [TOKEN] est la valeur de vos identifiants.
Exigences : Laisser tel quel.
Ports : Cliquez sur le
+ Add portlien pour ajouter un nouveau port, et ajoutez les entrées suivantes :7778- WS - enable TLS Upgrade (Beta)
Si vous utilisez l'option WSS, il est important d'activer l'option TLS Upgrade Sinon, vous rencontrerez des erreurs similaires à celle-ci dans les journaux de votre conteneur sur le tableau de bord Edgegap.

Une fois que votre application a été créée, vous pouvez appuyer sur le Deploy bouton pour poursuivre le déploiement de votre serveur de jeu. Une fois que le dernier statut de votre déploiement est défini sur Ready, vous pourrez vous connecter au serveur avec une version cliente du jeu. Prenez note de l' Host url et, dans l'onglet Port Mapping de votre déploiement, du port externe qui est disponible publiquement.
Tester le client
Dans l'éditeur
De retour dans l'éditeur Unity, dans la scène des tanks, sélectionnez le NetworkManager gameObject et modifiez les paramètres suivants :
Dans le
Network Managercomposant :Définissez le
Network Addresssur l'Hosturl ;Décochez le
Auto Start Server Build.
Dans le
Simple Web Transportcomposant :Définissez le
Portvaleur sur leport externedeploiement Edgegap par exemple :32821;Assurez-vous que l'option
Client Use WSSest activée.


Une fois cela fait, cliquez sur Play dans l'éditeur, puis cliquez sur le bouton Client ; Vous serez connecté au serveur et pourrez jouer au jeu après un court instant.
Sur Itch.io
Pour mettre votre client de jeu sur Itch, vous devrez faire une compilation client ; Vous devrez installer le module WebGL Build Support pour votre version d'Unity pour cela. Une fois cela fait, revenez au Build écran de l'éditeur Unity, sous File -> Build Settingset sélectionnez les options suivantes :
Définissez
PlatformsurWebGL;Ouvrez les
Player Settings. SousPlayer -> Publishing Settings, définissez leCompression FormatsurGzipet assurez-vous que l'optionDecompression Fallbackest sélectionnée. Enregistrez ces paramètres, puis fermez la fenêtre.

Puis appuyez sur build et sélectionnez un nouveau dossier vide nommé build comme destination du fichier. Transférez le build dossier vers un deuxième dossier vide, qui sera appelé [CLIENT BUILD] dossier dans ce document.
Une fois que votre jeu a terminé la compilation, compressez les fichiers de ce build dossier dans un dossier zip, en vous assurant qu'ils se trouvent à la racine de celui-ci. Ensuite, il vous suffit de télécharger le dossier zip sur votre projet Itch et de vous assurer de sélectionner l'option pour que le fichier puisse être lu dans le navigateur. Une fois que vous lancez le jeu, vous devez simplement vous assurer que les valeurs d'adresse réseau et de port sont correctement définies dans le HUD, puis cliquer sur le Client bouton pour jouer.
Héberger le client sur Edgegap
Il est même possible d'héberger votre client de jeu sur Edgegap ! Pour ce faire, ajoutez le fichier suivant Dockerfile et nginx.conf au dossier [CLIENT BUILD] :
Dockerfile
nginx.conf
Procédez avec les mêmes commandes Docker qu'auparavant pour construire et pousser une image de votre client de jeu vers un dépôt privé, mais depuis une fenêtre de commande ouverte dans le dossier [CLIENT BUILD] . Assurez-vous d'utiliser un nom d'image différent de celui de votre serveur.
Ensuite, créez une nouvelle application pour votre client sur le tableau de bord Edgegap avec les paramètres suivants :
Nom de l'application : Peut être n'importe quel nom notable que vous souhaitez utiliser pour reconnaître facilement votre application parmi d'autres.
Image : Peut être n'importe quelle image spécifique que vous souhaitez utiliser pour reconnaître facilement votre application parmi d'autres.
Nom de version : Vous pouvez utiliser un nom de version pour décrire la portée de la version que vous déployez. Des exemples peuvent être « demo », « production », « v1 », « v2 »
Conteneur :
Registry : « [URL] », où [URL] est la valeur des identifiants que vous pouvez afficher sur la page du dépôt de conteneurs.
Image repository : « [PROJECT]/[YOUR GAME] », où [PROJECT] et [YOUR GAME] sont les valeurs que vous avez utilisées précédemment lors de la poussée de l'image docker.
Tag : « [TAG] », où [TAG] est la valeur que vous avez utilisée précédemment lors de la poussée de l'image docker.
Cochez « Using a private repository »
Nom d'utilisateur du registre privé : « [USERNAME] », où [USERNAME] est la valeur de vos identifiants.
Jeton du registre privé : « [TOKEN] », où [TOKEN] est la valeur de vos identifiants.
Exigences : Laisser tel quel.
Ports : Cliquez sur le
+ Add portlien pour ajouter un nouveau port, et ajoutez les entrées suivantes :80- HTTPS

Une fois que votre application a été créée, vous pouvez appuyer sur le Deploy bouton pour procéder au déploiement de votre client de jeu. Avec les déploiements du serveur et du client définis sur Ready, ouvrez l' Host url du client de jeu à la port externe spécifiée dans votre navigateur, et vous pourrez jouer au jeu après avoir défini les bonnes valeurs dans le HUD du jeu !

Si vous avez besoin de plus d'informations sur l'intégration de Mirror et websocket, vous pouvez vous référer à leur documentation.
Mis à jour
Ce contenu vous a-t-il été utile ?

