[UE4] Erstellen Sie DedicatedServer unter Windows und Linux

Ich möchte einen DedicatedServer unter Linux erstellen! Notieren Sie sich also, was ich auf verschiedene Weise versucht habe

Dieser Beitrag

Überprüfen Sie den Vorgang in der Windows-Umgebung

Lassen Sie uns zunächst überprüfen, ob es im Editor funktioniert 3aa51d51363dc4d28f0666adec0ef373.png [Ausgewähltes Ansichtsfenster] x [Standalone-Spiel] x [Offline spielen] x [Als Kunde spielen] x [Anzahl der Spieler] Ich werde die Funktionsweise jeder dieser Kombinationen überprüfen, es ist also ziemlich Taihen. ..

Starten Sie von außerhalb des Editors

Wenn Sie es mit PIE starten, können Sie die Prozesse aller Server und Clients verfolgen. Dies ist praktisch, aber wenn Sie einer Funktion namens CLI1, CLI2, SERV mehrmals folgen (BeginPlay usw.), wird Ihr Kopf sehr müde (!). Beschreibt, wie einzelne Prozesse gestartet werden

Server-Startstapel

RunServer.bat


:: [UE4DIR], [ProjectName]Ersetzen Sie durch Ihre eigene Umgebung
set EDITOR=[UE4DIR]\Engine\Binaries\Win64\UE4Editor.exe
set GAME_UPROJECT=%~dp0%\[ProjectName].uproject

::Optionale Startkarte
::Die Standardeinstellung sind die Projekteinstellungen[Server Default Map]Wird genutzt
set MAP_NAME=

::Starten Sie den Server über den Editor
start %EDITOR% %GAME_UPROJECT% %MAP_NAME% -server -log
exit

Client-Startstapel

RunClient.bat


set EDITOR=[UE4DIR]\Engine\Binaries\Win64\UE4Editor.exe
set GAME_UPROJECT=%~dp0%\[ProjectName].uproject

start %EDITOR% %GAME_UPROJECT% -game -log -windowed -ResX=1024 -ResY=576
exit

Bauen & kochen

Als nächstes werde ich die binäre Erstellung beschreiben

Server-Build-Ziel hinzufügen

Die Zieldatei ist in der Vorlage nicht vorhanden. Fügen Sie sie daher hinzu

[ProjectDir]/Source/[ProjectName]Server.Target.cs


using UnrealBuildTool;
using System.Collections.Generic;

public class [ProjectName]ServerTarget : TargetRules
{
	public [ProjectName]ServerTarget(TargetInfo Target) : base(Target)
	{
		Type = TargetType.Server;
		DefaultBuildSettings = BuildSettingsVersion.V2;
		ExtraModuleNames.Add("[ProjectModuleName]");
	}
}

Bitte fügen Sie hinzu, indem Sie auf [Projektname] .Target.cs im selben Verzeichnis verweisen. f68f1206877201067ff5f8a5447ff97d.png Aktualisieren Sie nach dem Hinzufügen der Datei die VS-Datei über das Uproject-Menü fe585b7fa7855b8e8fd1051443f87961.png Stellen Sie sicher, dass Sie mehr Ziele haben (VSCode-Bild)

Kochen Sie über die Befehlszeile

Es gibt viele Tutorials auf ProjectLauncher, wenn ich google, Es wird empfohlen, aus einer Batchdatei auszuführen, da Sie den Editor nicht starten müssen.

BuildServer.bat


set ENGINE_ROOT=[UE4DIR]\Engine
set GAME_UPROJECT=%~dp0%\[ProjectName].uproject

::Wenn eine Zeile lang ist^Brechen mit
::Wenn Sie start eingeben, bleibt am Ende ein Fenster
start %ENGINE_ROOT%\Build\BatchFiles\RunUAT ^
	BuildCookRun -project=%GAME_UPROJECT% ^
	-nop4 -build -cook -compressed -stage ^
	-noclient -server -serverplatform=Win64 -serverconfig=Development ^
	-pak -utf8output

81ebb694a18fef878a21e358c28aa9b5.png Wenn BUILD SUCCESSFUL angezeigt wird, ist der Vorgang abgeschlossen. Pakete werden unter [ProjectDir] \ Saved \ StagedBuilds \ WindowsServer generiert 8809a9e877f3aba2b910de72065c3448.png Öffnen Sie den Ordner im Explorer und geben Sie cmd ein, um eine Eingabeaufforderung im laufenden Betrieb zu öffnen (ich wusste es nicht). 23068bc0dedb39a92461bce3bbeafccb.png Führen Sie exe mit dem Argument -log aus, um den Server zu starten 3c40660160da2ba816bbf74857911da6.png Sie können eine Verbindung zum Server herstellen, indem Sie PIE starten, die @ -Taste drücken und [open 127.0.0.1] eingeben.

Erstellen Sie eine Linux-Umgebung

Lesen Sie zuerst die Linux-Cross-Compilation (https://docs.unrealengine.com/de/Platforms/Linux/GettingStarted/index.html) Hast du es gelesen? Was soll ich machen··· Sollte ich zuerst eine Linux-Umgebung einbauen? Das hast du dir gedacht! !! !! 679e03840b5a525aee093506fb20d543.png Ich habe versucht, eine P4-Umgebung zu erstellen, und als ich UE4DIR eingereicht und aktualisiert habe, sah es so aus, also hatte ich Angst und wurde gestoppt. Wenn Sie auf Setup klicken, sind es ungefähr 120 GB, also ... reicht die Lautstärke überhaupt nicht aus ... Building Unreal Engine Game Client and Dedicated Server on Linux Es gibt Leute, die es tun, aber was ist das für eine Operation?

Deshalb bauen auf Windows-> nur ausführbare Dateien übertragen

Toolchain-Installation

aacfa4ee36e3060455da770db2f9b489.png Durch Klicken auf Link wird die Installation jedoch nicht gestartet Rechtsklick-> Neues Fenster zur Installation öffnen Führen Sie Generate Visual Studio-Projektdateien erneut aus, und Linux sollte dem Ziel hinzugefügt werden (Ich habe kein Vertrauen in die Details hier ...)

Linux Server kochen

Ändern Sie -serverplatform in BuildServer.bat in Linux und erstellen und kochen Sie Erfolg, wenn in \ Saved \ StagedBuilds \ LinuxServer gepackt

Erstellen Sie einen AWS-Server

Es ist nicht das Hauptthema, also nur die Hauptpunkte

Starten Sie den Server

$ ./[ProjectName]Server.sh -log

Ich werde versuchen, den Befehl vorerst auszuführen,

./[ProjectName]Server.sh: line 5:  2950 Segmentation fault
"$UE4_PROJECT_ROOT/[ProjectName]/Binaries/Linux/[ProjectName]Server" [ProjectName] "$@"

Starten Sie den GDB-Debugger

$ gdb [ProjectName]Server
GNU gdb (GDB) Red Hat Enterprise Linux 8.0.1-30.amzn2.0.3
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from [ProjectName]Server...Reading symbols from /var/www/[ProjectName]/Binaries/Linux/[ProjectName]Server.debug...done.
done.
(gdb) run -log
Starting program: /var/www/[ProjectName]/Binaries/Linux/[ProjectName]Server -log
fork: Cannot allocate memory.
(gdb)

Cannnnnnnnnot allocate memory!!! Also wechselte ich von t3nano zu t3micro und konnte sicher starten Bestätigen Sie, dass Sie eine Verbindung mit [open ###. ###. ###. ### (GlobalIP)] herstellen können.

Beginnen Sie im Hintergrund mit nohup

//Erteilen Sie die Ausführungsberechtigung, um mit nohup zu beginnen
$ chmod +x SlothServer.sh
//Standard/Ändern Sie die Fehlerausgabe entsprechend
//MapName ist optional (falls nicht angegeben)[Server Default Map])
$ nohup ./SlothServer.sh [MapName] > nohup.out 2> nohup.err &

nohup kill boot process

$ pkill SlothServer

Referenzlink

How To Set Up Dedicated Servers for Windows and Linux For Your UE4 Game (using Windows) Legacy/Dedicated Server Guide (Windows & Linux)

Recommended Posts

[UE4] Erstellen Sie DedicatedServer unter Windows und Linux
Erstellen und installieren Sie OpenCV unter Windows
Installieren Sie wsl2 und Master Linux unter Windows
Linux (WSL) unter Windows
Erstellen Sie TensorFlow unter Windows
Erstellen Sie XGBoost unter Windows
Erstellen Sie Linux in einer Windows-Umgebung. Schritte zum Installieren und Migrieren von Laradock
Aufnahme und Wiedergabe unter Linux
Erstellen Sie eine Python-Umgebung unter Windows
Erstellen Sie Apache HTTP Server und Wildfly unter Oracle Linux 8
Erstellen Sie eine Python-Umgebung mit Windows
Linux unter Windows -1-: Einführung in Debian
Verwenden Sie Linux unter Windows 10 (WSL2)
Unterschied zwischen Windows- und Linux-Verzeichnissen
Python 3.6 unter Windows ... und zu Xamarin.
Verknüpfen Sie Modelica und Python unter Windows
Erstellen Sie eine Linux-Umgebung unter Windows 10
Rohr und Rad in Fenstern beherrschen
pykintone unter Windows Subsystem für Linux
Installieren Sie easy_install und pip unter Windows
Erstellen Sie eine 64-Bit-Python 2.7-Umgebung mit TDM-GCC und MinGW-w64 unter Windows 7
Build-Umgebung für Python 2.7, 3.4, 3.5-Erweiterungsmodule unter Windows
Docker und PyCharm unter Proxy in Windows
Erstellen Sie Python 3 und OpenCV unter Ubuntu 18.04
Erstellen Sie einen NFS-Server unter Arch Linux
Erstellen Sie einen einfachen WebDAV-Server unter Linux
Installieren und starten Sie k3s unter Manjaro Linux
Installieren und konfigurieren Sie den TigerVNC-Server unter Linux
Lernen Sie sshd_config und autorisierte_Tasten (für Amazon Linux 2)
Erstellen Sie einen Samba-Server unter Arch Linux
Führen Sie py.test unter Windows Anaconda und MinGW aus
Arch on lvm on luks Konstruktion und Initialisierung
Erstellen Sie eine virtuelle Linux-Maschine unter Windows
Setzen Sie die MeCab-Bindung für Python unter Windows, Mac und Linux mit pip ein
Installieren Sie Python3.5 + NumPy + SciPy und führen Sie es unter Windows 10 aus
Python unter Windows
(Windows) Ursachen und Problemumgehungen für UnicodeEncodeError in Python 3
Erstellen Sie einfach eine Python 3-Ausführungsumgebung unter Windows
Hinweise zur Installation von Python3 und zur Verwendung von pip unter Windows7
Installieren Sie OpenCV 4.0 und Python 3.7 unter Windows 10 mit Anaconda
Kompilieren Sie die Windows-Version von nim von arch | linux
Erstellen Sie Oracle Database 19c unter Oracle Linux 8.3 (zweiter Teil der DB-Konstruktion)
Invertieren Sie die Bildschirmausgabe unter Linux vertikal und horizontal
Korrespondenztabelle für Linux- (Bash) und Windows- (PowerShell) Befehle
[Hinweis] Installieren von Python 3.6 + α unter Windows und RHEL
Quellkompilierung Apache2.4 (httpd 2.4.43) + PHP7.4 unter Linux zum Erstellen eines Webservers ―― 1. Einführung in Apache
Erstellen Sie eine Arch Linux-Umgebung auf Raspai
Installieren Sie die ZIP-Version Python und Pip unter Windows 10
Quellkompilierung Apache2.4 (httpd 2.4.43) + PHP7.4 unter Linux zum Erstellen eines Webservers --2 PHP-Einführung
Schritte zum Erstellen von PyTorch 1.5 für CUDA 10.2 unter Windows
Erstellen Sie Server in Linux und lokalen Netzwerken mit Raspberry Pi NextCloud und Desktop-Sharing
Installieren Sie procs, ein alternatives Tool für ps, unter Linux (auch unter Mac und Windows verfügbar).