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

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

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

  • Будьте частью сообщества. Лучший путь чтобы содействовать Godot и помочь ему это просто использовать движок и продвигать его, сообщая о нём устно, делая титры или сплэш скрины с вашими играми, посты в блогах, обучалки, видео, демо-версии, посещая игровые события или мероприятия по свободному программному обеспечению, поддержка других пользователей в Q&A, IRC, форумах, в Discord, и т. д. Участвуйте ! Будьте пользователем и распространяйте слово о нашем великолепном движке, который не имеет огромного бюджета и может полагаться только на своё сообщество чтобы стать более распространённым.

  • Делайте игры. Это не секрет, чтобы убеждать новых пользователей и особенно индустрию в целом, что 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 использует трекер проблем GitHub для отчётов об ошибках и предложений по улучшению. Зарегистрировать там новую проблему можно по кнопке "New issue" (вам понадобится учётная запись GitHub).

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

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

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

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

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

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

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

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

В Godot есть два отдельных ресурса, которые называются "документацией":

  • Описание классов. Это полная документация по API Godot, доступного для GDScript и других скриптовых языков. С ней можно ознакомиться в автономном режиме непосредственно в редакторе кода Godot или в Интернете по адресу Godot API. Чтобы внести свой вклад в эту документацию, отредактируйте файл doc/base/classes.xml в репозитории Godot Git и выполните пулл-реквест. Подробнее описано здесь: Contributing to the class reference.

  • Документация по учебникам и движку и ее переводы. Это та часть, которую вы сейчас читаете, которая распространяется в форматах HTML, PDF и EPUB. Ее содержимое генерируется из обычных текстовых файлов в формате reStructured Text (rst), в который вы можете вносить свой вклад через запросы на исправление на репозитории godot-docs GitHub. Более подробную информацию смотрите в Руководство по документации.

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

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

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