Пути содействия

Движок Godot бесплатный, управляемый сообществом проект с открытым исходным кодом. Почти все (кроме нашего главного разработчика Хуана, далее об этом ниже) разработчики работают pro bono в свободное время, для удовольствия и любви к созданию свободного движка с исключительным качеством.

Это означает что для развития, Godot нужно как можно больше пользователей для внесения вклада в движок. Существует много путей для содействия такому большому проекту, делая возможным для каждого внести что-то позитивное в движок, не обращая внимание на опыт:

  • Be part of the community. The best way to contribute to Godot and help it become ever better is simply to use the engine and promote it by word-of-mouth, in the credits or splash screen of your games, blog posts, tutorials, videos, demos, gamedev or free software events, support on the Q&A, forums, Contributors Chat, Discord, etc. Participate! Being a user and advocate helps spread the word about our great engine, which has no marketing budget and can therefore only rely on its community to become more mainstream.

  • Делайте игры. Это не секрет, чтобы убеждать новых пользователей и особенно индустрию в целом, что Godot - это адекватный игрок на рынке, мы нуждаемся в великолепных играх сделанных на Godot. Мы знаем что движок имеет огромный потенциал, для создания 2D и 3D игр, но из-за юного возраста мы не имеем больших блокбастеров которые привлекут внимание к Godot. Так что продолжайте работу над вашими чудесными проектами, каждая новая игра увеличивает нашу привлекательность для рынка разработки игр!

  • Принимайте участие в разработке движка. Вы можете предлагать код через Pull requests, тестировать самые свежие сборки или основную master ветку, сообщать об ошибках или предлагать улучшения в разделе Issues, улучшать официальную документацию (как справочник классов, так и обучающие материалы) и переводы на другие языки. Следующие разделы расскажут о каждом из этих "прямых" путей содействия подробнее.

  • Помогайте деньгами. Godot - некоммерческий проект, но он использует преимущества пользовательских донатов разными путями. Помимо обычных расходов, таких как расходы на хостинг или рекламные материалы на мероприятиях, мы также используем пожертвованные деньги для приобретения оборудования, когда это необходимо (например, мы использовали пожертвованные деньги для покупки MacBook Pro для реализации поддержки Retina/HiDPI и различных других функций, связанных с macOS). Что наиболее важно, мы также использовали пожертвования для найма основных разработчиков, чтобы они могли работать над движком полный рабочий день. Даже при низкой ежемесячной заработной плате нам нужен стабильный доход от пожертвований, чтобы продолжать делать это, что до сих пор было очень полезно для проекта. Так что, если вы хотите пожертвовать немного денег проекту, посетите наш сайт и узнайте подробнее как это сделать.

Участие в разработке

Возможность изучать, использовать, изменять и распространять модификации исходного кода движка - это основные права, которые предоставляет вам лицензия Godot MIT, что делает движок бесплатным ПО с открытым исходным кодом.

Таким образом, каждый имеет право изменять исходный код Godot и отправлять эти изменения обратно вышестоящему проекту в виде патча (текстовый файл, описывающий изменения готовым к применению способом) или в современном рабочем процессе, который мы используем, через так называемый "пулл-реквест" (PR), то есть предложение напрямую объединить один или несколько коммитов (патчей) Git в основную ветвь разработки.

Внесение изменений в код имеет два больших преимущества:

  • Ваш собственный код будет проверяться и улучшаться другими разработчиками и в дальнейшем будет поддерживаться непосредственно в исходном проекте, поэтому вам не придется повторно применять свои собственные изменения каждый раз, когда вы переходите к более новой версии. С другой стороны, это накладывает определённую ответственность, поскольку ваши изменения должны быть достаточно общими, чтобы приносить пользу всем пользователям, а не только вашему проекту; поэтому в некоторых случаях может оказаться уместным сохранить изменения только для вашего собственного проекта, если они слишком специфичны.

  • Все сообщество получит пользу от вашей работы, и другие участники будут вести себя так же, добавляя код, который будет полезен для вас. На момент написания этой статьи более 1000 разработчиков внесли изменения в код движка!

Чтобы обеспечить хорошее сотрудничество и общее качество, разработчики Godot применяют некоторые правила для добавления кода, например, касающиеся стиля, используемого в коде C++ (отступы, скобки и т.д.) или рабочего процесса Git и PR.

Хорошее место для начала - поиск проблем, помеченных на GitHub как junior jobs (или Hacktoberfest в октябре).

См.также

Технические подробности о рабочем процессе PR изложены в специальном разделе Механизм Pull request.

Подробная информация о рекомендациях по стилю кода и инструменте clang-format, используемом для их выполнения, изложена в Code style guidelines.

All pull requests must go through a review process before being accepted. Depending on the scope of the changes, it may take some time for a maintainer responsible for the modified part of the engine to provide their review. We value all of our contributors and ask them to be patient in the meantime, as it is expected that in an open source project like Godot, there is going to be way more contributions than people validating them.

To make sure that your time and efforts aren't wasted, it is recommended to vet the idea first before implementing it and putting it for a review as a PR. To that end, Godot has a proposal system. Its usage is encouraged to plan changes and discuss them with the community. Implementation details can also be discussed with other contributors on the Godot Contributors Chat.

Примечание

Proposals are only required when working on an enhancement or a new feature. Bug reports are sufficient for fixing issues.

Тестирование и отчёты о проблемах

Ещё один отличный способ внести свой вклад в движок - это тестировать релизы или ветку разработки и сообщать о проблемах. Также полезно сообщать о проблемах, обнаруженных в стабильных выпусках, чтобы их можно было исправить в ветви разработки и в будущих отладочных выпусках.

Тестирование версий, находящихся в разработке

У вас есть несколько способов помочь с тестированием:

  • Скомпилируйте движок из исходного кода самостоятельно, следуя инструкциям на странице Compiling для вашей платформы.

  • Тестируйте официальные предварительные сборки, когда они анонсируются (в блогах и на других платформах сообщества), например, альфа-, бета-версии и релиз-кандидаты (RC).

  • Тестируйте "доверенные" неофициальные сборки ветки разработки; просто спросите у членов сообщества надежных провайдеров. По возможности лучше использовать официальные сборки или скомпилировать самостоятельно, чтобы быть уверенным в происхождении ваших сборок.

Как упоминалось ранее, также полезно следить за потенциальными ошибками, которые могут все еще присутствовать в стабильных версиях, особенно при использовании некоторых нишевых возможностей движка, которым разработчики могут уделять меньше внимания.

Регистрация проблемы на 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.

Когда вы сообщаете об ошибке, вы должны иметь в виду, что этот процесс похож на обращение к врачу. Вы заметили симптомы, которые заставляют вас думать, что что-то может быть не так (сбой движка, некоторые функции не работают должным образом и т.д.). Помогать в диагностике проблемы, с которой вы столкнулись, чтобы определить и устранить фактическую причину ошибок - задача разработчиков и команды по сбору ошибок.

Поэтому, прежде чем заявлять об ошибке, вы всегда должны спросить себя: какую важную информацию следует предоставить, чтобы другие участники могли понять ошибку, идентифицировать её и, возможно, исправить. Вот некоторые из наиболее важных сведений, которые вы всегда должны предоставлять:

  • Операционная система. Иногда ошибки зависят от системы, т.е. они возникают только в Windows или только в Linux и т.д. Это особенно актуально для всех ошибок, связанных с интерфейсами ОС, такими как управление файлами, ввод, управление окнами, аудио и т.д.

  • Аппаратное обеспечение. Иногда ошибки связаны с аппаратным обеспечением, т.е. они возникают только на определенных процессорах, графических картах и т.д. Если у вас есть возможность, может быть полезно включить информацию о вашем оборудовании.

  • 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 everyone 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.

Вклад в документацию

В 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 XML file corresponding to the class and make a pull request. See Contributing to the class reference and Class reference writing guidelines 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 format. 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 Вклад в документацию for more details.

Вклад в переводы

Чтобы сделать Godot доступным для всех, включая пользователей, которые предпочитают ресурсы на своем родном языке вместо английского, наше сообщество помогает переводить как редактор Godot, так и документацию к нему на многие языки.

Дополнительную информацию смотрите здесь: Перевод редактора и документации.