贡献代码

能够学习、使用、修改和再分发对引擎源代码修改是 Godot 的 MIT 许可证授予你的基本权利,使其成为 自由且开源的软件

因此, 每个人都有权修改 Godot 的源代码 , 并以补丁(描述预定更改的文本文件)的形式将这些修改发送回上游项目, 或者——用现代的工作流程——通过所谓的 “拉取请求”(PR), 直接请求将一个或多个Git commits(补丁)合并到主开发分支.

上游贡献代码更改有两大优势:

  • 你自己的代码将由其他开发人员审查和改进, 并将直接在上游项目中进一步维护, 因此你不必在每次迁移到新版本时重新应用自己的更改. 另一方面, 它也是一种责任, 因为你所做的更改必须足够通用才能对所有用户有益, 而不仅仅是对你的项目有益;因此, 在某些情况下, 如果更改过于具体, 则仅在你自己的项目中保留可能依然有用.

  • The whole community will benefit from your work, and other contributors will behave the same way, contributing code that will be beneficial to you. At the time of this writing, over 2,000 developers have contributed code changes to the engine!

为了确保良好的合作和整体质量,Godot的开发者对代码贡献实行一些规则, 例如关于C++代码的风格(缩进, 括号等)或Git和PR工作流程.

通过搜索 Github 中标记为 good first issue 的问题着手是个不错的办法。

参见

有关PR工作流程的技术细节在特定章节 拉取请求工作流程 中概述.

有关代码样式规范和用于实施它们的 clang-format 工具的详细信息,将在 代码风格规范 概述。

所有的拉动请求在被接受之前必须经过一个审查过程。根据修改的范围,负责引擎修改部分的维护者可能需要一些时间来提供他们的审查。我们重视所有的贡献者,并希望他们在此期间保持耐心,因为在像Godot这样的开源项目中,预计会有更多的贡献者来验证它们。

为了确保你的时间和精力不被浪费,建议在实施该想法并将其作为PR进行审查之前,先对其进行审查。为此,Godot有一个`提案系统 <https://github.com/godotengine/godot-proposals>`_ 。我们鼓励使用该系统来计划修改并与社区讨论。实施细节也可以在 Godot贡献者聊天 中与其他贡献者讨论。

备注

只有在进行增强或新功能的工作时,才需要提出建议,错误报告对于修复问题已经足够了。

测试和报告问题

对引擎做贡献的另一个好方法是测试开发版本或开发分支并报告问题. 报告在稳定版本中发现的问题也很有帮助, 这样就可以在开发分支和未来的维护版本中修复它们.

测试开发版本

为了帮助进行测试, 你有以下几种可能性:

  • 按照针对你的平台的 编译 页面中的说明, 自己从源代码编译引擎.

  • 在官方宣布预发布二进制文件时(通常在博客和其他社区平台上)测试, 如alpha,beta和候选(RC)构建版本.

  • 测试开发分支的“可信”非官方版本;请向社区成员询问可靠的提供商。尽可能使用官方的或自己编译的二进制文件,以确保二进制文件的来源可靠。

如前所述, 对于可能仍然存在于稳定版本中的潜在bug, 请务必留意, 特别是当使用引擎的某些特定功能时, 开发人员可能对其测试较少.

在 GitHub 上提交问题

Godot uses GitHub’s issue tracker for bug reports. When you start filing a bug report, you’ll be given a form to fill out. Please try to follow it so that all issues are consistent and provide the required information.

贡献文档

在 Godot 中有两个不同的资源会被称为“文档”:

  • The class reference. This is the documentation for the complete Godot API as exposed to GDScript and the other scripting languages. It can be consulted offline, directly in Godot’s code editor, or online at Godot Class Reference. To contribute to the class reference, you have to edit the XML file corresponding to the class and make a pull request. See 为类参考手册贡献 and 类参考入门 for more details.

  • 教程和引擎文档及其翻译。这是你现在正在阅读的部分,它以 HTML 格式分发。这部分的内容是用 reStructured Text(rst)格式的纯文本文件生成的,你可以在 godot-docs GitHub 仓库上通过拉取请求来为其进行贡献。详见 贡献文档

贡献翻译

为了让每个人都能使用Godot, 包括那些可能更喜欢使用母语而不是英语资源的用户, 我们的社区帮助把Godot编辑器和它的文档翻译成多种语言.

详见 编辑器和文档的本地化 .