一、使用UFE打包

UFEUnreal Frontend:虚幻前端,简化加快游戏开发及测试任务的工具,它可以用来准备游戏构建,将游戏部署到设备上并进行启动

测试版本:4.18为例

注意:UE4官方文档原话是在UE4编辑器中启动UFE或者ProjectLauncher(项目启动程序),其打包发行项目的步骤都一样,但在4.18版本测试中发现,通过打开窗口->开发者工具->会话前端,进入UFE界面

UFE中更多的提供了部署、自动化测试等功能。并没有编辑项目的版本、烘焙等选项,因此我们应该打开项目启动程序(project Launcher


projectLauncher界面中


红色框1选择当前打包项目名称,红框2是发布的平台,要进行打包,选择红框3的加号进行配置,点击+号,出现如下图,1中输入打包名称,2输入对该包描述,3是配置一系列选项

 

下面对项目、版本、烘焙、包、部署这些选项详细介绍:

1、在项目选项中一般选择“任何项目”来来修补当前项目

2、版本中在“您想要编译吗”打勾,版本配置根据自己选择勾选,这里我们选的是开发(development),

如果您需要在发布过程中构建 UAT,请展开 高级设置(Advanced Settings)(可选)

这里测试时没勾

 

3、在烘焙中

 

一般右上角选择按照惯例作为烘焙方法,

在烘焙内容中,选中烘培平台的框。在本例中,为了进行 Windows 测试,我们已选中 WindowsNoEditor

烘焙语言中,选择中文就行

 

烘焙地图选择要烘焙的地图,这里我们全选

 

烘焙选项中,在发布版本/可下载内容/补丁设置中,勾选创建一个该游戏的发布版本进行发布,输入这个版本的版本号,也可在下面输入基于发行的版本

在高级设置中勾选

1)压缩内容

2)保存无版本的包

3)在单个文件中存储所有内容

4)根据自己情况在烘焙编译配置选择调试(DebugGame)、开发(Development)、发行(Shipping

 

4、在包中在你想要如何对版本打包,这里选择打包、存储在本地,并输出到目标路径


5、在部署中,设置为不部署

 

好,配置完毕,点击右上角Back返回,点击最下角刚刚编辑好的,点击右下角启动概述文件

 

自动运行,等一段时间就打包好了,去目标路径打开项目即可


注意,如果Launching UAT出错,那么在版本选项->高级设置->编译用户...打钩即可


二、打补丁包

还是打开ProjectLauncher,点击+号,重新配置,命一个新的名字

 

其他不变,基于发行的版本写上,生成补丁勾上

 

再启动一次,

 


三、打包的另一种方式:使用命令行打包

1、Compiling the client (编译客户端的命令行代码):

RunUAT BuildCookRun -project="full_project_path_and_project_name.uproject" -noP4 -platform=Win64 -clientconfig=Development -serverconfig=Development -cook -allmaps -build -stage -pak -archive -archivedirectory="Output Directory"

2Cooking the client (烘焙客户端命令行):

RunUAT BuildCookRun -project="full_project_path_and_project_name.uproject" -noP4 -platform=Win64 -clientconfig=Development -serverconfig=Development -cook -allmaps -NoCompile -stage -pak -archive -archivedirectory="Output Directory"

3Compiling the dedicated server (服务器编译命令行):

RunUAT BuildCookRun -project="full_project_path_and_project_name.uproject" -noP4 -platform=Win64 -clientconfig=Development -serverconfig=Development -cook -server -serverplatform=Win64 -noclient -build -stage -pak -archive -archivedirectory="Output Directory"

4Cooking the dedicated server (服务器烘焙命令行):

RunUAT BuildCookRun -project="full_project_path_and_project_name.uproject" -noP4 -platform=Win64 -clientconfig=Development -serverconfig=Development -cook -server -serverplatform=Win64 -noclient -NoCompile -stage -pak -archive -archivedirectory="Output Directory"

打包步骤:

打开原项目的目录,在项目根目录下创建Package.bat文件

 

编辑该文件,CALL后跟上面的命令即可。将下面的参数根据自己情况替换上面的命令行参数即可注意路径中不能有空格

注意:如果是服务器打包,需要右键.uproject文件->Switch Unreal Engine version->选择源码版本->ok,然后执行.bat文件



参数介绍:

RunUATue4安装文件夹中RunUAT路径,测试为:D:\UE_4.18\Engine\Build\BatchFiles\RunUAT.bat

BuildCookRun:一般就这样写,不变,构建烘焙并运行

"-project=full_project_path_and_project_name.uproject":该参数是项目中.uproject的路径,例如测试时为:C:\Users\Administrator\Documents\UnrealProjects\tt1\tt1.uproject

-noP4:一般就这样写,不变

-platform=Win64:在什么平台上运行

-clientconfig=Development :客户端什么模式:调试(DebugGame)、开发(Development)、还是发行(shipping

-serverconfig=Development服务端什么模式:调试(DebugGame)、开发(Development)、还是发行(shipping

-cook :烘焙,一般不变

-allmaps:烘焙的地图,这里是烘焙所有地图,如果只烘焙一部分地图,格式:-maps=Map1+Map2+Map3

-server:如果在服务器端就加这个

-serverplatform=Win64:服务器端的平台

-noclient:如果仅针对服务端加上这个

 -build:构建,一般不变

 -stage:这个不知道,一般加上

 -pak 这个应该是打包的意思

-NoCompile:不编译

-archive -archivedirectory="Output Directory"输出文件夹路径,测试为:D:\Package


测试:

编译客户端的命令行代码:

CALL D:\UE_4.18\Engine\Build\BatchFiles\RunUAT.bat BuildCookRun -project=C:\Users\Administrator\Documents\UnrealProjects\tt1\tt1.uproject -noP4 -platform=Win64 -clientconfig=Development -serverconfig=Development -cook -allmaps -build -stage -pak -archive -archivedirectory=D:\Package

烘焙客户端命令行:

CALL D:\UE_4.18\Engine\Build\BatchFiles\RunUAT.bat BuildCookRun -project=C:\Users\Administrator\Documents\UnrealProjects\tt1\tt1.uproject -noP4 -platform=Win64 -clientconfig=Development -serverconfig=Development -cook -allmaps -NoCompile -stage -pak -archive -archivedirectory=D:\Package

服务器编译命令行:

CALL C:\UE_Source_Code\UnrealEngine-4.18.3-release\Engine\Build\BatchFiles\RunUAT.bat BuildCookRun -project=C:\Users\Administrator\Documents\Unreal_Projects\DedicatedServerTest\DedicatedServerTest.uproject -noP4 -platform=Win64 -clientconfig=Development -serverconfig=Development -cook -server -serverplatform=Win64 -noclient -build -stage -pak -archive -archivedirectory=C:\Users\Administrator\Desktop\111

服务器烘焙命令行:

CALL C:\UE_Source_Code\UnrealEngine-4.18.3-release\Engine\Build\BatchFiles\RunUAT.bat BuildCookRun -project=C:\Users\Administrator\Documents\Unreal_Projects\DedicatedServerTest\DedicatedServerTest.uproject -noP4 -platform=Win64 -clientconfig=Development -serverconfig=Development -cook -server -serverplatform=Win64 -noclient -NoCompile -stage -pak -archive -archivedirectory=C:\Users\Administrator\Desktop\111


最后:在引擎中打包时候可以看到输出有这段话,也就是命令行打包的代码


放大:


和上面4条语句一样,这里多了些参数,可以在虚幻引擎中打包测试下每个参数,查看该参数的含义



、UE4搭建、部署服务器(Dedicated Server),

参考文章:https://wiki.unrealengine.com/Dedicated_Server_Guide_(Windows_%26_Linux)


打包服务器后在目录中创建一个.bat,这样写,GKGame是地图名,默认的是打开空地图会报错...independent什么的


UE4搭建、部署服务器遇到的bug:

1、在下载好源码版虚幻四4.19和vs2017后,GenerateProjectFiles会报错

Windows SDK v8.1 must be installed in order to build ths target

解决办法:安装Windows sdk 10.0也不行,必须安装8.1,

2、在新建一个项目后再vs中用development server后生成会报错,Multiple configurations specified on command line (first Test, then Dev

解决办法:项目命名有问题,不能命名成Test或test

3、在项目中source文件夹下   项目名Server.Target.cs文件中,在4.19版本中需要把第四行注释掉

using UnrealBuildTool;
using System.Collections.Generic;

//[SupportedPlatforms(UnrealPlatformClass.Server)]
public class testServerTarget : TargetRules   // Change this line as shown previously
{
       public testServerTarget(TargetInfo Target) : base(Target)  // Change this line as shown previously
       {
        Type = TargetType.Server;
        ExtraModuleNames.Add("test");    // Change this line as shown previously
       }
}

注意:最后的ExtraModuleNames.Add后面跟的是项目名,不能是其他的


参考链接:

1、官方文档:http://api.unrealengine.com/CHN/Engine/Deployment/index.html

2风蚀之月博客:https://blog.ch-wind.com/ue4-patch-release-dlc/

3DavidZ博客:http://blog.sina.com.cn/s/blog_710ea1400102ww0t.html

4、虚拟现实开发博客:http://blog.csdn.net/u013131744/article/details/56490606

5UE4社区:https://wiki.unrealengine.com/How_to_package_your_game_with_commands


Logo

这里是一个专注于游戏开发的社区,我们致力于为广大游戏爱好者提供一个良好的学习和交流平台。我们的专区包含了各大流行引擎的技术博文,涵盖了从入门到进阶的各个阶段,无论你是初学者还是资深开发者,都能在这里找到适合自己的内容。除此之外,我们还会不定期举办游戏开发相关的活动,让大家更好地交流互动。加入我们,一起探索游戏开发的奥秘吧!

更多推荐