Formas de contribuir

Godot Engine es un proyecto sin fines de lucro, impulsado por la comunidad, libre y de código abierto. Casi todos (excepto nuestro desarrollador líder, Juan. Más sobre esto abajo) están trabajando pro bono en su tiempo libre, por interés personal y por el amor de crear un motor libre de calidad excepcional.

Esto significa que para prosperar, Godot necesita que tantos usuarios como sea posible se involucren contribuyendo al motor. Hay muchas formas de contribuir a un proyecto tan grande, haciendo posible que todos aporten algo positivo al motor, independientemente de sus habilidades:

  • Forma parte de la comunidad. La mejor manera de contribuir a Godot y ayudar a que sea cada vez mejor es simplemente usar el motor y promocionarlo de boca en boca, en los créditos o pantalla de bienvenida de tus juegos, entradas de blog, tutoriales, videos, demostraciones, eventos de gamedev o software libre, soporte en los foros de preguntas y respuestas, IRC, Discord, etc. ¡Participa! Ser un usuario y defensor ayuda a correr la voz acerca de nuestro gran motor, que no tiene presupuesto de marketing y por lo tanto sólo puede confiar en su comunidad para llegar a ser más popular.
  • Haz juegos. No es ningún secreto que, para convencer a los nuevos usuarios y especialmente a la industria en general de que Godot es un competidor importante en el mercado, necesitamos grandes juegos hechos con Godot. Sabemos que el motor tiene mucho potencial, tanto para juegos en 2D como en 3D, pero dada su corta edad todavía nos faltan grandes lanzamientos que llamen la atención sobre Godot. Así que sigue trabajando en tus increíbles proyectos ¡Cada nuevo juego aumenta nuestra credibilidad en el mercado de desarrollo de videojuegos!
  • Involucrate en el desarrollo del motor. Esto puede ser contribuyendo código a través de pull requests, probando los snapshots de desarrollo o directamente en la rama git master, reportando bugs o sugiriendo mejoras en el issue tracker, mejorando la documentación oficial (tanto la referencia de la clase como los tutoriales) y sus traducciones. Las siguientes secciones cubrirán cada una de esas formas «directas» de contribuir al motor.
  • 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 promotion 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.

Contribuyendo con el código

The possibility to study, use, modify and redistribute modifications of the engine’s source code are the fundamental rights that Godot’s MIT license grants you, making it free and open source software.

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.

Contributing code changes upstream has two big advantages:

  • Your own code will be reviewed and improved by other developers, and will be further maintained directly in the upstream project, so you won’t have to reapply your own changes every time you move to a newer version. On the other hand it comes with a responsibility, as your changes have to be generic enough to be beneficial to all users, and not just your project; so in some cases it might still be relevant to keep your changes only for your own project, if they are too specific.
  • 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 300 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.

A good place to start is by searching for issues tagged as junior jobs (or Hacktoberfest during October) on GitHub.

Ver también

Technical details about the PR workflow are outlined in a specific section, Pull request workflow.

Details about the code style guidelines and the clang-format tool used to enforce them are outlined in Code style guidelines.

Testing and reporting issues

Another great way of contributing to the engine is to test development releases or the development branch and to report issues. It is also helpful to report issues discovered in stable releases, so that they can be fixed in the development branch and in future maintenance releases.

Testing development versions

To help with the testing, you have several possibilities:

  • Compile the engine from source yourself, following the instructions of the Compiling page for your platform.
  • Test official pre-release binaries when they are announced (usually on the blog and other community platforms), such as alpha, beta and release candidate (RC) builds.
  • Test «trusted» unofficial builds of the development branch; just ask community members for reliable providers. Whenever possible, it’s best to use official binaries or to compile yourself though, to be sure about the provenance of your binaries.

As mentioned previously, it is also helpful to keep your eyes peeled for potential bugs that might still be present in the stable releases, especially when using some niche features of the engine which might get less testing by the developers.

Filing an issue on GitHub

Godot uses GitHub’s issue tracker for bug reports and enhancement suggestions. You will need a GitHub account to be able to open a new issue there, and click on the «New issue» button.

Cuando informes de algún error, debes tener en cuenta que el proceso es similar a una cita con tu médico. Has notado síntomas que te hacen pensar que algo podría estar mal (el motor se cuelga, algunas características no funcionan como se esperaba, etc.). Es el papel del equipo de localización de fallos y de los desarrolladores ayudar a realizar el diagnóstico del problema que se ha encontrado, para que la causa real del fallo pueda ser identificada y abordada.

You should therefore always ask yourself: what is relevant information to give so that other Godot contributors can understand the bug, identify it and hopefully fix it. Here are some of the most important infos that you should always provide:

  • Operating system. Sometimes bugs are system-specific, i.e. they happen only on Windows, or only on Linux, etc. That’s particularly relevant for all bugs related to OS interfaces, such as file management, input, window management, audio, etc.
  • Hardware. Sometimes bugs are hardware-specific, i.e. they happen only on certain processors, graphic cards, etc. If you are able to, it can be helpful to include information on your hardware.
  • Godot version. This is a must have. Some issues might be relevant in the current stable release, but fixed in the development branch, or the other way around. You might also be using an obsolete version of Godot and experiencing a known issue fixed in a later version, so knowing this from the start helps to speed up the diagnosis.
  • How to reproduce the bug. In the majority of cases, bugs are reproducible, i.e. it is possible to trigger them reliably by following some steps. Please always describe those steps as clearly as possible, so that everyone can try to reproduce the issue and confirm it. Ideally, make a demo project that reproduces this issue out of the box, zip it and attach it to the issue (you can do this by drag and drop). Even if you think that the issue is trivial to reproduce, adding a minimal project that lets reproduce it is a big added value. You have to keep in mind that there are thousands of issues in the tracker, and developers can only dedicate little time to each issue.

When you click the «New issue» button, you should be presented with a text area prefilled with our issue template. Please try to follow it so that all issues are consistent and provide the required information.

Contributing to the documentation

There are two separate resources referred to as «documentation» in 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 Contribuir a la Referencia de Clases for more details.
  • The tutorials and engine documentation and its translations. This is the part you are reading now, which is distributed in the HTML, PDF and EPUB formats. Its contents are generated from plain text files in the reStructured Text (rst) format, to which you can contribute via pull requests on the godot-docs GitHub repository. See Documentation guidelines for more details.