Je veux construire un DedicatedServer sur Linux! Alors, notez ce que j'ai essayé de diverses manières
Tout d'abord, vérifions que cela fonctionne sur l'éditeur [Fenêtre sélectionnée] x [Jeu autonome] x [Jouer hors ligne] x [Jouer en tant que client] x [Nombre de joueurs] Je vais vérifier le fonctionnement de chacune de ces combinaisons, donc c'est assez Taihen. ..
Si vous le démarrez avec PIE, vous pouvez suivre les processus de tous les serveurs et clients. C'est pratique, mais si vous suivez plusieurs fois une fonction appelée CLI1, CLI2, SERV (BeginPlay, etc.), votre tête sera très fatiguée (!). Décrit comment démarrer des processus individuels
RunServer.bat
:: [UE4DIR], [ProjectName]Remplacez par votre propre environnement
set EDITOR=[UE4DIR]\Engine\Binaries\Win64\UE4Editor.exe
set GAME_UPROJECT=%~dp0%\[ProjectName].uproject
::Carte de lancement en option
::La valeur par défaut est les paramètres du projet[Server Default Map]Est utilisé
set MAP_NAME=
::Démarrez le serveur depuis l'éditeur
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
Ensuite, je décrirai la création binaire
Le fichier cible n'existe pas dans le modèle, alors ajoutez-le
[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]");
}
}
Veuillez ajouter en vous référant à [ProjectName] .Target.cs dans le même répertoire. Après avoir ajouté le fichier, mettez à jour le fichier VS à partir du menu uproject Assurez-vous d'avoir plus de cibles (image VSCode)
Il existe de nombreux tutoriels sur ProjectLauncher lorsque vous google, Il est recommandé d'exécuter à partir d'un fichier batch car vous n'avez pas besoin de démarrer l'éditeur.
BuildServer.bat
set ENGINE_ROOT=[UE4DIR]\Engine
set GAME_UPROJECT=%~dp0%\[ProjectName].uproject
::Si une ligne est longue^Rompre une ligne avec
::Si vous entrez début, une fenêtre restera à la fin
start %ENGINE_ROOT%\Build\BatchFiles\RunUAT ^
BuildCookRun -project=%GAME_UPROJECT% ^
-nop4 -build -cook -compressed -stage ^
-noclient -server -serverplatform=Win64 -serverconfig=Development ^
-pak -utf8output
Lorsque BUILD SUCCESSFUL s'affiche, il est terminé. Les packages seront générés sous [ProjectDir] \ Saved \ StagedBuilds \ WindowsServer Ouvrez le dossier dans l'Explorateur et tapez cmd pour ouvrir une invite de commande à la volée (je ne savais pas) Exécutez exe avec l'argument -log pour démarrer le serveur Vous pouvez vous connecter au serveur en lançant PIE, en appuyant sur la touche @ et en tapant [open 127.0.0.1].
Lisez d'abord la compilation croisée Linux (https://docs.unrealengine.com/en/Platforms/Linux/GettingStarted/index.html) L'avez-vous lu? Que devrais-je faire··· Dois-je construire dans un environnement Linux en premier lieu? Vous le pensiez! !! !! J'ai essayé de créer un environnement P4, et quand j'ai soumis et mis à jour UE4DIR, cela ressemblait à ceci, donc j'ai eu peur et je me suis arrêté. Lorsque vous cliquez sur Configuration, il fait environ 120 Go, donc ... le volume n'est pas suffisant en premier lieu ... Building Unreal Engine Game Client and Dedicated Server on Linux Il y a des gens qui le font, mais de quel genre d'opération s'agit-il?
C'est pourquoi construire sur Windows-> transférer uniquement les fichiers exécutables
Cliquer sur lien ne démarre pas l'installation, mais Clic droit-> Ouvrir une nouvelle fenêtre pour installer Exécutez à nouveau les fichiers de projet Generate Visual Studio et Linux doit être ajouté à la cible (Je n'ai pas confiance dans les détails ici ...)
Changer -serverplatform dans BuildServer.bat en Linux et build & cook Succès si empaqueté dans \ Saved \ StagedBuilds \ LinuxServer
Ce n'est pas le sujet principal donc seulement les points principaux
Lancer t3.micro (moins cher que t2, nouvelle génération, mais pas gratuit)
Dans t3.nano, le serveur ne peut pas être démarré car il n'y a pas assez de mémoire </ font> (décrit plus loin)
Le volume par défaut de 8GiB n'était pas suffisant, donc je l'ai augmenté à 16GiB (attention à la perte de poids car c'est trop ennuyeux!) Référence: Vérification de la méthode d'extension de la capacité EC2 Volume (EBS) (Amazon Linux)
Je veux le démarrer uniquement lorsque je l'utilise, il est donc plus facile de le réparer avec Elastic IP
La communication UE4 utilise UDP: 7777, alors ouvrons-la
Transféré avec WinSCP \ Saved \ StagedBuilds \ LinuxServer \ [ProjectName] \ Binaries \ Linux \ [ProjectName] Server.debug a une grande capacité, alors décidez de le transférer en fonction de votre objectif. Cela peut être nécessaire pour le développement car il suit les traces de pile avec gdb
$ ./[ProjectName]Server.sh -log
Je vais essayer d'exécuter la commande pour le moment,
./[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!!! J'ai donc changé de t3nano à t3micro et j'ai pu démarrer en toute sécurité Confirmez que vous pouvez vous connecter avec [open ###. ###. ###. ### (GlobalIP)]
//Accorder l'autorisation d'exécution pour démarrer avec nohup
$ chmod +x SlothServer.sh
//la norme/Modifiez la sortie d'erreur comme il convient
//MapName est facultatif (s'il n'est pas spécifié)[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