프로젝트 내보내기

왜 내보내나요?

원래, Godot는 프로젝트를 내보내는 수단이 없었습니다. 개발자는 적절한 바이너리를 컴파일하고 각 플랫폼으로 패키지를 수동으로 만들었습니다.

더 많은 개발자가 (그리고 심지어 비프로그래머까지) Godot를 사용하기 시작했고, 우리 회사가 동시에 더 많은 프로젝트를 시작하면서, 이것이 병목 현상인 것이 분명해 졌습니다.

PC에서

Godot로 PC에서 게임 프로젝트를 배포하는 것은 비교적 쉽습니다. Godot 바이너리를 project.godot 파일의 형태로 같은 디렉토리에 드롭하고, 프로젝트 디렉토리를 압축하면 끝입니다.

간단해 보이지만, 개발자들이 이 방식을 원하지 않는 몇 가지 이유가 있을 것입니다. 첫 째로 많은 파일을 배포하는 것은 바람직하지 않을 수 있습니다. 일부 개발자들은 호기심 많은 사용자가 게임이 만들어진 방법을 알아내는 것을 좋아하지 않을 수도 있고, 다른 개발자들이 게임이 잘 만들어지지 않은 것을 발견할 수도 있습니다. 또 다른 이유는 개발자가 특별히 컴파일된 바이너리를 선호하기 때문인데, 크기 면에서 더 작지만 더 많이 최적화되어 있으면서, 에디터와 디버거같은 도구들을 갖지 않기 때문입니다.

마침내, Godot는 추가 패키지 파일로 DLC를 만드는 간단하면서도 효율적인 시스템을 갖고 있습니다.

모바일에서

모바일 플랫폼에서의 같은 시나리오는 좀 더 나쁩니다. 이 기기로 프로젝트를 배포하기 위해, 각 플랫폼을 위한 바이너리가 지어지고, 네이티브 프로젝트에 게임 데이터와 함께 추가됩니다.

이것은 개발자가 각 플랫폼의 SDK에 익숙해져야 내보낼 수 있음을 의미하기 때문에 번거로울 수 있습니다. 각 SDK를 배우는 것을 항상 권장하는 반면, 바람직하지 않은 시간에 SDK를 강제 실행하는 것은 방해가 될 수 있습니다.

이 접근법에는 다른 문제가 있습니다: 기기들은 실행하기 위한 각기 다른 형식의 데이터를 선호합니다. 주요 예시로 텍스쳐 압축이 있습니다. 모든 PC 하드웨어는 S3TC (BC) 압축을 사용하고 10년 이상 표준화 되어 왔습니다, 하지만 모바일 기기는 텍스쳐 압축에 PVRTC (iOS)나 ETC (Android)와 같이 다른 형식을 사용합니다.

내보내기 메뉴

다른 내보내기 워크플로에서 여러번 시도한 끝에, 현재의 것이 작업에 가장 좋다는 것을 증명했습니다. 이 글을 쓰는 시점에는, 모든 플랫폼을 지원하고 있지는 않겠지만, 지원되는 플랫폼이 계속 커져 갈 것입니다.

내보내기 메뉴를 열려면, 내보내기 버튼을 클릭하세요:

../../../_images/export.png

내보내기 메뉴가 열릴 것입니다. 하지만 완전히 비어있죠. 내보내기 프리셋을 추가해야 되기 때문입니다.

../../../_images/export_dialog.png

내보내기 프리셋을 만들기 위해, 내보내기 메뉴 위에 추가… 버튼을 클릭합니다. 그러면 내보내기 프리셋을 고를 수 있는 플랫폼의 드롭 다운 목록이 열립니다.

../../../_images/export_preset.png

기본 설정은 대개 내보내기에 충분합니다, 그래서 내보내기를 만져보는 것은 보통은 필수적이지 않습니다. 하지만 많은 플랫폼에서는 내보낼 수 있도록 추가 도구 (SDKs)가 설치되어 있어야 합니다. 또한, Godot는 패키지를 만들기 위해 설치된 내보내기 템플릿이 필요합니다. 메뉴가 없으면 내보내기 메뉴가 불평하고 사용자가 문제를 해결할 때까지 해당 플랫폼으로 내보낼 수 없습니다:

../../../_images/export_error.png

그 순간, 사용자는 문서를 다시 읽고 플랫폼을 어떻게 정확히 설정하는 지에 대한 설명서를 따라야 한다는 것을 직감합니다.

템플릿 내보내기

플랫폼 설정 외에도, 내보내기 템플릿은 프로젝트를 내보내기 위해 반드시 설치되어 있어야 합니다. 이들은 웹사이트의 다룬로드 페이지에서 (ZIP 아카이브에서 이름을 바꾼) TPZ 파일에 들어있습니다.

다운로드 했다면, 에디터에서 내보내기 템플릿 관리 설정으로 설치할 수 있습니다:

../../../_images/exptemp.png

내보내기 모드

내보낼 때, Godot는 내보내고 패키지를 만들기 위한 모든 파일의 목록을 만듭니다. 내보내기 위한 3가지 다른 모드가 있습니다:

  • 프로젝트에 모든 단일 파일을 내보내기
  • 리소스 (+ 커스텀 필터)만 내보내기, 기본 값입니다.
  • 선택된 리소스 (+ 커스텀 필더)만 내보내기
../../../_images/expres.png
  • 모든 단일 파일 내보내기 - 이 모드는 프로젝트에서 모든 단일 파일을 내보냅니다. 잊어버린 것이 있는지 테스트하기는 좋지만, 개발자는 프로젝트 디렉토리에 종종 많은 관련은 없으므로, 나쁜 생각입니다.
  • 리소스만 내보내기 - 리소스만 내보냅니다. 대부분의 프로젝트에는 충분합니다. 하지만 많은 개발자가 게임에 커스텀 데이터 파일을 사용하기를 좋아합니다. 이를 보완하기 위해, 추가 확장을 위한 필터가 추가될 수 있습니다 (예를 들어, *.txt,*.csv가 있습니다).
  • 선택된 리소스만 내보내기 - 목록에서 선택된 리소스만 내보냅니다. 이것도 대부분의 프로젝트에는 과분할 정도일지 몰라도, 몇몇 경우에는 이것이 합당하다 (보통 거대한 프로젝트). 이 모드로 내보내는 것을 전부다 관리할 수 있습니다. 개별 리소스를 선택하고 필요한 모든 것을 추가하도록 종속 감지 여부를 확인합니다.
../../../_images/expselected.png

명령 행에서 내보내기

개발에 있어, 빌드를 자동화하는 것이 유용합니다, 그리고 Godot은 명령 행 매개 변수``--export``와 --export-debug를 사용하여 이를 지원합니다. 명령 행에서 내보내려면 여전히 내보내기 매개 변수를 정의하기 위한 내보내기 프리셋이 필요합니다. 명령의 기본 호출은 다음과 같습니다:

godot --export "Windows Desktop" some_name

"Windows Desktop"이라는 프리셋이 있으며 템플릿을 찾을 수 있다고 가정하면, 이것은 some_name.exe로 내보냅니다. 출력 경로는 프로젝트 경로 또는 절대 경로를 기준으로 합니다; 명령이 호출 된 디렉토리를 따르지 않습니다.

PCK 또는 ZIP 파일만 내보내도록 설정할 수도 있습니다 (여러 Godot 실행 파일에서 단일 내보내기를 사용할 수 있음). 다음과 같은 경우에 발생합니다:

  • 내보내기 프리셋이 실행 가능으로 표시되지 않고,
  • 대상 이름이 .pck이나 .zip으로 끝나는 경우.

때로는 --export 플래그와 --path 플래그를 결합하거나, 자동화된 내보내기를 위해 전용 내보내기 프리셋을 만드는 것이 유용합니다:

godot --path path/to/project --export "pck" game_name.pck