[UE4] Construire DedicatedServer sous Windows et Linux

Je veux construire un DedicatedServer sur Linux! Alors, notez ce que j'ai essayé de diverses manières

Cet article

Vérifiez le fonctionnement dans l'environnement Windows

Tout d'abord, vérifions que cela fonctionne sur l'éditeur 3aa51d51363dc4d28f0666adec0ef373.png [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. ..

Lancer depuis l'extérieur de l'éditeur

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

Lot de démarrage du serveur

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

Lot de lancement client

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

Construire et cuisiner

Ensuite, je décrirai la création binaire

Ajouter une cible de build de serveur

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. f68f1206877201067ff5f8a5447ff97d.png Après avoir ajouté le fichier, mettez à jour le fichier VS à partir du menu uproject fe585b7fa7855b8e8fd1051443f87961.png Assurez-vous d'avoir plus de cibles (image VSCode)

Cook à partir de la ligne de commande

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

81ebb694a18fef878a21e358c28aa9b5.png Lorsque BUILD SUCCESSFUL s'affiche, il est terminé. Les packages seront générés sous [ProjectDir] \ Saved \ StagedBuilds \ WindowsServer 8809a9e877f3aba2b910de72065c3448.png Ouvrez le dossier dans l'Explorateur et tapez cmd pour ouvrir une invite de commande à la volée (je ne savais pas) 23068bc0dedb39a92461bce3bbeafccb.png Exécutez exe avec l'argument -log pour démarrer le serveur 3c40660160da2ba816bbf74857911da6.png Vous pouvez vous connecter au serveur en lançant PIE, en appuyant sur la touche @ et en tapant [open 127.0.0.1].

Construire un environnement Linux

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! !! !! 679e03840b5a525aee093506fb20d543.png 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

Installation de la chaîne d'outils

aacfa4ee36e3060455da770db2f9b489.png 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 ...)

Cuisinier de serveur Linux

Changer -serverplatform dans BuildServer.bat en Linux et build & cook Succès si empaqueté dans \ Saved \ StagedBuilds \ LinuxServer

Créer un serveur AWS

Ce n'est pas le sujet principal donc seulement les points principaux

Démarrez le serveur

$ ./[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] "$@"

Démarrer le débogueur gdb

$ 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)]

Commencez en arrière-plan avec nohup

//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 &

nohup kill processus de démarrage

$ pkill SlothServer

Lien de référence

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] Construire DedicatedServer sous Windows et Linux
Construisez et installez OpenCV sur Windows
Installez wsl2 et master linux sous Windows
Linux (WSL) sous Windows
Construire TensorFlow sous Windows
Construisez XGBoost sur Windows
Construisez Linux sur un environnement Windows. Étapes pour installer Laradock et migrer
Enregistrement et lecture sous Linux
Créer un environnement Python sur Windows
Créer un serveur HTTP Apache et Wildfly sur Oracle Linux 8
Construire un environnement Python avec Windows
Linux sur Windows -1-: Présentation de Debian
Utiliser Linux sur Windows 10 (WSL2)
Différence entre les répertoires Windows et Linux
Python 3.6 sous Windows ... et vers Xamarin.
Lier Modelica et Python sous Windows
Créer un environnement Linux sur Windows 10
Maîtriser le pip et la roue dans Windows
pykintone sur le sous-système Windows pour Linux
Installez easy_install et pip sur Windows
Créez un environnement Python 2.7 64 bits avec TDM-GCC et MinGW-w64 sous Windows 7
Environnement de création de module d'extension Python 2.7, 3.4, 3.5 sous Windows
docker et PyCharm sous proxy dans Windows
Créer un environnement Python 3 et OpenCV sur Ubuntu 18.04
Créer un serveur NFS sur Arch Linux
Construisez un serveur WebDAV simple sur Linux
Installer et lancer k3s sur Manjaro Linux
Installer et configurer le serveur TigerVNC sous Linux
Découvrez sshd_config et allowed_keys (pour Amazon Linux 2)
Construire un serveur Samba sur Arch Linux
Exécutez py.test sur Windows Anaconda et MinGW
Arch sur LVM sur la construction et l'initialisation de Luks
Créer une machine virtuelle Linux sous Windows
Mettre la liaison MeCab pour Python sur Windows, Mac et Linux avec pip
Installez et exécutez Python3.5 + NumPy + SciPy sur Windows 10
Python sur Windows
(Windows) Causes et solutions de contournement pour UnicodeEncodeError dans Python 3
Créez simplement un environnement d'exécution Python 3 sous Windows
Remarques sur l'installation de Python3 et l'utilisation de pip sous Windows7
[Samba] Partage de fichiers mutuel entre les machines Linux et Windows
Installez OpenCV 4.0 et Python 3.7 sur Windows 10 avec Anaconda
Compilation croisée de la version Windows à partir de nim of arch | linux
Construire la base de données Oracle 19c sur Oracle Linux 8.3 (deuxième partie de la construction de la base de données)
Inverser la sortie d'écran verticalement et horizontalement sous Linux
Table de correspondance des commandes Linux (Bash) et Windows (PowerShell)
[Note] Installation de Python 3.6 + α sur Windows et RHEL
Source compilez Apache2.4 (httpd 2.4.43) + PHP7.4 sous Linux pour construire un serveur Web ―― 1. Introduction à Apache
Créer un environnement Arch Linux sur Raspai
Installez la version ZIP Python et pip sur Windows 10
Source compile Apache2.4 (httpd 2.4.43) + PHP7.4 sous Linux pour construire un serveur Web --2 introduction PHP
Étapes pour créer PyTorch 1.5 pour CUDA 10.2 sous Windows
Créez des serveurs sur Linux et des réseaux locaux avec Raspberry Pi NextCloud et le partage de bureau
Installez procs, un outil alternatif pour ps, sur Linux (également disponible sur Mac et Windows)