Ich möchte einen DedicatedServer unter Linux erstellen! Notieren Sie sich also, was ich auf verschiedene Weise versucht habe
Lassen Sie uns zunächst überprüfen, ob es im Editor funktioniert [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. ..
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
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
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
Als nächstes werde ich die binäre Erstellung beschreiben
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. Aktualisieren Sie nach dem Hinzufügen der Datei die VS-Datei über das Uproject-Menü Stellen Sie sicher, dass Sie mehr Ziele haben (VSCode-Bild)
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
Wenn BUILD SUCCESSFUL angezeigt wird, ist der Vorgang abgeschlossen. Pakete werden unter [ProjectDir] \ Saved \ StagedBuilds \ WindowsServer generiert Öffnen Sie den Ordner im Explorer und geben Sie cmd ein, um eine Eingabeaufforderung im laufenden Betrieb zu öffnen (ich wusste es nicht). Führen Sie exe mit dem Argument -log aus, um den Server zu starten Sie können eine Verbindung zum Server herstellen, indem Sie PIE starten, die @ -Taste drücken und [open 127.0.0.1] eingeben.
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! !! !! 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
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 ...)
Ändern Sie -serverplatform in BuildServer.bat in Linux und erstellen und kochen Sie Erfolg, wenn in \ Saved \ StagedBuilds \ LinuxServer gepackt
Es ist nicht das Hauptthema, also nur die Hauptpunkte
Starten Sie t3.micro (billiger als t2, nächste Generation, aber nicht kostenlos)
In t3.nano kann der Server nicht gestartet werden, da nicht genügend Speicher vorhanden ist </ font> (später beschrieben)
Das Standardvolumen von 8 GB war nicht genug, deshalb habe ich es auf 16 GB erhöht (Vorsicht beim Abnehmen, weil es zu nervig ist!) Referenz: Überprüfung der Kapazitätserweiterungsmethode für EC2-Volume (EBS) (Amazon Linux)
Ich möchte es nur starten, wenn ich es benutze, daher ist es einfacher, es mit Elastic IP zu reparieren
Die UE4-Kommunikation verwendet UDP: 7777, also öffnen wir sie
Mit [WinSCP] übertragen (https://winscp.net/eng/docs/lang:jp) \ Saved \ StagedBuilds \ LinuxServer \ [Projektname] \ Binaries \ Linux \ [Projektname] Server.debug verfügt über eine große Kapazität. Entscheiden Sie daher, ob Sie es entsprechend Ihrem Zweck übertragen möchten. Dies kann für die Entwicklung erforderlich sein, da es mit gdb Stack-Traces folgt
$ ./[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] "$@"
w
$ 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.
//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 &
$ pkill SlothServer
How To Set Up Dedicated Servers for Windows and Linux For Your UE4 Game (using Windows) Legacy/Dedicated Server Guide (Windows & Linux)
Recommended Posts