IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 如何在P4中管理Unreal Engine 代码 -> 正文阅读

[游戏开发]如何在P4中管理Unreal Engine 代码

准备引擎开发环境

下载代码

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系列产品来开展业务。

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-11-30 15:56:52  更:2021-11-30 15:57:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/16 8:03:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码