UE4发布LinuxServer

这篇具有很好参考价值的文章主要介绍了UE4发布LinuxServer。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

UE4发布LinuxServer


:::tip 情景内容
  1. 需要开发专用服务器
  2. 需要将Server发到云端Linux系统主机
  3. 需要关闭SSH,服务一直启用
  4. 需要使用UE4

:::

1. Visual Studio 2019

1.1 下载 Visual Studio

:::warning

  • UE4编译源码可以使用VS2022,但就此博客发布时间,需要修改配置文件才能正常编译,而2017版本太老了;
  • 后续的C++编写在选用Rider For UnrealEpic商城的二进制版本UE4;
  • 项目写完后,用源码版UE4打包发布;
  • UE5的试过了,很麻烦,问题很多,想想自己是写代码,何必执着于UE5,于是就释然了
  • 电脑安装源码引擎的硬盘空间至少要有200GB
  • 内存至少16GB,最好去网上查下扩展虚拟内存,自动托管到其他磁盘空间较大的磁盘,最好是固态硬盘
  • 编译源码引擎时,确保关闭无关电脑后台,除非报错,否则不操作电脑做其他事,防止虚拟内存不足

:::

  1. 微软只在Visual Stuido主页提供最新版本下载,需要单独去下载 Visual Studio 2019
  2. 下载社区版的就可以了
1.2 配置 Visual Studio
  • 安装完成后,会进入Visual Studio Installer
  • 已安装内可以看见Visual Studio 2019的安装程序
  • 点击修改
  • 工作负荷内找到游戏,勾选使用C++的游戏开发
  • 此时在右边的安装详细信息内的使用C++的游戏开发的可选项内确保勾选:
    • C++分析工具
    • C++ AddressSanitizer
    • 最新的Window 10 SDK
    • IntelliCode
    • Unreal Engine 安装程序
  • 单个组件内:
    • 默认勾选的C# 和 Visual Basic Roslyn 编译器
    • 搜索勾选MSBuild
  • 最后检查一下是否勾选了最新的Net Framework SDK,该博客勾选的是Net Framework 4.8 SDK
  • 下载安装,安装位置可自定义

:::warning

安装时出现共享组件、工具和SDK的路径不能修改,是因为此前可能已经安装过Visual Studio,需要修改注册表解决问题

解决步骤:

  1. win + r
  2. regedit
  3. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\Setup删除SharedInstallationPath
  4. 重启Visual Studio Installer

:::

1.3 修改解决方案样式

:::tip 可选步骤

  1. 菜单栏内找到工具
  2. 工具->自定义->命令->工具栏->标准->解决方案配置->修改所选内容
  3. 更改宽度:例如200
  4. 若要在生成项目时显示输出窗口,请在选项对话框->项目和解决方案>常规页上,选择在生成开始时显示输出窗口

:::

1.4 管理员模式启动

:::tip 可能重要

  1. VS安装目录内:\Common7\IDE\devenv.exe
  2. 右键->兼容性疑难解答->疑难解答程序->勾选改程序需要附加权限->测试后下一步->保存设置

:::

2. 交叉编译器

:::danger

下载交叉编译器,千万别去官方中文虚幻文档,里面给的交叉编译工具链接版本是错的,应该默认进入官方英文的文档网站内下载

博客使用的是UE4.27.2,下载文档内提供的链接,并确保是-v19的版本,如果不是就进错网站了,正确的网站:UE4.27.2 交叉编译

:::

2.1 安装交叉编译

直接默认安装即可,也可以选择安装路径

cmd验证:%LINUX_MULTIARCH_ROOT%x86_64-unknown-linux-gnu\bin\clang++ -v

无效需手动配置环境变量

2.2 配置环境变量
  1. 进入系统环境变量
  2. 添加:LINUX_MULTIARCH_ROOT
  3. 路径:安装目录\v19_clang-11.0.1-centos7\x86_64-unknown-linux-gnu\bin

:::warning

交叉编译器安装和配置完成后,需要重启电脑

:::

3. 源码UnrealEngine

:::tip 省略步骤

github账号

加入Epic组织

选择UE4.27.2 Release下载

:::

3.1 配置Setup.bat

Setup.bat配置表:

Usage:
   GitDependencies [options]

Options:
   --all                         Sync all folders
   --include=<X>                 Include binaries in folders called <X>
   --exclude=<X>                 Exclude binaries in folders called <X>
   --prompt                      Prompt before overwriting modified files
   --force                       Always overwrite modified files
   --root=<PATH>                 Set the repository directory to be sync
   --threads=<N>                 Use N threads when downloading new files
   --dry-run                     Print a list of outdated files and exit
   --max-retries                 Override maximum number of retries per file
   --proxy=<user:password@url>   Sets the HTTP proxy address and credentials
   --cache=<PATH>                Specifies a custom path for the download cache
   --cache-size-multiplier=<N>   Cache size as multiplier of current download
   --cache-days=<N>              Number of days to keep entries in the cache
   --no-cache                    Disable caching of downloaded files

Detected settings:
   Excluded folders: Mac, Android, Linux
   Proxy server: none
   Download cache: disabled

Default arguments can be set through the UE4_GITDEPS_ARGS environment variable.
Installing prerequisites...

该博客的配置:(截取的一段,只有**set PROMPT_ARGUMENT=**需要修改)

set PROMPT_ARGUMENT=
for %%P in (%*) do if /I "%%P" == "--prompt" goto no_prompt_argument
for %%P in (%*) do if /I "%%P" == "--force" goto no_prompt_argument
set PROMPT_ARGUMENT=--prompt --threads=20 --cache=E:\UrealEngineSource\UE4.27.2\Cache
:no_prompt_argument
--threads=20 # 加快下载速度,不宜过高
--cache # 将下载的源码文件单独保存到指定位置,方便传给其他人和玩坏了,不用全删了重新下载了
--exclude # 排除不想要的模块

–exclude可选参数:

平台参数:Win32, Win64, osx32,osx64, Linux, Android, IOS, HTML5
VS版本参数:VS2012,VS2013,VS2015
尽量别排除VS版本的参数,平台参数可以排除不要的,该博客默认不加入 --exclude,全要了
3.2 生成UE4.sln文件

上面配置好Setup.bat文件后:

  • 双击运行Setup.bat
  • 双击运行GenerateProjectFiles.bat
3.3 编译源码编辑器

:::warning

  1. 先编译源码 编辑器
  2. 网上有的教程说的很乱,这里就编译Development Editor即可
  3. 注意:
    • 如果是先完成过了源码引擎的编译,后下载交叉编译,需要按照博客[2. 交叉编译器](#2. 交叉编译器)的内容完成检查步骤
    • 再进行博客3.2 生成UE4.sln文件的步骤,再接着往下继续看,并完成下面的全部步骤

:::

双击UE4.sin文件,根据上面的VS2019配置,此时默认管理员模式

在解决方案中依次选择:

  • Development Editor
  • Win64
  • 选中侧边栏的UE4右键->设为启动项
  • 右键UE4选择生成,注意:不希望看见WarningError,如果有请深入排查问题,然后右键UE4选择重新生成

上面的步骤完成后,不关闭VS2019,建议进行下一步:

  • 依次再重新生成AutomationTool、UnrealBuildTool、UnrealFrontend
  • 如果全部没WarningError,就算编译完成了
3.4 创建快捷方式

网上有的教程真的傻,非得打开UE4.slnVS2019里面启动源码虚幻引擎

其实可以进如源码引擎目录:\Engine\Binaries\Win64找到UE4Editor.exe

直接双击启动,或者创建快捷方式,放到方便使用的地方启动,和正常的Epic商城引擎没什么两样

:::warning

源码引擎编译完成后,先打开引擎看看打包功能是否出现⚠️标志

如果有,大概率是VS2019交叉编译器没有配置好,缺失SDK,需要重新生成

如果没有,再往后继续看

:::

4. 打包测试项目

4.1 创建测试项目
  1. 打开UE4,是不是源码引擎无所谓,真的
  2. 新建一个C++、第三人称、无初学者内容包、无光追的项目Test
4.2 修改测试项目
  1. 进入ThirdPersonBP找到Map
  2. 依次创建两个新LevelMap_Translation用来服务器过渡用,Map_Start这是游戏客户端默认打开的地图,已经存在的模板地图是客户端玩家进入的服务器地图
  3. 同时创建一个User Widget,随便给个按钮,实现按钮点击事件Open LevelLevel Name参数是:你的云服务器公网IP:7777,后面会说云主机的配置,也可以直接跳到博客5. 云主机防火墙配置,先拿到公网IP
  4. 打开Map_Start,打开关卡蓝图
  5. Begin Play实现:Create WidgetAdd To ViewportGetPlayerController->SetShowMouse->ture
4.3 设置测试项目
  • 打开项目设置:
    • 全局GameMode可以设为none,默认不设也许,完全不影响测试结果
    • 编辑器初始地图:无所谓
    • 游戏默认地图:Map_Server
    • 过渡地图:Map_Translation
    • 服务器地图:第三人称的模板默认地图
  • 在项目设置,打包中搜索list of maps to include in a packaged build:
    • 添加进上面的三个地图
4.4 修改 build.cs

:::warning

注意:测试项目创建用的是不是源码引擎不重要,后面的[4.5 配置打包程序](#4.5 配置打包程序)要用源码引擎打开,具体后面会写

接下来会编译至少两次项目C++源码,假设最终打包结果为:一个Linux Server,一个Windows Client

需要先打开项目文件的**.sln**,解决方案依次是分别编译一下两种配置:

Linux Server包:Development ServerLinux

Windows Client包:DevelopmentWin64,如果Windows Client想打包成发行版,就选择ShippingWin64,该博客选择Development

如果报错,例如:

  1. 交叉编译比需求的版本老了,那就是交叉编译器装错了,顺便查查系统环境变量,再照着博客3.2 生成UE4.sln文件重来
  2. 缺失对应平台的SDK,去博客的[1.2 配置 Visual Studio](#1.2 配置 Visual Studio)重来
  3. 其他的自行上网查询

:::

上面的是警告,需要注意看需求,选择合适解决方案的配置

首先还算要打开项目目录下的**.sln**文件:

  1. 找到项目目录中的项目名Editor.Target.cs文件

  2. 直接复制这个文件,在同级目录下,再重命名为:项目名Server.Target.cs,打开

  3. 修改内容为:(博客的配置)

    // Fill out your copyright notice in the Description page of Project Settings.
    
    using UnrealBuildTool;
    using System.Collections.Generic;
    
    public class Test01ServerTarget : TargetRules
    {
    	public Test01ServerTarget(TargetInfo Target) : base(Target)
    	{
    		Type = TargetType.Server;
    		DefaultBuildSettings = BuildSettingsVersion.V2;
    
    		ExtraModuleNames.AddRange( new string[] { "Test01" } );
    	}
    }
    
  4. 分别是public class Test01ServerTargetpublic Test01ServerTarget(TargetInfo Target)Type = TargetType.Server

修改完成后,再依照上面的Warning内容进行编译项目文件

4.5 配置打包程序

首先找到项目目录下的**.uproject文件,右键Select Unreal Engine Version**,选择Soucre build开头的UE4源码引擎

生成一段时间后,双击**.uproject**文件打开源码引擎

配置打包程序:(目的是一次性同时打包出 LinuxServer和windowsClient两个包)

  1. 在引擎主界面的顶部菜单栏中找到窗口->项目启动程序
  2. 添加自定义启动描述文件
  3. 烘培中选择常规,勾选LinuxServerWindowsNoEditor(也可以是WindowsClient)
  4. 烘培语言:随意,一般默认选en
  5. :选择本地打包存储,修改自己的本地目录路径
  6. 部署:选择不部署 (注意:很重要,不然后面打包会卡在Launching UAT)
  7. 返回

点击启动此描述文件,就可以打包了

5. 云主机/ECS

5.1 云服务配置

:::tip 云主机/ECS/轻量应用服务器

随便哪家的云服务都行,系统最好安装Centos7root密码随你,重要的是防火墙的配置:

  1. 添加TCP,端口:7777
  2. 添加UDP,端口:7777

:::

5.2 上传和运行Server

:::warning

博客省略了将文件上传到远端服务器的过程,反正把LinuxServer包压缩**.zip**格式比较简单操作,容易理解

上传的路径最好是普通用户,好像不允许root用户执行,下面会介绍新建一个普通用户unreal,将压缩包上传到unreal家目录,也就是unreal@hostname ~

:::

  1. 先创建一个普通用户

    useradd unreal
    passwd unreal // 输入两次相同的秘密
    cd /home/unreal
    
  2. 把压缩文件上传的当前目录

  3. 安装解压程序

    yum install unzip
    
  4. 解压压缩包

    unzip 压缩包
    
  5. 通过root设置执行权限

    chmod +x 项目名称Server.sh
    
  6. 切换到普通用户unreal

    su unreal
    
  7. 执行

    ./项目名称Server.sh -log
    
  8. 在本地端,打开WindowsNoEditor包的程序进行测试

注意:在Windows本地段关闭远程连接云服务的SSH,正在运行的Server服务会停止

解决方案:nohupscreen

博客采用最简单的nohup

nohup ./项目名称Server.sh -log &

如果想终止这个服务:文章来源地址https://www.toymoban.com/news/detail-437439.html

su root
ps aux
// 找到 ./项目名称Server.sh -log 这个命令的进程,记住它的pid
kill pid
unzip 压缩包
  1. 通过root设置执行权限

    chmod +x 项目名称Server.sh
    
  2. 切换到普通用户unreal

    su unreal
    
  3. 执行

    ./项目名称Server.sh -log
    
  4. 在本地端,打开WindowsNoEditor包的程序进行测试

注意:在Windows本地段关闭远程连接云服务的SSH,正在运行的Server服务会停止

解决方案:nohupscreen

博客采用最简单的nohup

nohup ./项目名称Server.sh -log &

如果想终止这个服务:

su root
ps aux
// 找到 ./项目名称Server.sh -log 这个命令的进程,记住它的pid
kill pid

到了这里,关于UE4发布LinuxServer的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【UE4】UE4蓝图 文本自动换行

    【UE4】UE4蓝图 文本自动换行

    该方法将字符串分割成同等长度的数组及换行后字符串 使用示例 结果 获得字符串 蓝图代码:复制以下内容并直接粘贴到蓝图中 宏代码 使用示例 结果 获得数组 代码:复制以下内容并直接粘贴到蓝图中 宏代码 同时输出两种结果 同时输出函数蓝图 宏蓝图 内容详情: 使用示例

    2024年02月16日
    浏览(11)
  • Linux :: 内容过滤指令【3】:grep 指令【详解】:在指定文件中过滤搜索信息、(模糊)查找包含指定字符串的内容!(如:系统故障时,查看操作日志信息等情景)

    前言:本篇是 Linux 基本操作篇章的内容! 笔者使用的环境是基于腾讯云服务器:CentOS 7.6 64bit。 学习集: C++ 入门到入土!!!学习合集 Linux 从命令到网络再到内核!学习合集 注:find 指令常与 grep 指令在面试中被提及,需让你回答异同! 目录索引: 1. 基本语法、功能及使

    2024年02月09日
    浏览(17)
  • UE4/UE5 动画控制

    UE4/UE5 动画控制

    工程下载 ​ ​​​​​​​​​​​​​https://mbd.pub/o/bread/ZJ2cm5pu   蓝图控制sequence播放/倒播动画: 设置开启鼠标指针,开启鼠标事件 在场景中进行过场动画制作 设置控制事件

    2024年02月09日
    浏览(11)
  • 【虚幻引擎】UE4/UE5 材质

    【虚幻引擎】UE4/UE5 材质

      基础颜色(BaseColor) :材质本身的颜色,例如绿色蓝色等 金属度(Metallic) :金属度,材质是否含有金属光泽 粗糙度(Roughness) :粗糙或者平滑度,物体表面的粗糙程度 自发光(EmissiveColor) :物体本身是否发光 透明度(Opactity) :物体表面是否透明,适用于 半透明(Translucent)、

    2024年02月02日
    浏览(44)
  • 【虚幻引擎】UE4/UE5插件

    【虚幻引擎】UE4/UE5插件

    Blank:空白插件,可以从头开始自己定义想要的插件风格和内容,用此模板创建的插件不会有注册或者菜单输入。 BlueprintLibrary:创建一个含有蓝图函数库的插件,此模板函数都是静态全局函数,可以在蓝图中直接调用。 ContentOnly:创建一个只包含内容的空白文件 Editor Toolba

    2024年02月05日
    浏览(44)
  • UE4 UE5 一直面向屏幕

    UE4 UE5 一直面向屏幕

                        一直面相屏幕,方法很简单 新建一个蓝图,如下添加组件: 蓝图如下: Rotation Actor :需要跟随镜头旋转的物体 Update:一个timeline(替代event tick 只是为了循环) Timeline: 蓝图直接可以复制:网址

    2024年02月04日
    浏览(12)
  • 【虚幻引擎UE】UE4/UE5 新人科普向

    【虚幻引擎UE】UE4/UE5 新人科普向

    Unreal Engine是当前最为流行的游戏引擎之一,具有丰富的游戏开发功能和强大的游戏引擎渲染能力。 UE5官方文档:UE5官方文档非常详细,介绍了UE5的各个功能和应用,适合入门学习和深入探究。链接:https://docs.unrealengine.com/5.1/zh-CN/ UE5中文社区:该社区聚集了大量的UE5开发者,

    2024年02月09日
    浏览(56)
  • 幽灵行者ue4崩溃怎么解决?幽灵行者ue4崩溃原因深度解读及全套解决方案

    幽灵行者ue4崩溃怎么解决?幽灵行者ue4崩溃原因深度解读及全套解决方案

    UE4崩溃通常是由于多种原因引起的,如虚幻引擎版本过旧、GPU驱动程序过时或损坏、注册表设置错误等。那么幽灵行者ue4崩溃怎么解决呢?下面一起来看看吧! 一、原因 1. 硬件兼容性问题 •显卡驱动不兼容:过时或错误的显卡驱动可能导致与UE4引擎的交互出现问题,引发崩

    2024年04月26日
    浏览(95)
  • UE4/5:通过Blender制作BlendShape导入【UE4/5曲线、变形目标,blender形态键】

    UE4/5:通过Blender制作BlendShape导入【UE4/5曲线、变形目标,blender形态键】

    UE4/5里面,我们经常可以在一些骨骼模型上面看到相关的曲线,如Metahuman里面就是通过这个曲线来改变人物的脸部表情。 而这里笔者将教导如何去制作这种曲线。 这种曲线都是存在于骨骼模型上的,所以我们要么直接制作骨骼模型导入ue,要么做一个普通的模型,然后导入

    2024年02月03日
    浏览(154)
  • ue5,ue4(虚幻5)安卓触摸

    ue5,ue4(虚幻5)安卓触摸

    这个是单方向的,如果要用双方向的,就是 x和y同时运用的话建议用向量2d(变量),把它分割成x和y就可以了,我门平时在网上见到的触摸都是:按下到连续,我这个方法是按下-连续-停止,记住,y的变量要是负数,还有就是,灵敏度调大的时候,屏幕会跳动,由于x和y的屏

    2024年02月11日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包