贡献方式

Godot引擎是一个非盈利、社区驱动的免费开源项目。几乎所有的开发人员(不仅包括我们的首席开发人员Juan,下面还有更多人员)都在 无偿 利用他们的空闲时间,出于个人兴趣以及对创建一个质量卓越的自由引擎的热爱。

这意味着要发展壮大,Godot需要尽可能多的用户通过为引擎做出贡献而参与进来。有许多方法可以为这样一个大项目做出贡献,无论他们的技能是什么,每个人都可以为引擎带来积极的一面:

  • 成为社区的一份子。 为Godot做贡献并帮助它变得更好的最佳方式就是:使用它,以及在游戏的感谢名单和开始界面、博客文章、教程、视频、演示、游戏开发或自由软件事件中口口相传,在Q&A、IRC、论坛、Discord等处支持它。参与进来!成为用户并宣扬它,有助于宣传我们的强大引擎,它没有营销预算,因此只能依靠社区使其变得更加主流。
  • 制作游戏。 为了说服新用户,尤其是整个行业,Godot是相关市场的一个参与者,我们需要使用Godot制作出色游戏已不是什么秘密。我们知道该引擎在2D和3D游戏方面具有很大的潜力,但是鉴于其年轻的年龄,我们仍然缺乏吸引人们关注Godot的重要发行版本。因此,请继续从事出色的项目,每款新游戏都会提高我们在游戏开发市场上的信誉!
  • 参与引擎的开发。 这可以通过拉取请求贡献代码、测试开发快照或直接通过git master 分支、在问题跟踪器上报告bug或建议改进、改进官方文档(包括类参考和教程)及其翻译。以下各节将介绍对引擎做贡献的所有这些“直接”方式。
  • Donate. Godot is a non-profit project, but it can still benefit from user donations for many things. Apart from usual expenses such as hosting costs or promotional material on events, we also use donation money to acquire hardware when necessary (e.g. we used donation money to buy a MacBook Pro to implement Retina/HiDPI support and various other macOS-related features). Most importantly, we also used donation money to hire core developers so they can work full-time on the engine. Even with a low monthly wage, we need a steady donation income to continue doing this, which has been very beneficial to the project so far. So if you want to donate some money to the project, check our website for details.

贡献代码

学习、使用、修改和重新分发对引擎源代码修改的可能性是Godot的 MIT 许可授予您的基本权利,使其成为 免费开源软件

As such, everyone is entitled to modify Godot’s source code, and send those modifications back to the upstream project in the form of a patch (a text file describing the changes in a ready-to-apply manner) or - in the modern workflow that we use - via a so-called “pull request” (PR), i.e. a proposal to directly merge one or more Git commits (patches) into the main development branch.

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

  • 您自己的代码将由其他开发人员审查和改进,并将直接在上游项目中进一步维护,因此您不必在每次迁移到新版本时重新应用自己的更改。另一方面,它也是一种责任,因为您所做的更改必须足够通用才能对所有用户有益,而不仅仅是对您的项目有益;因此,在某些情况下,如果更改过于具体,则仅在您自己的项目中保留可能依然有用。
  • 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, more than 1000 developers have contributed code changes to the engine!

To ensure good collaboration and overall quality, the Godot developers enforce some rules for code contributions, for example regarding the style to use in the C++ code (indentation, brackets, etc.) or the Git and PR workflow.

一个好的起点是搜索Github中标记为 junior jobs (或在十月的 Hacktoberfest )的问题。

参见

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

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

测试和报告问题

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

测试开发版本

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

  • 按照针对您的平台的 编译 页面中的说明,自己从源代码编译引擎。
  • 在官方宣布预发布二进制文件时(通常在博客和其他社区平台上)测试,如alpha,beta和候选(RC)构建版本。
  • 测试开发分支的 可信 非官方版本;请向社区成员询问可靠的提供商。尽可能使用官方的或自己编译的二进制文件,以确保二进制文件的来源可靠。

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

在GitHub上提交问题

Godot使用 GitHub的问题跟踪器 来获取错误报告和改进建议。您需要一个GitHub帐户才能在那里开启新问题,然后点击 新问题 按钮。

报告错误时,请记住该过程类似于与医生预约。您注意到 症状,会让您认为某些内容可能会有问题(引擎崩溃,某些功能无法正常工作等)。错误分类小组和开发人员的职责是帮助诊断您遇到的问题,以便找出并解决该错误的实际原因。

因此,您应该始终问自己:要提供什么相关信息,以便其他Godot贡献者可以理解bug、发现并希望修复该它。以下是您应始终提供的一些最重要的信息:

  • 操作系统。 有时错误是系统特定的,即它们仅在Windows上,或仅在Linux上发生。这对于与OS接口(如文件管理、输入、窗口管理、音频等)相关的所有bug尤其相关。
  • 硬件。 有时错误是特定于硬件的,即它们仅在某些处理器、显卡等硬件上发生。如果可以,包含有关硬件的信息会很有帮助。
  • Godot版本。 这是必须的。某些问题可能仅存在于当前稳定版本,但在开发分支中已修复,或者相反。 您可能还在使用Godot的过时版本,遇到更高版本中已修复的已知问题,因此从一开始就知道这一点有助于加快诊断速度。
  • 如何重现bug。 在大多数情况下,bug是可重现的,即可以通过遵循某些步骤切实地触发它们。 请始终尽可能清楚地描述这些步骤,以便每个人都可以尝试重现问题并进行确认。理想情况下,制作一个演示项目,可以立即重现此问题,将其压缩并将其附加到问题中(您可以通过拖放操作完成此操作)。即使您认为该问题很难重现,添加一个最小的项目来重现该问题也是很划算。您必须记住,跟踪器中有成千上万的问题,开发人员只能花很少的时间处理每个问题。

点击 新问题 按钮时,应向您显示预填充我们的问题模板的文本区域。请尝试遵循它,以便所有问题保持一致并提供所需信息。

贡献文档

在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 API. To contribute to the class reference, you have to edit the doc/base/classes.xml in Godot’s Git repository, and make a pull request. See Contributing to the class reference for more details.
  • 教程和引擎文档及其翻译。 这是您现在正在阅读的部分,它以HTML、PDF和EPUB格式分发。它的内容是用reStructured Text(rst)格式的纯文本文件生成的,您可以通过在 godot-docs GitHub存储库上拉取请求来为其贡献。有关更多详细信息,参见 文档指南

Contributing translations

To make Godot accessible to everyone, including users who may prefer resources in their native language instead of English, our community helps translate both the Godot editor and its documentation in many languages.

See Editor and docs localization for more details.