为虚幻引擎4做贡献

介绍如何使用GitHub拉取请求机制将您对虚幻引擎源代码所做的更改提交回Epic。

Windows
MacOS
Linux

如果您已经在虚幻引擎的源代码中进行了修复或增加了新功能,您可以将您的更改贡献给Epic Games,并将它们整合到虚幻引擎的下一个版本中。

多年来,我们已经收到了来自社区的成千上万条贡献。加入的好处有很多,例如:

  • 将修复程序和功能合并到源代码主元库中可以便于您获取对虚幻引擎4(UE4)做出的最新更改。您无需持续地将本地更改与更新的引擎源代码合并,也不存在自定义修复程序可能无法按预期根据最新的引擎代码进行编译或工作的风险。

  • 改进虚幻引擎和编辑工具可以帮助更大范围的虚幻社区,这使您的知识和专业技能更有价值。

  • 如果我们接受您的更改,我们还将在版本说明中将您作为贡献者列出您的姓名和GitHub句柄。

我们使用GitHub拉取请求机制来管理、追踪和评估提交。本页将告诉您需要了解的一切内容。

制定提交计划

在GitHub中创建一个拉取请求很简单,但创建一个我们可以轻松评估,并快速集成到我们自己元库中的拉取请求需要一点预先考虑。

如果您想要增加您的提交被接受的机会,并避免我们要求您做任何额外的工作或更改,请记住以下建议。 

  • 突出重点。理想情况下,每个拉取请求都应该修复一个特定的bug,或者添加一项独立的功能。您的拉取请求可能涉及对多个文件的更改,也可能由任意数量的提交组成,但所有这些更改都应该是为了实现单个目标。
    如果您想要同时贡献多个内容,请创建多个拉取请求。对我们来说,验证和引入多个单独的请求比将一个大型提交分解为几个单独的组成部分更容易。

  • 从主分支开始。虽然我们可以并入您在其他分支之上所做的更改,但如果您在一个新的、干净的分支中进行更改,这是最简单的,您可以从一个甚至使用Unreal Games元库的 分支在您的分叉中创建该分支。

  • 保持通用。虚幻引擎和编辑工具可能会被用于各种行业几乎无限范围的实时内容项目。当您设计一项新功能时,重要的是要考虑使它尽可能的通用,这样它将对尽可能多的用户有用。避免做出有关特定类型的游戏玩法或内容的假设。 

  • 遵循我们的编码标准。虚幻引擎编码标准介绍了我们在编写自己的代码时尽量遵守的约定。请在提交的代码中尽量遵守这些约定。如果您不这样做,我们可能需要更长的时间来集成您的修复程序,或者我们可能要求您返回更新您的拉取请求以使其符合。

  • 很好地描述您的更改。提前考虑好,如何通过最佳的方式告诉我们您更改的目的。 不要等到您在GitHub网页上填写拉取请求表单时才开始将您的想法表达出来。
    如果您的更改修复了一个bug,我们可以如何重现这一修复?我们如何判断您的更改是否解决了问题? 为什么选择这种方法而不是其他可能的修复方法?
    如果您想添加一项新功能,它是针对谁的?它应该如何工作?它完全是您自己的工作,还是源自其他产品或其他开发人员的工作?

请记住,我们不能保证我们会接受您的提交,即使您做的一切都是对的。负责审查您提交内容的Epic工程师通常对即将到来的开发计划、可能受影响的其他引擎子系统或插件、第三方考虑事项等都有深入的了解。如果他们确定由于某种原因我们不能接受您的提交,他们会在拉取请求对话中告知您原因。

设置您的分支

使用以下步骤将您的更改应用到您的分叉中的一个新分支。

  1. 用Epic Games虚幻引擎原始元库的主分支中的最新更改,更新您的分叉中的主分支。
    详情请参阅从Epic更新到最新更改

  2. 在您的分叉中,基于主分支创建一个新的分支来保存您的更改。您可以在您的分叉的GitHub页面上执行该操作,也可以在本地计算机上使用Git命令行工具或任何可视的Git工具执行该操作。

  3. 在本地计算机上,如果需要,从您的分叉获得最新的更改,并签出您的新的分支。

  4. 在虚幻引擎源代码的本地副本中进行更改。

  5. 编译虚幻引擎并进行测试,以确保您的修复程序或功能正常运行。

    请不要跳过这一步!跳过这一步可能很吸引人,尤其是当您在做一个非常小的修正时。但主分支会频繁收到更新,其中任何一个更新都可能妨碍您想要进行的更改。

  6. 将您的更改提交到本地分支,然后将其推回到您的GitHub元库。

启动拉取请求

一旦您在您的分叉的新分支中做出了更改,您可以在GitHub网站上创建一个新的拉取请求,要求我们将这些更改合并回虚幻引擎的原始元库中。

  1. 在Web浏览器中,前往github.com上您的元库的主页。
    这通常遵循“https://github.com//UnrealEngine”格式,其中 <username> 为您的GitHub用户名。

  2. 您可以看到一则通知,说明您的新分支最近进行修改了。如果是这样的,您可以单击绿色的 比较和拉取请求(Compare & pull request) 按钮。

    Compare and pull request

    如果不是这样的,从 分支(Branch) 下拉列表中选择包含更改的分支,然后单击 新建拉取请求(New Pull Request)

    New pull request

  3. 在打开拉取请求(Open a Pull Request)页面上,单击 基础 下拉列表并选择 分支。这将设置您想要将更改合并到的分支。

    Select the master branch

  4. 选择主分支后,您应该看到,您的分支 能够合并 (1),页面底部的提交列表(2)应该仅包含您在您的分支中所做的更改。

    单击显示全图。

  5. 这是一个机会,让您可以告诉我们需要知道的一切信息,包括关于您的更改目的和范围。为您的拉取请求制定一个简短的描述,并使用文本框提供更详细的信息。

  6. 当您认为自己已经向我们提供了理解您的更改所需的一切信息时,单击 创建拉取请求(Create pull request)

您将转到一个有关您新的拉取请求的页面,该页面分配了一个惟一的编号。您可以在这里编辑标题或描述,或者在对话历史记录中添加新的注释。如果您对您的自定义分支进行更多提交,那么您的拉取请求也会自动更新,以包含这些更改。

单击显示全图。

将来,要轻松地回到此处,您可以:

  • 将该URL存为书签,或者

  • 转到Epic Games虚幻引擎元库页面上的拉取请求选项卡。您可以使用 过滤器(Filters) 下拉列表轻松地在列表中找到您创建的拉取请求。

后续步骤

Epic工程团队将尽快检查您的新的拉取请求,但是您的工作还没有完成。

我们可能需要问您一些后续问题,或者要求您做一些额外的修改。如果是这样的话,我们将使用您的拉取请求的对话(Conversation)选项卡进行沟通。请密切关注您的拉取请求,或者订阅GitHub网站的电子邮件通知,这样您就不会错过来自我们的任何消息。

如果我们确实将您的修复程序集成到了我们的元库中,您的拉取请求将被设置为 关闭(Closed),而不是 已合并(Merged)。这是正常的,也是意料之中的。集成您的更改的提交通常会标记您的拉取请求,这样就会有您的贡献记录。

标签

欢迎来到全新虚幻引擎4文档站!

我们正在努力开发新功能,包括反馈系统,以便您能对我们的工作作出评价。但它目前还未正式上线。如果您对此页面有任何意见与在使用中遭遇任何问题,请前往文档反馈论坛告知我们。

新系统上线运行后,我们会及时通知您的。

发表反馈意见