本页面为虚幻用户介绍了如何从 虚幻引擎(UE) 的GitHub仓库下载源代码,以及如何利用源代码快速上手。
如要访问https://github.com/EpicGames/UnrealEngine上的仓库,你必须满足以下条件:
-
已经是虚幻引擎的订阅用户。
-
已经拥有GitHub账号。
-
已经根据GitHub上的UE4一文中的所述步骤,将GitHub账号与你的虚幻引擎账号关联。
你 无需 下载源代码就能使用虚幻引擎4。如果你想通过下载可执行文件的方式来安装虚幻引擎,请参阅安装虚幻引擎一文,了解获取虚幻的方式。不过,你会发现掌握源代码会为你和项目带来宝贵的信息。例如:
-
你将获得Epic工程师每天(实际上是每一分钟)完成的最新功能和漏洞修复。
-
如果你发现了一个尚未被我们修复,但对你的项目来说影响很大的漏洞,你可以自己在源代码中进行修复并重新生成二进制文件,以便项目能够正常运行。
-
通过将你的修复工作提交给Epic,你可以改进引擎并为整个虚幻社区提供帮助。
如果你是虚幻引擎的授权用户,你可以通过我们的Perforce服务器访问源代码,而无需通过GitHub的公开仓库访问代码。
源代码分支
你应该已经注意到,我们已将UE5源代码发布在若干个分支中。
名称中包含dev、staging和test的分支通常给Epic内部流程使用,对于终端用户几乎没有用处。当我们对新版本进行稳定性更新或者发布补丁时,其它临时的分支也会时不时地出现。
发布分支
发布(Release) 分支会一直和当前的官方版本保持一致。它们经过我们QA团队全面的测试,所以对于学习虚幻引擎和制作自己的项目来说是一个很好的起始点。我们花费大量精力来确保每次发布的版本都稳定可靠,并且计划每隔几个月发布新的版本。
主分支
大部分活跃的UE5开发工作在 ue5-main 分支中进行。该分支是引擎最新的发布版本,可能存在一些bug,或者甚至无法正常编译。开发者可用用它来测试新功能或者与我们一起进行锁步开发。
如果你要使用该分支,请注意它会比当前官方版本和下一个要发布的版本都要提前。所以你在ue5-main分支中创建的内容和代码可能与当前官方发布的版本并不兼容,需要等到我们之后从ue5-main中创建新分支用于官方发布之后。
在本地机器上设置 Perforce 服务器
为了避免潜在的,与我们工具的集成问题,如UnrealGameSync,我们建议你运行 不分大小写 的 Perforce 服务器。
运行 Perforce 服务器又两种方式,P4D 和 P4S。P4D 运行时是一个命令行命令,因此它通常被用来做维护工作时使用。P4S 是一个和 P4D 相同功能的服务,这能让服务器程序在后台运行。 当安装 Perforce 服务器工具后,P4S 通常都会被安装并在后台启动。
有时候服务并没有自动启动。要先Windows系统中启动服务,首先找到 Control Panel -> Administrative Tools ->Services applet。 然后在列表中找到 Perforce Service 并启动它:
一旦服务运行后,可以通过 P4Admin 连接到服务器上。这是该服务器上第一个链接,然后就可以在初始连接对话框中创建新用户了。
将服务器的连接信息填入,并点击 OK。一旦在 P4Admin 中连接道服务器后,就可以很容易的创建新的 Depot,用户,用户组。 然后就能在 P4V 或者虚幻编辑器中使用新创建的认证信息来连接服务器。
阅读 P4Admin 文档 来获取进一步关于 Perforce 使用的信息。
P4 Typemap
在向新的 Depot 添加文件前,应当先设置 P4 Typemap 来让 Perforce 了解如何对待虚幻文件类型。typemap 的设置能够在 Perforce 中控制文件的只读和可写的形式。 然后要做这件事情,需要先在命令行下设置 P4 的环境变量。
p4 set P4USER=your.username
p4 set P4PORT=localhost:1666
将上面相应的部分替换为你的用户名和连接地址,并用下面的命令打开 typemap 设置。
p4 -P YourPassword typemap
然后将会看到一个文本窗口,这就是当前服务器的 typemap。下面是我们以前用过的 typemap 示例:
# Perforce File Type Mapping Specifications.
#
# TypeMap: a list of filetype mappings; one per line.
# Each line has two elements:
#
# Filetype: The filetype to use on 'p4 add'.
#
# Path: File pattern which will use this filetype.
#
# See 'p4 help typemap' for more information.
TypeMap:
binary+w //depot/....exe
binary+w //depot/....dll
binary+w //depot/....lib
binary+w //depot/....app
binary+w //depot/....dylib
binary+w //depot/....stub
binary+w //depot/....ipa
binary //depot/....bmp
text //depot/....ini
text //depot/....config
text //depot/....cpp
text //depot/....h
text //depot/....c
text //depot/....cs
text //depot/....m
text //depot/....mm
text //depot/....py
binary+l //depot/....uasset
binary+l //depot/....umap
binary+l //depot/....upk
binary+l //depot/....udk
binary+l //depot/....ubulk
完成编辑后,点击键盘上的 Ctrl+S 保存并退出。命令行应该会提示 Typemap saved。
局域网的服务器
可以在本地局域网中设置一个服务器便于团队成员协同工作。只需要遵循上述的过程搭建服务并在客户端使用该服务器的连接信息即可。
云服务商
有一些云服务商提供了 Perforce 的云端架设服务以便于远程协作。可以先快速浏览以下搜索引擎中的 Perforce Hosting 结果。 每个主机服务商都有些不同,但总的来说都是会提供一组验证信息供你连接。查看下面的 从虚幻编辑器中连接 的部分来了解连接到 Perforce 云服务的信息。
设置本地的 Workspace
要在 Perforce 管理下的文件进行工作,需要在本机设置一个 Workspace 这样 Perforce 才能管理这些文件。 可以在 P4V 界面的主菜单中,View 菜单下的打开 Workspace 分页然后便能创建 Workspace 了:
要创建一个新的 Workspace,右键点击 Workspace 窗口空白处,选择 新建 Workspace 选项。然后输入要创建的 Workspace 的名称,以及你希望文件存储在本机的位置目录,即 Workspace 的根目录。
一旦有了服务器以及一个本地的 workspace 设定,便可以开始添加文件了。目前这必须在编辑器外,通过 P4V 来完成。 如果 workspace 中已经有了其他成员设置过的文件,则可以先跳过这一步。在创建一个新项目时,可以选择是 C++ 项目还是纯蓝图项目。 如果选择了 C++ 项目,则可以在项目目录中可以看到有 Source/ 目录。下面这些项目目录初始就应当被添加到版本管理中:
被高亮为 绿色 的目录和文件应该被添加到项目的 Depot 中。Binaries 目录高亮为 黄色,可以选择是否要加入到版本管理中,这取决于团队自生的工作需要。 如果团队中每个人都准备自己来编译引擎和游戏的话,那么 Binaries 则无需加入到版本管理中,但如果团队中有人只是想获取一个版本就能直接在编辑器中工作的话,则需要把 Binaries 添加上去。 请留意先前的 server typemap 的设置,能够让程序员们直接重新编译版本而不受在默认的 Perforce 管理配置下这些文件只读属性的限制。
向 Perforce 添加文件
向 Perforce 添加文件可以通过以下几个步骤完成。
-
要添加文件/目录到 Perforce的话,先在 P4V 中选择这些文件/目录,然后点击右键并选择 标记为添加 Mark For Add 选项。
-
这将会在默认的 changelist 中添加这些文件。所有添加的文件都可以在待上传 Changelist 分页中查看到:
-
要提交文件的话,首先在 changelist 上 点击右键并选择 Submit。然后就可以填写上传的描述信息,并点击 Submit 按钮完成提交。
如果要在一个其他人已经开始的项目中工作,可以直接在 P4V 中从 Perforce 上获取最新版本。 只需要在 P4V 的 Depot 视图中找到相应的项目目录,然后再该项目上 点击右键 并选择 获取最新版本。 然后将会根据当前 workspace 的根目录设置来获取该项目的所有文件到本地硬盘中。
从虚幻编辑器中连接
可以在编辑器中直接连接 Perforce 服务器,只需点击 工具栏 的 版本控制 按钮:
打开后,选择 Perforce 作为软件版本管理软件的提供商,并输入登录验证信息。 如果已经设置过 workspace 的话(当前项目正在该 Workspace 内),登录信息将会自动填上。
对于有些服务器,也包括很多云端的服务,可能会需要手动输入主机和密码信息才能在编辑器中访问 Depot。可以在 Perforce 的登录对话框中打开高级选项即能看到:

下载源代码
请按照如下说明下载虚幻引擎的源代码。
请确保你在Windows桌面系统中安装了Visual Studio 2019或更高版本的VS,然后再继续操作。
-
安装Windows版GitHub,然后分叉并克隆我们的仓库。
假如你想从命令行使用Git,请参阅设置Git以及分叉仓库等文档。
如果你不想用Git,你可以通过右侧的 '下载ZIP'(Download ZIP)按钮获取源代码。Windows内置的解压工具会将从网上下载的zip文件内容标记为不安全和不宜执行,因此请右键单击zip文件,并选择 '属性...' 和 '解锁',然后再进行解压。第三方zip工具通常不需要进行此操作。
-
安装 Visual Studio 2019。
所有桌面版Visual Studio 2019都可以构建UE5,包括Visual Studio Community 2017,这是面向小型团队和个人开发者免费提供的工具。 请确保作在安装中添加C++支持,这在默认情况下是禁用的。
-
在资源管理器中打开你的源代码文件夹,并运行
Setup.bat。这样将下载引擎的二进制内容和先决程序,并设置虚幻文件关联。 在Windows 8上,可能会显示SmartScreen警告。请依次单击 更多信息 和 Run anyway 以继续。
引擎二进制文件的完整下载包需要一些时间才能完成下载。 后续检出只需要下载增量部分,速度将会大幅提高。
-
运行 GenerateProjectFiles.bat 来为引擎创建项目文件。这个过程应该不超过一分钟即可完成。
-
双击
UE5.sln文件以将项目加载到Visual Studio中。将你的解决方案配置设置为 开发编辑器,将解决方案平台设置为 Win64,然后右键单击 UE 目标并选择 构建。大概需要10-40分钟完成编译,具体取决于系统规格。 -
编译完成后,可以将启动项目设置为 UE5 并按 F5 进行调试,以便从Visual Studio加载编辑器。
-
安装一个Git客户端,例如Mac版GitHub,然后Fork并复制仓库。
如需在终端使用Git,请参阅文章设置Git和Fork仓库。 若不想使用Git,请点击右边的 '下载ZIP(Download ZIP)' 即可直接获得源代码。
-
安装最新版本的Xcode。
-
在访达(Finder)中打开源文件夹,双击 Setup.command 下载引擎的二进制内容。之后可以关闭终端窗口。
如果将源代码以.zip格式下载,则可能会弹出警告,称其来自无法识别的开发者(因为GitHub上的.zip文件未进行数字签名)。 解决方法是右键点击Setup.command、选择Open,然后点击 打开(Open) 按钮。
-
在同一个文件夹中双击 GenerateProjectFiles.command。这一步操作应不会长于一分钟时间。
-
双击 UE5.xcworkspace 文件将项目加载到Xcode中。在标题栏中选择 My Mac 目标的 ShaderCompileWorker,然后选择 '产品(Product) > 编译(Build)' 菜单项。Xcode完成编译后,为 My Mac 目标和 UE5 执行相同操作。编译时间可能在15到40分钟之间,具体取决于你的系统配置。
-
编译完成后,选择 '产品(Product) > 运行(Run)' 菜单项目来加载编辑器。
我们的开发人员和支持团队目前使用最新版本的Ubuntu;因此,我们可能无法对其他Linux发布版本(包括其他版本的Ubuntu)提供支持。
-
安装visual Git客户端并Fork仓库。 如果你倾向于不使用Git,请可使用右侧的 下载ZIP(Download ZIP)按钮来获取zip文件格式的源代码。
-
打开源代码文件夹,并运行 Setup.sh 以下载引擎的二进制内容。
-
交叉编译和原生构建均受支持。
如果你使用Windows进行开发(我们同时计划支持Mac开发),并想要针对Linux平台打包游戏,而且希望尽量减少问题,则 交叉编译(Cross-compiling) 是较为合适的选择,这要求你安装交叉编译工具链(请参阅wiki上的Linux交叉编译页面)。
关于 原生编译(Native compilation) 请参见单独的README文件。
本页面为被许可用户展示了如何从GitHub上的源代码仓库下载并构建虚幻引擎。如果你想下载二进制版本的虚幻引擎,请阅读我们的安装虚幻引擎文档了解如何获取虚幻。
其它目标平台
-
如果你安装了Android NDK,针对 Android 的支持会由安装脚本自动下载。参考Android快速入门指南。
-
需要一台Mac才能进行针对 iOS 的开发。可以在iOS快速入门指南中找到相关教程。
-
要针对游戏主机或者其它限制访问的平台进行开发,比如索尼PlayStation、微软Xbox以及任天堂Switch,必须要在这些第三方注册开发者账户。
取决于不同平台, 虚幻开发者网络支持站点 中可能找到相关的文档和指南,或者可以从 虚幻引擎论坛 中针对你的平台的部分下载归档。
如果你无法访问这些资源,先在第三方注册一个开发者账户。然后联系你的Epic Games账号管理员,如果没有的话,填写并提交虚幻引擎的 游戏主机开发请求 表格。Epic会联系你,并发来正式的可以数字签名的协议。通过之后,你将会收到一份教程来引导你访问源代码和二进制文件,以及针对你的平台的其它教程。
许可和贡献
你对GitHub上的Unreal Engine的访问和使用受虚幻引擎最终用户许可协议的约束。如果你不同意这些条款(我们会不时对它们加以修订),你将不会被获准访问或使用虚幻引擎。
我们欢迎你通过GitHub上的拉取请求,为虚幻引擎的开发做出贡献。我们大部分的积极开发都在 主 分支中进行,所以我们更喜欢在那里接受拉取请求(对于新功能而言尤其如此)。我们尽力确保所有新代码都遵守Epic编码标准。所有贡献均受EULA条款的约束。
后续步骤
现在你已经下载并设置了虚幻引擎,你可以随时从源代码构建引擎。
注意事项
当你首次编译源代码并启动编辑器时,加载时间可能会比较长。 引擎会针对你的平台优化内容并将信息保存为 派生数据缓存(derived data cache),这种优化应该只会进行一次。
你为虚幻引擎代码设置的Fork分支会与你的GitHub账号权限关联。 如果你取消了订阅或切换了GitHub用户名,则需要重新创建Fork分支并从本地副本上传改动内容。