공동 제작 팁

# 학습 과정 소개

공동 제작 기능을 활용하면 여러 인원이 동시에 월드를 편집할 수 있기 때문에 매우 편리합니다. 하지만 함께 작업을 진행하다 보면 가끔 오류가 발생할 때도 있습니다. 메이플스토리 월드 팀은 이와 같은 오류를 최소화하고 메이커의 안정성을 높이기 위해 지속적으로 노력하고 있습니다. 이번 시간에는 공동 제작 과정에서 알아두면 좋은 팁을 몇 가지 소개하고자 합니다.

##### 참고 가이드

[공동 제작](/docs/?postId=670)

# 개발용 월드와 출시용 월드의 구분

개발용 월드에서 필요한 작업을 끝낸 후, 출시용 월드로 옮겨 출시하는 것이 좋습니다. 게임 제작은 크리에이터가 생각했던 대로 한 번에 성공적으로 진행되지는 않습니다. 지속적인 테스트와 오류 수정을 반복해야 비로소 안정적으로 동작하는 게임을 만들 수 있습니다. 여러 명이 공동 제작하는 월드에서 오류가 발생한다면 문제가 해결될 때까지 다른 모든 사람이 제작을 멈춰야 할 수도 있기 때문에 더 불편할 수 있습니다. 따라서 개발용 월드에서 충분한 수정을 거친 후에 출시용 월드로 옮기면 공동 제작의 안정성을 높일 수 있습니다.

개발용 월드를 출시용 월드로 옮기는 두 가지 방법을 소개합니다.

## mod File Import

첫 번째 방법은 mod 파일을 직접 Import 하는 것입니다.

  1. 개발용 월드에서 File - Export to File을 선택하여 mod 파일을 생성합니다. [png](16878479936495e1624fa89b04bc7bab4bedf7ce1549d)
  2. 출시용 월드에서 File - Import to File을 선택하여 1에서 만들었던 mod 파일을 불러옵니다. [png](16878482360306da1f21543e6403fb3242ca45575a9de)



## 개인 월드 - 그룹 월드 이전

현재 공동 제작에서 UI나 맵 관련 작업을 진행하다 보면 예상치 못한 오류가 발생할 수 있습니다. 안정적인 작업을 위해서는 개발용 월드에서 따로 진행한 이후에 공동 제작 월드로 옮기는 것이 좋습니다. 방법은 아래와 같습니다.

  1. 공동 제작에 참여한 그룹원이 자신의 개인 월드에서 작업을 진행한 뒤 저장합니다.
  2. 에서 만들기 - 그룹 월드를 선택합니다. 여기에서 개인 월드 가져오기를 눌러 1에서 저장했던 개인 월드를 가져옵니다. [png](1665579113810cdf6c5f780c24ab2be8c444b2093d1ec) "mod File을 직접 Import" 하는 것보다는 "개인 월드를 그룹 월드로 이전"하는 방법이 더 안정적인 편입니다. 이 점을 참고하여 공동 제작에 활용해 봅시다.



다만, 이와 같은 작업 방식은 출시용 월드에 개발용 월드 파일을 덮어씌우는 것이므로 이 과정의 진행 도중에는 다른 그룹원의 작업을 잠시 중단해야 하는 불편함이 있습니다. 메이플스토리 월드 팀에서는 이러한 불편함을 개선하기 위해 노력하고 있으니 크리에이터분들의 양해 부탁드립니다.

> 더 알아보기 패키지 기능을 활용해 개인 작업물을 공동 제작 월드로 옮길 수 있습니다. 패키지에는 Workspace의 모델, 스크립트 컴포넌트, 데이터 셋이 포함됩니다. [MSW 패키지의 활용](/docs/?postId=647) 가이드를 참고해봅시다. 

# UI 그룹 분리

UI를 제작할 때는 용도에 따라 미리 그룹을 분리해두는 것이 좋습니다. UI는 가장 하위의 Entity라도 누군가 Check Out을 했다면, 그룹 전체에 Lock이 걸리기에 다른 그룹원이 접근할 수 없어 작업 효율성이 떨어질 수 있습니다. 또한 안정성 확보를 위해서라도 그룹을 세분화해두는 것이 유용합니다. [png](1660025984828228f10a19c6d4f54b8bee1272d70c009)

> 더 알아보기 UI 그룹을 관리하는 방법은 [UI 에디터 활용과 제어](/docs/?postId=120) 가이드를 참고해봅시다. 

# Check In

공동 제작 월드에서 작업하던 엔티티를 Check In을 하지 않고 월드를 이탈하면 수정 사항이 전체에게 반영되지 않습니다. 따라서 공동 제작 중에는 수시로 Check In 하는 것이 좋습니다. 특히 맵 엔티티를 배치하거나 수정했을 때는 별도의 저장 안내가 되지 않으므로 반드시 Check In 이후에 종료해야 합니다. 또한 UI 작업을 진행할 때도 수시로 Check In 할 것을 권장합니다.

개별 Check In이 번거롭다면 아래와 같이 Bulk Check In 기능을 활용할 수 있습니다.

  *  Scene에서 Ctrl + S를 누릅니다.
  * 또는  Workspace -  My Desk를 우클릭하여 Bulk Check In을 선택할 수 있습니다.



# 기타

## Check Out 정보 갱신

메이커에서 플레이 테스트를 하다가 인스턴스 맵으로 이동하면 Hierarchy 탭에 아무것도 보이지 않는 현상이 발생할 수 있습니다. 이때는 Hierarchy 탭을 닫았다가 다시 열면 정상화됩니다. [png](16619352961684eeaecab45624c77916199244e9ba2dd) Workspace나 UI에서도 유사한 현상이 발생할 수 있습니다. 이때 폴더를 접었다 펴면 Check Out 정보가 갱신됩니다.

## 새로운 월드로 이전

공동 제작 중 아래와 같은 현상이 발생하면 해당 월드에 심각한 문제가 발생할 가능성이 높습니다.

  * 스크립트 에디터에 게임 UI가 보임
  * UI를 수정하고 Check In 했는데도 작업 내용이 반영되지 않음



위와 같은 현상이 나타나면 즉시 작업을 중단하고 해당 월드를 새로운 월드로 Import 하여 작업을 재개하는 것이 좋습니다.

## 공동 제작 연결 끊김

"공동 제작 서비스와 연결이 끊어졌습니다. 다시 메이커로 입장하십시오."라는 알림이 출력되면 클라이언트를 완전히 종료하고 다시 접속해야 정상적으로 작동합니다. 월드에서만 나갔다 들어오면 같은 문제가 반복될 수 있습니다.

## 컴포넌트 테스트

버그가 염려되는 Component를 테스트할 때, 제작자 본인의 Name이나 ppsn을 활용하여 Component Enable을 설정하면 다른 그룹원의 작업에 미치는 영향을 최소화할 수 있습니다.
    
    
    @Component
    script CreatorOnlyActivator extends Component
        @ExecSpace("ServerOnly")
        method void OnBeginPlay()
            if _UserService.LocalPlayer.Name == "CreatorName" then
                 TestComponent.Enable = true
            end
        end
    end
    

## 데이터 스토리지 초기화

File - Setting - 만들기 - 데이터 스토리지 초기화 기능은 개인 월드와 마찬가지로 현재 제작자 본인의 데이터만 초기화합니다. 다른 그룹원의 데이터까지 모두 초기화하지는 않습니다. [png](16600296546432b64a06912ec46eca74d9186cc608b7f)

## 에러 무시하고 테스트하기

File - Setting - 만들기 - 스크립트 - 문법 오류 시에 플레이 불가 체크를 해제하면 다른 그룹원의 스크립트 오류를 무시하고 플레이 테스트를 진행할 수 있습니다. [png](16600298053242d0f185be25a456f8e83a87919e6ba79)

> 주의사항 이 기능을 공동 제작 시 지속해서 사용하는 것은 잠재 위험을 누적시킬 수 있습니다. 오류를 무시함으로써 반드시 수정해야 할 문제를 수정하지 못하게 되어 월드 출시 이후 심각한 버그가 발생할 수 있습니다. 그뿐만 아니라 제작 과정에서 무시한 오류와 연관된 다른 작업이 문제의 오류처럼 보여 작업을 지체시킬 수 있습니다. 메이플스토리 월드는 가급적 오류를 무시하지 않고 오류의 원인을 찾아 수정하는 것을 권장하며, 공동 제작 시 필수 불가결하게 사용해야 하는 경우에만 임시로 사용하는 것이 바람직합니다.

## 맵 이름 설정

맵 이름은 영어로 설정해야 합니다.