Héberger la bibliothèque réseau Mirror for Unity sur un serveur Linux

introduction

Mirror est une bibliothèque réseau bien connue pour Unity. Je l'utilise également pour les applications VR multijoueurs sur mon réseau local, mais je peux également l'héberger sur un serveur distant. Cela peut sembler difficile à première vue, mais je pourrais y arriver même si je connaissais peu les réseaux, alors peut-être que tout le monde va bien.

Introduisons Mirror.

La version Unity recommandée est 2018.3.6. L'auteur recommande fortement d'utiliser la version LTS, mais cela fonctionnera avec Unity 2019.3 etc. Après avoir téléchargé et importé les ressources Mirror (gratuites), ouvrez la scène dans le dossier Assets / Mirror / Examples / Pong / Scenes. Ce sera la soi-disant scène de jeu Pong.

image.png

Vous pouvez rejoindre le jeu en appuyant sur Client en haut à gauche. Cependant, le jeu ne démarrera pas car il n'est actuellement pas en réseau.

Préparez-vous à la construction côté serveur

Par conséquent, nous préparerons le serveur. "Server Build" a été ajouté à partir de Unity 2018.3, et il est possible de fonctionner en mode sans tête qui n'affiche pas d'images. Placez-le sur le serveur et laissez le client communiquer.

Dans Mirror, si vous cochez «Start on Headless» du composant Network Manager comme indiqué ci-dessous, StartServer () sera automatiquement exécuté sur l'application Server Build pour démarrer le serveur.

image.png

Maintenant, en suivant les recommandations officielles, nous allons prendre la méthode d'exécution du serveur sous Linux et du client sous Windows. Pour ce faire, vous devez d'abord compiler pour Linux. Si vous n'avez pas ciblé Linux lors de l'installation de Unity, ajoutez le module à partir de Unity Hub.

image.png

Après cela, définissez Linux sur la plate-forme cible comme indiqué ci-dessous, et cochez «Server Build» pour construire.

image.png

Les fichiers générés sont les suivants. Si vous les copiez sur Linux par la méthode indiquée dans la section ci-dessous et que vous l'exécutez, cela fonctionnera sur le serveur.

image.png

Avec l'application côté serveur fonctionnant sous Linux, jouez à Unity Editor du côté Windows, entrez l'adresse IP du serveur (localhost sur la même machine) et appuyez sur le bouton Client en haut à gauche de l'écran, comme indiqué ci-dessous Entrez dans le jeu en tant que joueur.

image.png

Vous pouvez jouer à Ping en préparant un autre client et en vous connectant au serveur de la même manière.

Préparation de l'hôte de test

Apprenez à préparer un serveur pour votre hôte. L'explication de l'auteur de la méthode d'introduction est ici. Selon l'auteur, les instances Azure, Amazon et Google ont des paramètres de pare-feu gênants, vous devez donc les éviter pour le moment. L'auteur travaille sur l'hébergement VPS d'une société appelée namecheap. Je veux que vous utilisiez Linux (Ubuntu) comme système d'exploitation.

Bien que namecheap puisse configurer un serveur à moindre coût, ce n'est toujours pas gratuit, je vais donc envisager une méthode qui peut être préparée dans l'environnement local pour la pratique.

Essayez d'utiliser le sous-système Windows pour Linux (WSL)

Par conséquent, nous utiliserons le sous-système Windows pour Linux (WSL), qui vous permet de créer une instance Linux sur Windows 10. Vous pouvez activer WSL, télécharger Ubuntu, etc. par la méthode de cet article. L'Ubuntu à introduire est 18.04LTS, qui est également utilisé dans namecheap.

image.png

Lorsque vous démarrez Ubuntu, il vous sera demandé de saisir le nom d'utilisateur et le mot de passe UNIX après le processus d'installation. Décidez du nom d'utilisateur et du mot de passe et entrez-les. Cela vous amènera à l'invite de commande.

Cependant, comme l'utilisateur ne dispose pas des privilèges root tels quels, définissez le mot de passe root avec cette méthode et root Veuillez vous connecter avec.

À partir de là, suivez la section «Installation de nos exigences» dans Comment installer par l'auteur. Premier,

apt update
apt -y dist-upgrade
apt -y install screen tmux sudo zip unzip

Après cela, le travail pour ajouter un utilisateur est écrit, mais cela n'est pas nécessaire (car il a déjà été ajouté ci-dessus). Veuillez terminer le travail en tant que root avec ʻexit`.

Après cela, dans l'explication de la méthode d'introduction par l'auteur, l'histoire du transfert de fichiers à l'aide de WinSCP sortira, mais si vous souhaitez échanger des fichiers localement, entrez \\ wsl $ dans le chemin dans l'Explorateur, Ubuntu-18.04 Vous pouvez voir le dossier de.

image.png

Le répertoire de l'utilisateur sera \\ wsl $ \ Ubuntu-18.04 \ home \ username.

Ici, vous pouvez construire sur Unity avec Unity et copier directement les fichiers résultants. Ici, le nom de l'application est Server.x86_64.

image.png

Ensuite, comme décrit dans la méthode d'installation par l'auteur, exécutez la commande suivante pour démarrer le serveur.

sudo chmod +x ./Server.x*
./Server.x86_64

J'espère que vous verrez un écran comme celui-ci.

image.png

Appuyez sur Ctrl + C pour quitter.

Une fois que vous êtes prêt, connectez le client comme vous l'avez fait ci-dessus. Si vous exécutez le client sur la même machine que WSL, l'adresse est localhost (ou 127.0.0.1), si vous utilisez une autre machine sur le même réseau local, l'adresse IP de la machine exécutant WSL (et non 127.0.0.1) dans ifconfig Veuillez vérifier et utiliser. Si cela ne fonctionne pas, fermez Ubuntu et réessayez.

Louer et utiliser un serveur distant

Une fois que vous vous sentez en confiance avec WSL, louez un serveur distant. Utilisons le nom bon marché présenté ci-dessus. Le cours d'hébergement VPS le moins cher semble coûter 11,88 $ par mois.

image.png

Après avoir postulé, vous recevrez les informations de votre compte, etc. dans quelques heures. Les informations sur les connexions SSH sont particulièrement importantes.

image.png

De là, vous pouvez suivre la procédure de configuration du serveur Linux (installation unique) dans Explication de la méthode d'installation par l'auteur. Étant donné qu'Ubuntu est préparé par WSL, vous pouvez utiliser la méthode pour Linux. En d'autres termes

ssh root@your-server-ip

Veuillez vous connecter et entrer le mot de passe root (oui, c'est bien si un avertissement apparaît en chemin) Si tout se passe bien, vous devriez pouvoir vous connecter à ubuntu.

image.png

Ensuite, suivez les instructions d'installation de nos exigences dans Explication de la méthode d'installation par l'auteur et exécutez les instructions suivantes.

apt update
apt -y dist-upgrade
apt -y install screen tmux sudo zip unzip

Ajoutez ensuite un utilisateur non root.

adduser your-user-name

Pour votre nom d'utilisateur, entrez le nom d'utilisateur de votre choix. Notez ce nom d'utilisateur. Ensuite, il vous sera demandé de saisir des informations telles qu'un mot de passe, comme indiqué ci-dessous. Pour le nom complet, etc., appuyez sur la touche Entrée pour entrer la valeur par défaut. image.png Vous avez maintenant créé un utilisateur. Pour donner plus de privilèges root

adduser your-user-name sudo

Veuillez également exécuter. Une fois que cela est fait, vous avez terminé avec root, alors entrez logout.

Maintenant, connectons-nous en tant qu'utilisateur créé.

ssh your-user-name@your-server-ip

your-user-name est le nom de l'utilisateur que vous venez de créer, et your-server-ip est l'adresse IP du serveur distant. Lorsque vous l'exécutez, un mot de passe vous sera demandé, afin que vous puissiez vous connecter en entrant celui que vous avez défini précédemment (pas la racine).


Maintenant, nous allons télécharger le fichier construit ensuite, mais comme Explorer ne peut pas être utilisé, Explication de la méthode d'installation par l'auteur Copie de notre jeu construit sur le Utilisez WinSCP recommandé par le serveur. Veuillez installer depuis ici. Lorsque vous démarrez l'application, il vous sera demandé de configurer la connexion comme indiqué ci-dessous.

image.png

Le protocole de transfert est SFTP, le nom d'hôte est l'adresse IP du serveur distant, le numéro de port est 22 et le nom d'utilisateur et le mot de passe sont ceux du compte utilisateur créé ci-dessus. Si la connexion réussit, l'écran ci-dessous apparaîtra, et si vous faites glisser et déposez le fichier vers la droite, le fichier sera transféré.

image.png

À partir de maintenant, comme vous le feriez avec Ubuntu sur WSL

chmod +x ./Server.x*
./Server.x86_64

Vous pouvez exécuter la compilation avec.

en conclusion

Pour un profane de la technologie réseau comme moi, avoir un serveur pour les jeux multijoueurs semblait être une tâche ardue, mais la configuration avec Mirror était très simple et surprenante. Je ne l'ai pas encore utilisé, donc j'ai peut-être quelques problèmes, mais cela semble être parfait pour étudier les réseaux.

Recommended Posts

Héberger la bibliothèque réseau Mirror for Unity sur un serveur Linux
Créez un code QR pour l'URL sous Linux
Construisez un serveur WebDAV simple sur Linux
Faire de Unity Accelerator un service sous Linux
Construire un serveur Samba sur Arch Linux
[CentOS 7.3] Créer un serveur FTP sur l'hôte ESXi
Créez des serveurs sur Linux et des réseaux locaux avec Raspberry Pi NextCloud et le partage de bureau
[Partie 2] Construisons un serveur Web avec EC2 Linux
[Partie 1] Configurons un serveur Micra sur Linux
[Linux] Comment installer un package sur un serveur qui n’a pas d’environnement Internet (autonome)
Éviter les pièges de l'utilisation d'un Mac (pour les utilisateurs Linux?)
Rechercher des fichiers volumineux sous Linux à partir de la ligne de commande
Accédez au serveur SQL de l'hôte avec python27 / pyodbc sur le conteneur
Bibliothèque pour spécifier un serveur de noms en python et dig
Installez la dernière version de Git sur votre serveur Linux
Créez un environnement python sur CentOS 7.7 pour votre serveur domestique
Obtenez le nom d'hôte du PC hôte avec Docker sous Linux
Installez JDK sur Linux
Collez le lien sous Linux
Remarque sur la façon de vérifier la connexion au port du serveur de licences
Créez un environnement Selenium sur Amazon Linux 2 dans les plus brefs délais
Sous Linux, l'horodatage d'un fichier est un peu dépassé.
Script pour sauvegarder les dossiers sur le serveur sur Google Drive
Une commande pour vérifier facilement la vitesse du réseau sur la console
Ce sur quoi je suis tombé lors de l'utilisation de CodeIgniter sur un serveur Linux
Installez Arch Linux sur DeskMini A300
Créer un environnement Linux sur Windows 10
Exécutez TensorFlow2 sur le serveur VPS
pykintone sur le sous-système Windows pour Linux
Remarques sur l'utilisation de matplotlib sur le serveur
Procédure de création d'un environnement Kube sur Amazon Linux2 (AWS) ~ (avec bonus)
Remarques sur l'utilisation de KUnit, le mécanisme de test unitaire du noyau Linux
J'ai essayé de mesurer le temps d'attente de la file d'attente d'exécution d'un processus sous Linux
Une note sur les fonctions de la bibliothèque Linux standard qui gère le temps
Janken Poi avec Python Exécutons sur un serveur local Windows pour les débutants