Сотрудничество с Unreal Engine 4

0
7
Сотрудничество с Unreal Engine 4

Если вы внесли исправление или новую функцию в исходный код Unreal Engine, вы можете внести свои изменения обратно в Epic Games и получить их в следующей версии Unreal Engine.

На протяжении многих лет мы уже приветствовали тысячи вкладов сообщества. Есть много веских причин для присоединения, как например:

• Объединение исправлений и функций в основной репозиторий исходного кода облегчит вам получение последних изменений в Unreal Engine 4 (UE4). Вам не придется продолжать слияние локальных изменений с более новым исходным кодом движка или рисковать тем, что ваши настраиваемые исправления не могут компилироваться или работать должным образом против последнего кода движка.

• Улучшение Unreal Engine и инструментов редактирования помогает укрепить более широкое сообщество Unreal, что делает ваши знания и опыт еще более ценными.

• Если мы примем ваши изменения, мы также укажем ваше имя и GitHub в наших примечаниях к выпуску в качестве вкладчика.

Мы используем механизм запроса GitHub Pull Request для управления, отслеживания и оценки заявок. На этой странице вы узнаете все, что вам нужно знать, чтобы продолжить.

Планирование вашей заявки

В GitHub легко создать запрос на перенос, но для этого мы можем легко оценить и быстро интегрировать его в наш собственный репозиторий.

Примите во внимание следующие рекомендации, если вы хотите увеличить шансы на подачу заявки и не просить вас делать какую-либо дополнительную работу или изменения:

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

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

• Начинайте с главного. Хотя мы можем слить изменения, которые вы делаете поверх других филиалов, проще всего сделать ваши изменения в чистой новой ветви, которую вы создаете в своей вилке из главной ветки, которая равна оригинальному репозиторию Unreal Games.

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

• Следуйте нашему стандарту кодирования. Unreal Engine Coding Standard описывает соглашения, которые мы пытаемся придерживаться при написании собственного кода. Пожалуйста, сделайте все возможное, чтобы следовать этим соглашениям в коде, который вы отправляете. Если вы этого не сделаете, может потребоваться больше времени, чтобы интегрировать ваши исправления, или мы можем попросить вас обновить запрос на перенос, чтобы он соответствовал правилам.

• Описывайте ваши изменения понятно. Задумайтесь заранее, как лучше рассказать нам о намерениях ваших изменений. Не ждите, пока вы заполняете форму запроса на веб-странице GitHub, размышляя, как начать.

Если ваши изменения исправят ошибку, как мы ее воспроизведем? Как мы можем определить, исправляет ли ваше решение проблему? Почему вы выбрали этот подход по сравнению с другими возможными исправлениями? Если вы хотите добавить новую функцию, для кого она предназначена? Как это должно работать? Это полностью ваша собственная работа или она получена из другого продукта или работы другого разработчика?

Имейте в виду, что мы не гарантируем, что мы примем ваше исправление, даже если вы все сделали правильно. Представители Epic, которые просматривают ваше предложение, часто имеют внутренние знания о предстоящих планах развития, других подсистем движка или плагинах и т.д. Если они выяснят, что мы не можем принять ваше предложение по какой-либо причине, они сообщим вам причину.

Настройте свою ветку

Используйте следующие шаги, чтобы ваши изменения были применены к новой ветке в вашей вилке:

1. Обновите главную ветку в своей вилке с последними изменениями в главной ветке оригинального репозитория Epic Games Unreal Engine.
Подробнее читайте в разделе Обновление последних изменений в Epic.

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

3. На локальном компьютере при необходимости извлеките последние изменения из своей вилки и проверьте свою новую ветку.

4. Внесите изменения в локальную копию исходного кода Unreal Engine.

5. Скомпилируйте Unreal Engine и проверьте, чтобы ваше исправление или функция работали по назначению.

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

6. Зафиксируйте свои изменения в своей локальной ветке, а затем верните их обратно в репозиторий GitHub.

Начните свой запрос Pull Request

После того, как у вас есть изменения в новом филиале в вашей вилке, вы можете создать новый запрос на перенос на веб-сайте GitHub, чтобы попросить нас объединить эти изменения в исходный репозиторий Unreal Engine:

1. В веб-браузере перейдите на главную страницу своего репозитория на github.com.
Обычно это соответствует формату https://github.com/<username>/UnrealEngine, где <username> – ваше имя пользователя GitHub.

2. Вы можете увидеть уведомление о том, что новая ветка была недавно изменена. Если это так, вы можете нажать зеленую кнопку Compare & pull requestкнопка Compare & pull request в github UE4Если нет, выберите ветку, содержащую ваши изменения, из раскрывающегося списка Branch и нажмите New Pull Request. кнопка New Pull Request в github UE4

3. На странице Open a Pull Request щелкните раскрывающийся список базы и выберите главную ветку. Это устанавливает ветку, в которую вы хотите объединить свои изменения. база и главная ветка в github UE44. Когда выбрана главная ветка, вы должны увидеть, что ваша ветка Able to merge (1 – «готов к объединению»), а список коммитов в нижней части страницы (2) должен содержать только те изменения, которые были сделаны в вашей ветке. кнопка Able to merge в github UE4

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

6. Когда вы будете удовлетворены тем, что предоставили нам всю необходимую информацию для ваших изменений, нажмите Create pull request.

Вы попадете на страницу для вашего нового запроса на перенос, которому присваивается уникальный номер. Вы можете редактировать свой заголовок или описание здесь или добавлять новые комментарии в историю разговоров. Если вы сделаете больше попыток в своей настраиваемой ветке, ваш запрос на перенос автоматически обновится, чтобы включить эти изменения. заявка на изменения в github UE4

Чтобы вернуться сюда в будущем:

• используйте закладки URL
или
• перейдите на вкладку Pull Requests на странице репозитория Epic Games Unreal Engine. Вы можете использовать раскрывающийся список Filters, чтобы легко находить запросы, которые вы создали в списке.

Следующие шаги

Команда разработчиков Epic как можно скорее рассмотрит ваш новый запрос.

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

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