贡献的方式

Godot引擎是一个非盈利的、社区驱动的、免费的、开源的项目。几乎所有开发人员(除了我们的主管Dev Juan,更多内容见下文)都在工作 公益 在他们的闲暇时间,出于个人兴趣,为了爱创造一个具有非凡品质的libre引擎。

这意味着为了繁荣,Godot需要尽可能多的用户参与到引擎中来。有很多方法可以为这样一个大项目做出贡献,使每个人都能为引擎带来积极的东西,不管他们的技能如何:

  • 成为社区的一部分。 对Godot做出贡献并帮助它变得更好的最好方法就是简单地使用引擎并通过口碑、游戏的信用或初始屏幕、博客帖子、教程、视频、演示、Gamedev或免费软件活动、问答支持、IRC、论坛、不和谐等来推广它。伊帕!作为一个用户和倡导者有助于传播关于我们伟大的引擎的信息,它没有营销预算,因此只能依靠它的社区来变得更加主流。

  • 做游戏。 为了说服新用户,特别是整个行业相信Godot是一个相关的市场参与者,我们需要用Godot制作的精彩游戏,这不是什么秘密。我们知道这个引擎有很大的潜力,无论是二维还是三维游戏,但考虑到它年轻的年龄,我们仍然缺乏能吸引Godot注意的大版本。所以继续努力你的了不起的项目,每一个新的游戏增加我们在游戏开发市场的信誉!

  • 参与引擎的开发。 这可以通过请求、测试开发快照或直接使用git来提供代码。git *主*分支、报告错误或建议对问题跟踪程序进行增强,改进官方文档(包括类参考和教程)及其翻译。以下部分将介绍对引擎做出贡献的每种“直接”方式。

  • 捐赠。 Godot是一个非营利性的项目,但它仍然可以从用户捐赠的许多东西中受益。除了通常的费用,如主持费用或活动宣传材料,我们还使用捐赠资金在必要时购买硬件(例如,我们使用捐赠资金购买MacBook Pro以实现Retina/Hidpi支持和各种其他MacOS相关功能)。最重要的是,我们还使用捐款聘请核心开发人员,以便他们可以在引擎上全职工作。即使月薪很低,我们也需要稳定的捐款收入来继续这样做,这对到目前为止的项目非常有益。所以如果你想给这个项目捐点钱,请检查 our website 有关详细信息。

贡献代码

研究、使用、修改和重新发布引擎源代码修改的可能性是Godot的基本权利。 MIT 许可证授予您,使之成为 free and open source software .

因此,每个人都有权修改 Godot's source code ,并将这些修改以补丁的形式(以随时可应用的方式描述更改的文本文件)或-在我们使用的现代工作流中-通过所谓的“拉请求”(pr),即直接将一个或多个git提交(补丁)合并到主要发展部门。

在上游进行代码更改有两大优势:

  • 您自己的代码将由其他开发人员审查和改进,并将直接在上游项目中进行进一步维护,因此您不必每次移动到较新版本时都重新应用自己的更改。另一方面,它也有责任,因为您的更改必须足够通用,以便对所有用户都有利,而不仅仅是对您的项目有利;因此,在某些情况下,如果更改过于具体,那么只保留对您自己的项目有利的更改可能仍然是相关的。

  • 整个社区将从您的工作中受益,其他贡献者也将以同样的方式工作,贡献对您有益的代码。在撰写本文的时候,已经有300多个开发人员对引擎进行了代码更改!

为了确保良好的协作和整体质量,Godot开发人员强制执行一些代码贡献规则,例如关于C++代码中使用的样式(缩进、括号等)或Git和PR工作流。

一个好的开始方法是搜索标记为 junior jobs (或) Hacktoberfest 10月)在Github。

参见

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

有关代码样式准则和 clang-format 用于强制它们的工具概述在 代码样式准则 .

测试和报告问题

另一个贡献于引擎的好方法是测试开发版本或开发分支并报告问题。报告在稳定版本中发现的问题也很有帮助,以便在开发分支和将来的维护版本中修复这些问题。

测试开发版本

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

  • 按照 Compiling 您的平台页面。

  • 当发布正式的预发布二进制文件时(通常在博客和其他社区平台上),比如alpha、beta和release candidate(rc)构建,测试它们。

  • 测试开发分支的“可信”非官方构建;只需向社区成员询问可靠的提供者。如果可能的话,最好使用官方的二进制文件或者自己编译,以确保二进制文件的出处。

如前所述,保持关注稳定版本中可能仍然存在的潜在错误也是很有帮助的,特别是在使用引擎的某些特定功能时,这些功能可能会减少开发人员的测试。

在Github上提交问题

Godot使用 GitHub's issue tracker 用于错误报告和增强建议。您需要一个Github帐户才能在那里打开一个新问题,然后单击“新问题”按钮。

当你报告一个错误时,你应该记住这个过程类似于和你的医生预约。你注意到了 症状 这让你觉得可能出了什么问题(引擎崩溃,某些功能不能按预期工作,等等)。这是bug测试团队和开发人员的职责,他们可以帮助您对遇到的问题进行诊断,从而确定和解决bug的实际原因。

因此,您应该经常问自己:要提供什么相关信息,以便其他Godot贡献者能够理解这个bug,识别它并希望修复它。以下是您应始终提供的一些最重要的信息:

  • 操作系统。 有时错误是特定于系统的,即它们只发生在Windows或Linux等系统上,这与所有与操作系统接口相关的错误尤其相关,如文件管理、输入、窗口管理、音频等。

  • 硬件。 有时错误是特定于硬件的,也就是说,它们只发生在某些处理器、图形卡等上。如果您能够做到这一点,那么包含有关硬件的信息可能会很有帮助。

  • Godot版本。 这是必须的。一些问题可能与当前的稳定版本相关,但在开发分支中得到了解决,或者反过来。您可能也在使用过时的godot版本,并且在以后的版本中遇到了一个已知的问题,因此从一开始就知道这一点有助于加快诊断速度。

  • 如何复制错误。 在大多数情况下,bug是可复制的,也就是说,可以通过遵循一些步骤可靠地触发它们。请务必尽可能清楚地描述这些步骤,以便每个人都能尝试重现并确认问题。理想情况下,制作一个演示项目,将此问题复制出来,压缩它并将其附加到问题上(您可以通过拖放来完成此操作)。即使您认为这个问题很容易重现,添加一个允许重现的最小项目也是一个巨大的附加值。您必须记住,跟踪器中存在数千个问题,开发人员只能在每个问题上花费很少的时间。

当你点击“新问题”按钮时,你会看到一个文本区域,其中预先填充了我们的问题模板。请尝试遵循它,以便所有问题都一致,并提供所需的信息。

对文件的贡献

Godot中有两个单独的资源称为“文档”:

  • 类引用。 这是完整的godot api的文档,与gdscript和其他脚本语言公开。它可以离线查询,直接在Godot的代码编辑器中查询,也可以在线查询 Godot API . 要为类引用做出贡献,必须编辑 doc/base/classes.xml 在Godot的Git存储库中,并发出请求。见 有助于类引用 了解更多详细信息。

  • 教程和引擎文档及其翻译。 这是您现在正在阅读的部分,它以HTML、PDF和EPUB格式分发。它的内容是由重构文本(RST)格式的纯文本文件生成的,您可以通过 godot-docs Github存储库。见 文件编制指南 了解更多详细信息。