1. Получите собственную копию исходного кода. Если проект размещен на GitHub, это обычно означает нажатие кнопки Разветвить, которая создает копию всего проекта в вашей собственной учетной записи, с которой вы можете работать. Если вам нужен учебник по git, я рекомендую интерактивный учебник, доступный на GitHub.
  2. Создайте ветку проекта из основной ветки в своей вилке. Это имя, которое вы дадите копии своего кода с определенным набором изменений, которые вы собираетесь внести. Ветка master обычно представляет собой «базовую истину» кода, составляющего приложение, поэтому обычно вам лучше работать с этой веткой, особенно если вы только начинаете.
  3. Внесите изменения в код! Возможно, вы нашли орфографическую ошибку и изменили пару символов. Это абсолютно правильное изменение, и исправления строк также понижаются в проектах как исправления с более низким приоритетом. Зафиксируйте свои изменения в своей ветке и отправьте их в свою удаленную копию на GitHub.
  4. Перед отправкой запроса на вытягивание убедитесь, что вы следуете всем рекомендациям по содействию или стилю кода. Многие проекты имеют файлы конфигурации, которые определяют это или автоматически запускают проверку стиля. Запрос на вытягивание — это способ показать, что вы хотите, чтобы ваши изменения учитывались в кодовой базе. Обычно вы обсуждаете свой код, и основные сопровождающие репозитория могут попросить вас внести изменения.

Я рекомендую выбрать проект, с которым вы работаете на регулярной основе, будь то фреймворк, который вы используете в своих приложениях, или плагин, который вы используете в своих играх. Понимание того, как компоненты работают вместе, и четкое представление о целях проекта, в который вы хотите внести свой вклад, важны для совместной работы с основной командой. Быть увлеченным пользователем означает, что вы уже являетесь членом сообщества — вы можете думать о формальном участии как о способе добавления того, что вы используете и хотите сделать еще лучше!

Некоторые из вещей, которые я рекомендую искать новым участникам проекта OSS:

  • Теги для задач, удобных для начинающих. Не все проекты используют теги или отслеживают проблемы на GitHub, но если они это делают, это может быть хорошим способом отфильтровать задачи, которые новичкам должно быть легко выполнить. кодовую базу, которую нужно подобрать.
  • Отсутствует документация. Узнайте, нуждается ли проект с открытым исходным кодом, который вы используете, в помощи по документации. Я могу почти обещать вам, что они это сделают — поддержание документов в актуальном состоянии — одна из постоянных проблем, с которыми я сталкиваюсь в командах разработчиков. Осознали, что документированный API изменился? Или что для новой функции можно использовать учебник? Посмотрите, как команда документирует эти вещи, и рассмотрите возможность внести свой вклад в дополнение к основному коду.
  • Отслеживание проблем. Если проект отслеживает проблемы на GitHub (или другом общедоступном инструменте для поиска ошибок и функций), у вас есть несколько вариантов того, как вы можете внести свой вклад в устранение ошибок. Во-первых, если вы их найдете — отправляйте! Перед отправкой вопроса имейте в виду следующее:
  • Найдите средство отслеживания проблем и убедитесь, что оно еще не было отправлено.
  • Напишите очень четкие сообщения о том, что вы ожидали увидеть, что на самом деле произошло и что вы делали. Любая дополнительная информация о вашей системе также может быть полезна.
  • По возможности предоставьте файл журнала — он может помочь выявить проблемы, которые могли бы просмотреть разработчики.
  • Добавьте скриншот, если есть визуальная составляющая
  • Следите за обсуждением и решением проблемы — это может быть областью, где вы могли бы получить некоторые рекомендации и исправить себя!
  • Отзывы/обсуждение.Часто сопровождающие проекта OSS предоставляют пользователям форум для обсуждения будущих функций и структуры проекта. Читайте их и участвуйте! Если вы хотите принять участие, но еще не готовы погрузиться в исправление, это хороший способ узнать о команде и понять культуру сообщества проекта.

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

Открытый исходный код для дополненной и виртуальной реальности

Существует ряд проектов с открытым исходным кодом, связанных с виртуальной и дополненной реальностью, некоторые из которых я перечислил ниже.

High Fidelity — я немного предвзят, так как работаю полный рабочий день над High Fidelity, но одной из причин, по которой я пришел в компанию, был подход к разработке, включающий открытый сотрудничество и развитие. Если вы разработчик C++, Qt, JS или 3D-художник, вы можете внести свой вклад в High Fidelity через Рабочий список. Документация для High Fidelity также является открытым исходным кодом и может быть разветвлена ​​здесь. C++, QML, JavaScript

VRTK — отличный набор инструментов с открытым исходным кодом для Unity. VRTK помогает сократить накладные расходы на разработку виртуальной реальности с использованием игрового движка Unity. Проект VRTK, созданный @The_StoneFox, представляет собой репозиторий, удобный для начинающих, в котором четко изложены стандарты кодирования, кодекс поведения и открытые проблемы. В проекте также есть несколько мест, где разработчики, использующие инструментарий, могут делиться своими идеями, включая канал Slack.

Aframe — язык разметки Mozilla, основанный на WebVR API. Aframe — это проект с открытым исходным кодом, цель которого — упростить разработку веб-сайтов с поддержкой виртуальной реальности. Вы можете внести свой вклад в Aframe непосредственно на GitHub или в дополнительные компоненты платформы Aframe (например, networked-aframe) JavaScript, CSS, HTML

Mixed Reality Toolkit — Mixed Reality Toolkit — это проект Microsoft по разработке приложений HoloLens и приложений для гарнитур виртуальной реальности партнеров Mixed Reality. Есть проект на базе Visual Studio, а также проект специально для разработки на Unity. C++, C, HTML, Objective-C, C#

OSVRсхема для шлемов виртуальной реальности с открытым исходным кодом и библиотеки для кроссплатформенной разработки виртуальной реальности под руководством таких компаний, как Intel, Sensics, Razer и Leap Motion. Языки разные

ReactVRReactVR — это платформа от Oculus/Facebook для разработки сайтов WebVR, использующих их библиотеки React. В основном основанный на JavaScript, это хороший проект, на который стоит обратить внимание, если у вас уже есть некоторый опыт работы с React для традиционных приложений. JavaScript

LearnVR. LearnVR — это проект, который я начал несколько лет назад, чтобы отслеживать ресурсы, которые я считаю полезными для получения дополнительной информации о виртуальной и дополненной реальности. Он безнадежно устарел, и ему не помешало бы немного любви (и это проект документации с открытым исходным кодом, не связанный с программированием!), поэтому, если у вас есть ресурсы или мысли о том, что можно добавить, я был бы рад услышать, что вы найдете полезным.