准备引擎开发环境

下载代码

Unreal Engine代码库在Github上,要下载Github上的源代码,需要具有Github账号和虚幻引擎的订阅账号,并且将二者相关联。步骤如下。

  1. 登陆www.github.com

  2. 使用虚幻引擎订阅账号登陆unrealengine.com

  3. 点击CONNECTIONS菜单-> ACCOUNTS->GITHUB

在这里插入图片描述

  1. 一路按照提示操作,最终会收到一个Github的通知邮件,邀请参加EpicGames Organization。点击链接,就可以看到源码页面。详情参见附录2

  2. 虚幻引擎的代码地址在https://github.com/EpicGames/UnrealEngine,可以使用 Github Desktop工具克隆下来。以Release分支为例,仓库大小约为12G,分支文件约为1.39G,文件个数约12万左右。若网络状况不佳,可能需要尝试几次才能下载下来。

安装开发工具

  1. 虚幻引擎可以使用Visual Studio 2017,Visual Studio 2019。可以使用社区版,安装时注意需要勾选以下几个选项:

Game Development with C++

Unreal Engine Installer

Nuget Package Manager

  1. 点击Setup.bat。脚本会自动去下载一些二进制文件依赖项,目前大约有4G左右

  2. 点击GenerateProjectFiles.bat文件生成项目文件。这个脚本需要去查找机器上安装的Visual Studio版本。默认会查找最新的Visual Studio版本,如果希望指定版本,可以修改Engine\Build\BatchFiles\ 路径下的两个批处理文件,指定正确的路径。

GetMSBuildPath.bat

GenerateProjectFiles.ba

说明:Visual Studio 2017还需要安装.netframwork 4.6.2,否则此步骤可能报错。

将代码提交到P4

P4ignore设置

因运行了1.2节的配置脚本后,引擎占用空间会膨胀到30GB左右,所以若全部提交到仓库里,会造成无谓的浪费。从Github Clone下来的仓库会自带一个.gitignore文件,参照这个配置文件,略作修改,即可作为P4ignore配置。

如下图右侧是P4ignore.txt需要做的对应改动:

!*/ 这一行注释掉,因为这个写法在P4中含义与git的不同

增加*.xcodeproj/ 代表忽略包含.xcodeproj字样的目录

[Dd]esktop.ini 显示展开为两行

增加.git 忽略.git 相关文件

在这里插入图片描述

将P4ignore.txt放到.gitignore所在目录,并在客户端执行P4 set P4IGNORE=P4ignore.txt后,则增加文件到P4时会自动加载P4ignore.txt文件中的忽略配置项。P4 ignores命令可以用来检查忽略配置的效果,例如:

-v 选项可以查看忽略文件展开后的效果
F:\GitHub\UnrealEngine>p4 ignores -v

#LINE 245:/Engine/Binaries/ThirdParty/USD/**

-v -i搭配可以查看一个文件为什么被忽略,或者为什么未被忽略
F:\GitHub\UnrealEngine>p4 ignores -v -i ./p4ignore.txt
f:\GitHub\UnrealEngine\p4ignore.txt not ignored by f:\GitHub\UnrealEngine\p4ignore.txt:68:!*.txt
提交文件到P4

  1. 因为文件大约有12万个,为了加速提交,可以在服务器端打开并行提交配置。

any: net.autotune = 1

any: net.parallel.max = 10

any: net.parallel.submit.threads = 5

any: net.parallel.threads = 5

P4V侧也确认允许并行提交

  1. 在P4上创建一个mainline 类型的stream用来管理引擎代码。

  2. 创建一个工作区,根目录指向第1章节里下载好的代码。
    在这里插入图片描述

在这里插入图片描述

注意:工作区选项里请勾选Allwrite,以便后续从Github更新内容,否则P4会将本地的文件置为只读,后续更新依赖项时可能会报错。

在这里插入图片描述

  1. 在p4v里,或者使用命令行,将引擎代码标记为add,在进行这一步之前,请确保参照2.1节内容,正确配置了P4ignore,否则会加入很多不需要的文件。

在引擎代码根目录下执行P4 add命令,为了加入名字带有特殊符号的文件,需要添加-f选项。

p4 add -f -c default ./…
在P4V里点击add增加文件时,如遇提示文件被忽略,或者文件名带有特殊符号,点击确认继续添加即可。

  1. 点击submit按钮或者在命令行上执行P4 submit -d “descripton”, 即可提交成功。默认使用5线程提交,若服务器性能较好,网络带宽充裕,也可以启用更多线程提交。

使用引擎代码

  1. 分支策略

为了方便后续更新引擎代码到P4,不直接在原始分支上进行修改,可以新创建一个分支用于代码修改,例如:新建一个ue_edited分支用于代码开发。

在这里插入图片描述

其他用户下载代码时,无需再次从Github上下载巨大的repo库(超过10G),仅需直接从P4上下载ue_edited分支(约1.3G)即可。开启多线程sync后,一两分钟即可下载完成,比直接从Github下载速度有很大提高。

  1. 更新Github上的修改

在章节1.1下载Github代码的机器上,将Github上相应分支的最新修改获取(fetch或者pull)下来。确保2.1中提到到P4ignore.txt文件存在,并妥善设置了P4IGNORE。在P4V中点击“reconcile offline work…”, 或者在命令行上执行reconcile命令,可以将更新的文件自动识别出来。

p4 reconcile -f -m -n f:\GitHub\UnrealEngine\Engine…
识别之后,可以提交到P4仓库的ue分支里。

说明:提交P4后,如果本地有大量文件的修改日期发生变化,则reconcile操作不得不对所有发生变化的文件进行hash计算,这个操作可能非常耗时。所以不要在章节1.1下载Github的机器上进行分支切换等操作。

  1. 将ue分支的更新merge到ue_edited分支。

附录:

1.https://docs.unrealengine.com/4.27/zhCN/ProgrammingAndScripting/ProgrammingWithCPP/DownloadingSourceCode/
2.https://www.unrealengine.com/en-US/ue4-on-github?sessionInvalidated=true

立刻联系我们(Perforce中国授权合作伙伴、Atlassian全球白金合作伙伴【龙智】,电话:400-7755-506 邮箱: marketing@shdsd.com)了解更多关于使用Jira, Confluence, Perforce Helix Core, Helix QAC, Hansoft, Methodics, Helix ALM等产品的信息。我们将为您提供白皮书和其他资源,我们也会指导您运用Perforce系列产品来开展业务。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐