Hosten Sie die Netzwerkbibliothek Mirror for Unity auf einem Linux-Server

Einführung

Mirror ist eine bekannte Netzwerkbibliothek für Unity. Ich verwende es auch für Multiplayer-VR-Apps in meinem lokalen Netzwerk, kann es aber auch auf einem Remote-Server hosten. Es mag auf den ersten Blick schwierig erscheinen, aber ich könnte es schaffen, selbst wenn ich wenig über Netzwerke weiß, also ist vielleicht jeder in Ordnung.

Lassen Sie uns Mirror vorstellen.

Die empfohlene Unity-Version ist 2018.3.6. Der Autor empfiehlt dringend die Verwendung der LTS-Version, diese funktioniert jedoch mit Unity 2019.3 usw. Öffnen Sie nach dem Herunterladen und Importieren der Mirror-Assets (kostenlos) die Szene im Ordner Assets / Mirror / Examples / Pong / Scenes. Es wird die sogenannte Pong-Spielszene sein.

image.png

Sie können dem Spiel beitreten, indem Sie oben links auf Client klicken. Das Spiel wird jedoch nicht gestartet, da es derzeit nicht vernetzt ist.

Bereiten Sie sich auf den serverseitigen Build vor

Daher werden wir den Server vorbereiten. "Server Build" wurde ab Unity 2018.3 hinzugefügt, und es ist möglich, im Headless-Modus zu arbeiten, in dem keine Bilder angezeigt werden. Legen Sie es auf den Server und lassen Sie den Client kommunizieren.

Wenn Sie in Mirror in der Network Manager-Komponente "Start on Headless" aktivieren (siehe unten), wird StartServer () automatisch in der Server Build-Anwendung ausgeführt, um den Server zu starten.

image.png

Nach den offiziellen Empfehlungen verwenden wir nun die Methode zum Ausführen des Servers unter Linux und des Clients unter Windows. Dazu müssen Sie zuerst für Linux erstellen. Wenn Sie bei der Installation von Unity nicht auf Linux abgezielt haben, fügen Sie das Modul von Unity Hub hinzu.

image.png

Sobald dies erledigt ist, setzen Sie Linux wie unten gezeigt auf Zielplattform und aktivieren Sie "Server Build", um es zu erstellen.

image.png

Die generierten Dateien lauten wie folgt. Wenn Sie diese mit der im folgenden Abschnitt gezeigten Methode nach Linux kopieren und ausführen, funktioniert dies auf dem Server.

image.png

Wenn die serverseitige App unter Linux ausgeführt wird, spielen Sie Unity Editor auf der Windows-Seite, geben Sie die IP-Adresse des Servers (localhost auf demselben Computer) ein und drücken Sie die Client-Taste oben links auf dem Bildschirm, wie unten gezeigt. Betreten Sie das Spiel als Spieler.

image.png

Sie können Ping spielen, indem Sie einen anderen Client vorbereiten und auf die gleiche Weise eine Verbindung zum Server herstellen.

Testhost vorbereiten

Erfahren Sie, wie Sie einen Server für Ihren Host vorbereiten. Die Erklärung des Autors zur Einführungsmethode lautet hier. Laut dem Autor haben Azure-, Amazon- und Google-Instanzen problematische Firewall-Einstellungen, daher sollten Sie diese vorerst vermeiden. Der Autor arbeitet an VPS-Hosting eines Unternehmens namens namecheap. Ich möchte, dass Sie Linux (Ubuntu) als Betriebssystem verwenden.

Obwohl namecheap einen Server kostengünstig einrichten kann, ist er immer noch nicht kostenlos. Daher werde ich eine Methode in Betracht ziehen, die in der lokalen Umgebung für die Praxis vorbereitet werden kann.

Versuchen Sie es mit Windows Subsystem for Linux (WSL).

Daher verwenden wir das Windows-Subsystem für Linux (WSL), mit dem Sie eine Linux-Instanz unter Windows 10 erstellen können. Sie können WSL aktivieren, Ubuntu herunterladen usw. mit der Methode von diesem Artikel. Das einzuführende Ubuntu ist 18.04LTS, das auch in namecheap verwendet wird.

image.png

Wenn Sie Ubuntu starten, werden Sie nach dem Installationsvorgang aufgefordert, den UNIX-Benutzernamen und das Kennwort einzugeben. Legen Sie den Benutzernamen und das Kennwort fest und geben Sie diese ein. Dadurch gelangen Sie zur Eingabeaufforderung.

Da der Benutzer jedoch keine Root-Berechtigungen hat, legen Sie das Root-Passwort mit dieser Methode und root fest Bitte einloggen mit.

Folgen Sie ab hier dem Abschnitt "Installieren unserer Anforderungen" unter Installation durch den Autor. Zuerst,

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

Danach wird die Arbeit zum Hinzufügen eines Benutzers geschrieben, dies ist jedoch nicht erforderlich (da sie bereits oben hinzugefügt wurde). Bitte beenden Sie die Arbeit als root mit exit.

Danach wird in der Erläuterung der Einführungsmethode durch den Autor die Geschichte der Dateiübertragung mit WinSCP veröffentlicht. Wenn Sie jedoch Dateien lokal austauschen möchten, geben Sie im Explorer in Ubuntu-18.04 "\ wsl $" in den Pfad ein Sie können den Ordner von sehen.

image.png

Das Benutzerverzeichnis lautet "\ wsl $ \ Ubuntu-18.04 \ home \ username".

Hier können Sie mit Unity auf Linux abzielen und die resultierenden Dateien direkt kopieren. Hier lautet der App-Name "Server.x86_64".

image.png

Führen Sie als Nächstes, wie in der Installationsmethode des Autors beschrieben, den folgenden Befehl aus, um den Server zu starten.

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

Hoffentlich sehen Sie einen Bildschirm wie diesen.

image.png

Drücken Sie Strg + C, um den Vorgang zu beenden.

Wenn Sie fertig sind, verbinden Sie den Client wie oben beschrieben. Wenn Sie den Client auf demselben Computer wie WSL ausführen, lautet die Adresse localhost (oder 127.0.0.1). Wenn Sie einen anderen Computer im selben lokalen Netzwerk verwenden, lautet die IP-Adresse des Computers, auf dem WSL (nicht 127.0.0.1) ausgeführt wird, in ifconfig Bitte überprüfen und verwenden. Wenn das nicht funktioniert, schließen Sie Ubuntu und versuchen Sie es erneut.

Mieten und nutzen Sie einen Remote-Server

Wenn Sie sich mit WSL sicher sind, mieten Sie einen Remote-Server. Verwenden wir den oben eingeführten Namen billig. Der billigste VPS-Hosting-Kurs scheint 11,88 USD pro Monat zu sein.

image.png

Nach der Bewerbung erhalten Sie in wenigen Stunden Ihre Kontoinformationen usw. Informationen zu SSH-Verbindungen sind besonders wichtig.

image.png

Von hier aus können Sie den Anweisungen zum Konfigurieren des Linux-Servers (einmaliges Setup) unter Erläuterung der Installationsmethode durch den Autor folgen. Da Ubuntu von der WSL vorbereitet wird, können Sie die Methode für Linux verwenden. Mit anderen Worten

ssh root@your-server-ip

Bitte verbinden Sie sich mit und geben Sie das Root-Passwort ein (Ja ist in Ordnung, wenn unterwegs eine Warnung angezeigt wird). Wenn alles gut geht, sollten Sie sich bei Ubuntu anmelden können.

image.png

Befolgen Sie danach die Anweisungen zum Installieren unserer Anforderungen unter Erläuterung der Installationsmethode durch den Autor und führen Sie die folgenden Anweisungen aus.

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

Fügen Sie dann einen Nicht-Root-Benutzer hinzu.

adduser your-user-name

Geben Sie als Benutzernamen den Benutzernamen Ihrer Wahl ein. Notieren Sie sich diesen Benutzernamen. Anschließend werden Sie aufgefordert, Informationen wie ein Kennwort wie unten gezeigt einzugeben. Drücken Sie für den vollständigen Namen usw. die Eingabetaste, um den Standardwert einzugeben. image.png Sie haben jetzt einen Benutzer erstellt. Um mehr Root-Rechte zu geben

adduser your-user-name sudo

Bitte auch ausführen. Sobald dies erledigt ist, sind Sie mit root fertig. Geben Sie also "logout" ein.

Jetzt melden wir uns als erstellter Benutzer an.

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

Ihr Benutzername ist der Name des Benutzers, den Sie gerade erstellt haben, und Ihre Server-IP ist die IP-Adresse des Remote-Servers. Wenn Sie es ausführen, werden Sie nach einem Kennwort gefragt, sodass Sie sich anmelden können, indem Sie das zuvor festgelegte Kennwort eingeben (nicht das Stammverzeichnis).


Laden wir nun als nächstes die erstellte Datei hoch, aber da der Explorer nicht verwendet werden kann, Erläuterung der Installationsmethode durch den Autor Kopieren Sie unser erstelltes Spiel in das Verwenden Sie das vom Server empfohlene WinSCP. Bitte installieren Sie von hier. Wenn Sie die App starten, werden Sie aufgefordert, die Verbindung wie unten gezeigt einzurichten.

image.png

Das Übertragungsprotokoll sollte SFTP sein, der Hostname sollte die IP-Adresse des Remote-Servers sein, die Portnummer sollte 22 sein und der Benutzername und das Passwort sollten die des oben erstellten Benutzerkontos sein. Wenn die Verbindung erfolgreich hergestellt wurde, wird der folgende Bildschirm angezeigt. Ziehen Sie die Datei nach rechts, um sie zu übertragen.

image.png

Von hier an, genau wie bei Ubuntu in der WSL

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

Sie können den Build mit ausführen.

abschließend

Für einen Laien mit Netzwerktechnologie wie mich schien es eine entmutigende Aufgabe zu sein, einen Server für Multiplayer-Spiele zu haben, aber die Einrichtung mit Mirror war sehr einfach und überraschend. Ich habe es noch nicht benutzt, daher habe ich möglicherweise einige Probleme, aber es scheint genau richtig für das Studium von Netzwerken zu sein.

Recommended Posts

Hosten Sie die Netzwerkbibliothek Mirror for Unity auf einem Linux-Server
Erstellen Sie unter Linux einen QR-Code für die URL
Erstellen Sie einen einfachen WebDAV-Server unter Linux
Machen Sie Unity Accelerator zu einem Dienst unter Linux
Erstellen Sie einen Samba-Server unter Arch Linux
[CentOS 7.3] Erstellen Sie einen FTP-Server auf dem ESXi-Host
Erstellen Sie Server in Linux und lokalen Netzwerken mit Raspberry Pi NextCloud und Desktop-Sharing
[Teil 2] Erstellen wir einen Webserver mit EC2 Linux
[Teil 1] Lassen Sie uns einen Micra-Server unter Linux einrichten
[Linux] So installieren Sie ein Paket auf einem Server ohne Internetumgebung (eigenständig)
Vermeiden Sie die Fallstricke bei der Verwendung eines Mac (für Linux-Benutzer?)
Suchen Sie unter Linux über die Befehlszeile nach großen Dateien
Greifen Sie mit python27 / pyodbc auf dem Container auf den SQL Server des Hosts zu
Bibliothek zur Angabe eines Nameservers in Python und Dig
Installieren Sie die neueste Version von Git auf Ihrem Linux-Server
Erstellen Sie unter CentOS 7.7 eine Python-Umgebung für Ihren Heimserver
Rufen Sie den Hostnamen des Host-PCs mit Docker unter Linux ab
Installieren Sie JDK unter Linux
Fügen Sie den Link unter Linux ein
Ein Hinweis zum Überprüfen der Verbindung zum Lizenzserver-Port
Erstellen Sie in kürzester Zeit eine Selenium-Umgebung unter Amazon Linux 2
Unter Linux ist der Zeitstempel einer Datei etwas vorbei.
Skript zum Sichern von Ordnern auf dem Server in Google Drive
Ein Befehl zum einfachen Überprüfen der Netzwerkgeschwindigkeit auf der Konsole
Worauf ich bei der Verwendung von CodeIgniter auf einem Linux-Server gestoßen bin
Installieren Sie Arch Linux auf DeskMini A300
Erstellen Sie eine Linux-Umgebung unter Windows 10
Führen Sie TensorFlow2 auf dem VPS-Server aus
pykintone unter Windows Subsystem für Linux
Hinweise zur Verwendung von matplotlib auf dem Server
Vorgehensweise zum Erstellen einer Kube-Umgebung unter Amazon Linux2 (aws) ~ (mit Bonus)
Hinweise zur Verwendung von KUnit, dem Unit-Test-Mechanismus des Linux-Kernels
Ich habe versucht, die Wartezeit der Ausführungswarteschlange eines Prozesses unter Linux zu messen
Ein Hinweis zu den Funktionen der Standard-Linux-Bibliothek, die sich mit Zeit befasst
Janken Poi mit Python Lassen Sie uns für Anfänger auf einem lokalen Windows-Server laufen