언어:
페이지 정보
태그:

언리얼 엔진 4에 기여

언리얼 엔진 소스 코드에 픽스 또는 신기능을 만든 경우, 그 변경사항을 에픽게임즈에 올려 다음 언리얼 엔진 출시 버전에 반영되도록 기여할 수 있습니다.

몇 년에 걸쳐 이미 수천 건의 기여를 환영해 왔습니다. 예를 들어 참여하기 좋은 이유는 다음과 같이 많습니다.

  • 픽스와 기능을 메인 소스 코드 저장소에 병합하면 언리얼 엔진 4 (UE4) 최신 변경사항을 보다 쉽게 받을 수 있습니다. 엔진 소스 새 버전이 나올 때마다 로컬 변경사항을 계속 병합하거나, 커스텀 픽스가 최신 엔진 코드에서 예상대로 컴파일 또는 작동되지 않는 위험을 감수할 필요가 없습니다.

  • 언리얼 엔진과 편집 툴이 향상되면 언리얼 커뮤니티 저변을 넓히는 데 도움이 되므로, 여러분의 지식과 전문성이 더욱 빛날 것입니다.

  • 변경사항이 승인되면, 릴리즈 노트에 기여자로 여러분의 이름과 GitHub 핸들을 올려 드립니다.

GitHub Pull Request (풀 리퀘스트) 메커니즘을 통해 제출을 관리, 추적, 평가합니다. 여기서는 시작하기 위해 알아야 할 모든 것을 다룹니다.

제출 계획

GitHub 에서 풀 리퀘스트는 쉽게 만들 수 있지만, 미리 계획을 해 두어야 저희 쪽의 평가가 쉽고 저장소에도 빠르게 통합할 수 있습니다.

별도의 추가 작업이나 변경 요청 없이 제출을 승인받을 확률을 높이려면 다음 제안사항을 염두에 두시기 바랍니다.

  • 집중력을 유지하세요. 이상적으로 각 풀 리퀘스트는 하나의 특정 버그를 수정하거나, 독립적인 단일 기능을 추가해야 합니다. 풀 리퀘스트가 여러 파일을 변경할 수도 있고 커밋 수에도 제한이 없지만, 모든 변경사항이 이루고자 하는 목표는 하나여야 합니다.
    기여하려는 것이 동시에 여럿인 경우, 주저하지 말고 풀 리퀘스트를 여러 개 만드세요. 대규모 제출을 개별 구성 요소로 나누는 것보다 여러 개의 개별 리퀘스트를 확인하고 가져오는 것이 더 쉽습니다.

  • 마스터에서 시작하세요. 다른 브랜치의 변경사항을 병합할 수는 있지만, 마스터 브랜치에서 포크로 만든 깨끗한 새 브랜치의 변경사항이 병합하기 가장 쉬우며, 심지어 원본 Unreal Game 저장소와 같이 있어도 됩니다.

  • 보편성을 유지하세요. 언리얼 엔진과 편집 툴은 거의 무한대의 실시간 콘텐츠 프로젝트에 사용되며, 업계와 용도도 다양합니다. 신기능을 디자인할 때 중요하게 생각할 점은, 가능한 한 포괄적인 기능을 제공해야 최대한 많은 잠재 고객에게 유용하다는 점입니다. 특정 게임플레이 또는 콘텐츠 유형을 가정하지 마세요.

  • 코딩 표준을 준수하세요. 코딩 표준 문서에서 저희가 코드를 작성할 때 준수해야 하는 규칙을 확인할 수 있습니다. 제출하는 코드에서도 이 규칙을 준수해 주시기 바랍니다. 준수하지 않으면 픽스를 통합하는 데 더 오래 걸리거나, 풀 리퀘스트 수정을 요청할 수도 있습니다.

  • 변경사항을 잘 설명하세요. 변경 의도를 잘 알려주는 최선의 방법을 미리 생각해 보세요. GitHub 의 풀 리퀘스트 양식을 채우기 전 미리 생각을 정리해 두면 좋습니다.
    변경사항이 버그 픽스인 경우, 그 버그는 어떻게 재현하나요? 제출한 변경사항이 그 문제를 고치는지 어떻게 알 수 있나요? 다른 방법에 비해 이 방법을 선택한 이유는 무엇인가요?
    신기능 추가라면, 누구를 위한 기능인가요? 어떻게 작동하나요? 전적으로 귀하의 작업인가요, 아니면 다른 제품 또는 개발자 작업의 파생물인가요?

귀하가 모든 작업을 올바르게 했다 해서 제출을 승인한다는 보장은 없습니다. 제출을 검토하는 에픽의 엔지니어는 앞으로의 개발 계획, 영향받을 수 있는 다른 엔진 하위 시스템 또는 플러그인, 서드파티 고려사항 등에 대한 내부 지식이 있는 경우가 많습니다. 어떤 이유로 제출을 승인할 수 없다고 판단되면, 풀 리퀘스트 대화에 그 이유를 알려 드립니다.

브랜치 구성

변경사항을 포크의 새 브랜치에 적용하는 단계는 다음과 같습니다.

  1. 자신의 포크 마스터 브랜치를 원본 Epic Games Unreal Engine 저장소의 마스터 브랜치 최신 변경사항으로 업데이트합니다.
    자세한 내용은 에픽의 최신 변경사항 업데이트NEW! 문서를 참고하세요.

  2. 자신의 포크에 새 브랜치를 만들어 변경사항을 저장하고, 마스터 브랜치를 기반으로 합니다. 이 작업은 GitHub 자신의 포크 페이지에서, 또는 로컬 컴퓨터에서 Git 명령줄 툴이나 비주얼 Git 툴을 사용하면 됩니다.

  3. 로컬 컴퓨터에서, 필요한 경우 자신의 포크에서 최신 변경사항을 페치(fetch)하고, 새 브랜치를 체크아웃합니다.

  4. 언리얼 엔진 소스 코드 로컬 사본에 변경사항을 만듭니다.

  5. 언리얼 엔진을 컴파일하고 픽스나 기능이 예상대로 작동하는지 확인합니다.

    이 단계는 건너뛰면 안됩니다! 특히 아주 작은 픽스를 만드는 경우, 유혹이 있을 수 있습니다. 그러나 마스터 브랜치는 업데이트를 자주 받기 때문에, 그 중 하나가 변경사항을 방해할 수 있습니다.

  1. 로컬 브랜치에 변경사항을 커밋한 다음, GitHub 저장소로 푸시해 올립니다.

풀 리퀘스트 시작

포크의 새 브랜치에 변경사항을 만들었으면, GitHub 웹사이트에서 새로운 풀 리퀘스트를 만들어 그 변경사항을 원본 Unreal Engine 저장소로 병합 요청할 수 있습니다.

  1. 웹 브라우저에서, github.com 의 저장소 홈 페이지로 이동합니다.
    일반적인 형식은 https://github.com/<username>/UnrealEngine 이며, <username> 은 GitHub 사용자명입니다.

  2. 새 브랜치가 최근 수정되었다는 알림이 표시될 수 있습니다. You may see a notification that your new branch was recently modified. 그렇다면, 녹색 Compare & pull request 버튼을 클릭할 수 있습니다.

    Compare and pull request

    그렇지 않다면, Branch 드롭다운 목록에서 변경사항이 들어있는 브랜치를 선택한 다음 New Pull Request 를 클릭합니다.

    New pull request

  3. 풀 리퀘스트 열기 페이지에서 base 드롭다운 리스트를 클릭하고 마스터 브랜치를 선택합니다. 변경사항을 병합할 브랜치가 설정됩니다.

    Select the master branch

  4. 마스터 브랜치를 선택한 상태라면, 브랜치가 Able to merge (1), 즉 병합 가능한 상태이고 페이지 하단 커밋 리스트에 (2) 브랜치에 만든 변경사항만 들어있는 것이 보일 것입니다.

    클릭하면 이미지 원본을 확인합니다.

  5. 여기서 변경사항의 의도와 범위에 대한 모든 것을 알려주셔야 합니다. 풀 리퀘스트의 간단한 설명을 설정하고, 텍스트 박스를 사용하여 보다 자세한 정보를 제공해 주세요.

  6. 변경사항을 이해하는 데 필요한 모든 정보를 제공해 주셨으면 Create pull request 버튼을 클릭합니다.

고유 번호가 할당된 풀 리퀘스트를 새로 만드는 페이지가 표시됩니다. 여기서 제목 또는 설명을 수정하거나, 대화 기록에 새 코멘트를 추가할 수 있습니다. 커스텀 브랜치에 다른 커밋이 있는 경우, 풀 리퀘스트도 자동 업데이트되어 그 변경사항을 포함합니다.

클릭하면 이미지 원본을 확인합니다.

나중에 다시 쉽게 돌아오려면:

  • URL 을 북마크에 추가하거나,

  • Epic Games Unreal Engine 저장소 페이지의 Pull Requests 탭으로 이동합니다. 필터 드롭다운 목록을 사용하면 자신의 풀 리퀘스트를 쉽게 찾을 수 있습니다.

다음 단계

에픽 엔지니어링 팀은 새로운 풀 리퀘스트를 최대한 빨리 살펴볼 것이지만, 아직 귀하가 할 일이 남아있을 수도 있습니다.

몇 가지 후속 질문을 하거나, 필요한 추가 변경사항을 요청할 수도 있습니다. 그런 경우, 풀 리퀘스트의 Conversation (대화) 탭으로 소통합니다. 풀 리퀘스트를 눈여겨 보거나 GitHub 의 이메일 알림을 구독하면 저희 연락을 놓치지 않을 수 있습니다.

저장소에 픽스가 통합되면, 풀 리퀘스트가 Merged 에서 Closed 로 설정됩니다. 정상적이고 예상되는 동작입니다. 변경사항을 통합하는 커밋에는 보통 풀 리퀘스트의 태그가 달리므로, 기여 기록이 남습니다.

태그