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

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

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

  • Станьте частью сообщества. Лучший способ внести свой вклад в Godot и помочь ему стать ещё лучше - это просто использовать движок и продвигать его из уст в уста, в титрах или заставке ваших игр, в сообщениях блога, обучающих материалах, видео, демонстрациях, на мероприятиях gamedev или свободного ПО, в поддержке в вопросах и ответах, на форумах, в Contributors Chat, 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.

См.также

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

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

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

Чтобы ваше время и усилия не пропали даром, рекомендуется сначала проверить идею, прежде чем реализовывать её и выставлять на рассмотрение в качестве PR. Для этого в Godot есть система предложений ` <https://github.com/godotengine/godot-proposals>`_ . Её использование поощряется для планирования изменений и обсуждения их с сообществом. Детали реализации также можно обсудить с другими участниками в чате Godot Contributors Chat.

Примечание

Предложения требуются только при работе над улучшением или новой функцией. Для устранения проблем достаточно сообщений об ошибках.

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

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

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

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

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

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

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

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

Регистрация проблемы на GitHub

Godot использует GitHub's issue tracker для сообщений об ошибках и предложений по улучшению. Вам потребуется учётная запись на GitHub, чтобы открыть там новый вопрос, после этого нажмите на кнопку New issue.

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

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

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

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

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

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

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

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

В 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 Внесение вклада в справочник классов and Рекомендации по написанию справочника классов for more details.

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

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

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

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