Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

프로젝트 내보내기

왜 내보내나요?

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

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

PC에서

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

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

마지막으로, Godot는 추가 패키지 파일로 DLC를 만드는 간단하면서도 효율적인 :ref:`시스템 <doc_exporting_pcks>`을 갖고 있습니다.

모바일에서

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

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

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

내보내기 메뉴

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

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

../../_images/export.webp

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

../../_images/export_dialog.webp

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

../../_images/export_preset.webp

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

../../_images/export_error.webp

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

메뉴 하단에 있는 버튼을 사용하면 몇 가지 다른 방법으로 프로젝트를 내보낼 수 있습니다.

  • 모두 내보내기: 정의된 모든 사전 설정에 대해 프로젝트를 재생 가능한 빌드(Godot 실행 파일 및 프로젝트 데이터)로 내보냅니다. 이 작업을 수행하려면 모든 사전 설정에 **내보내기 경로**가 정의되어 있어야 합니다.

  • 프로젝트 내보내기: 선택한 사전 설정에 대해 프로젝트를 재생 가능한 빌드(Godot 실행 파일 및 프로젝트 데이터)로 내보냅니다.

  • PCK/ZIP 내보내기: 프로젝트 리소스를 PCK 또는 ZIP 패키지로 내보냅니다. 이것은 플레이 가능한 빌드가 아니며 Godot 실행 파일 없이 프로젝트 데이터만 내보냅니다.

템플릿 내보내기

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

다운로드 했다면, 편집기에서 내보내기 템플릿 설치 옵션을 사용하여 설치할 수 있습니다:

../../_images/export_templates.webp

리소스 옵션

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

  • 프로젝트의 모든 리소스 내보내기

  • 선택한 씬 내보내기 (종속된 리소스 포함)

  • 선택한 리소스 내보내기 (종속된 리소스 포함)

  • 프로젝트의 모든 리소스 내보내기

  • 데디케이티드 서버용으로 내보내기

../../_images/export_resources.webp

프로젝트의 모든 리소스 내보내기 옵션으로 프로젝트의 모든 리소스를 내보낼 수 있습니다. 선택한 씬 내보내기선택한 리소스 내보내기를 사용하면 각각 씬 또는 리소스의 목록이 나타나며, 내보내고 싶은 씬 혹은 리소스를 선택하시면 됩니다.

../../_images/export_selected.webp

**아래에 체크된 리소스를 제외하고 프로젝트의 모든 리소스 내보내기**는 명시된 대로 정확하게 수행되며, 목록에서 선택한 항목을 제외한 모든 리소스가 내보내집니다.

**전용 서버로 내보내기**는 프로젝트에서 모든 시각적 요소를 제거하고 자리 표시자로 대체합니다. 여기에는 Cubemap, CubemapArray, Material, Mesh, Texture2D, Texture2DArray, Texture3D가 포함됩니다. 파일 목록으로 이동하여 보관하려는 특정 시각적 리소스를 지정할 수도 있습니다.

참고

이름이 마침표로 시작하는 파일과 폴더는 내보낸 프로젝트에 포함되지 않습니다. 이는 ``.git``와 같은 버전 제어 폴더가 내보낸 PCK 파일에 포함되는 것을 방지하기 위해 수행됩니다.

리소스 목록 아래에는 설정할 수 있는 두 개의 필터가 있습니다. 첫 번째는 .txt, .json.csv``와 같은 비리소스 파일을 프로젝트와 함께 내보낼 있도록 허용합니다. 번째 필터를 사용하면 모든 파일을 수동으로 선택 취소하지 않고도 특정 유형의 모든 파일을 제외할 있습니다. 예를 들어 ``.png 파일입니다.

굽기 구성

내보내기 구성은 프로젝트 디렉터리에서 찾을 수 있는 두 개의 파일에 저장됩니다.

  • export_presets.cfg: 이 파일에는 대부분의 내보내기 구성이 포함되어 있으며 버전 제어에 안전하게 커밋할 수 있습니다. 여기에는 일반적으로 비밀로 유지해야 할 사항이 없습니다.

  • .godot/export_credentials.cfg: 이 파일에는 비밀번호 및 암호화 키와 같이 기밀로 간주되는 내보내기 옵션이 포함되어 있습니다. 일반적으로 자신이 수행 중인 작업을 정확히 알지 않는 한 버전 관리에 전념하거나 다른 사람과 공유해서는 안 됩니다.

자격 증명 파일은 일반적으로 버전 제어 시스템 외부에 보관되므로 프로젝트를 새 컴퓨터에 복제하면 일부 내보내기 옵션이 누락됩니다. 이 문제를 해결하는 가장 쉬운 방법은 파일을 이전 위치에서 새 위치로 수동으로 복사하는 것입니다.

명령줄에서 내보내기

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

godot --export-release "Windows Desktop" some_name.exe

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

출력 파일 확장자는 Godot 내보내기 프로세스에서 사용되는 것과 일치해야 합니다:

  • Windows: .exe

  • macOS: .app 또는 .zip``(또는 macOS *에서* 내보낼 경우 ``.dmg)

  • Linux: 모든 확장(없음 포함). ``.x86_64``는 일반적으로 64비트 x86 바이너리에 사용됩니다.

  • HTML5: .zip

  • 안드로이드: .apk

  • iOS: .zip

PCK 또는 ZIP 파일 내보내도록 구성하여 하나의 내보낸 메인 팩 파일을 여러 Godot 실행 파일과 함께 사용하도록 할 수도 있습니다. 이럴 때에도 명령줄에 내보내기 프리셋 이름을 지정해야 합니다.

godot --export-pack "Windows Desktop" some_name.pck

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

godot --path /path/to/project --export-release "Windows Desktop" some_name.exe

더 보기

명령줄에서 Godot를 사용하는 방법에 대한 자세한 내용은 :ref:`doc_command_line_tutorial`를 참조하세요.

PCK 대 ZIP 팩 파일 형식

두 포맷은 각각의 장단점을 갖고 있습니다. PCK는 기본 설정이며 대부분의 상황에서 사용이 권장되는 포맷입니다. 하지만 경우에 따라 ZIP을 사용하는 것이 좋은 경우도 있습니다.

PCK 형식:

  • 압축되지 않은 형식입니다. 파일 용량이 크지만 읽기/쓰기 속도가 빠릅니다.

  • 사용자의 운영 체제에 일반적으로 갖고 있는 툴을 사용하여 읽고 쓸 수 없지만, PCK 파일의 압축을 풀고 만드는 서드 파티 툴이 있습니다.

ZIP 형식:

  • 압축 형식입니다. 파일의 용량이 작지만 읽기/쓰기가 느립니다.

  • 일반 사용자가 갖고 있는 툴로 읽기 및 쓰기가 가능합니다. 때문에 모딩이 쉬워지는 장점이 있습니다 (패키지, 패치, 모드 내보내기도 참조하세요).

경고

알려진 버그로 인해 ZIP 파일을 팩 파일로 사용할 때 내보낸 바이너리가 이를 자동으로 찾아 사용하려고 시도하지 않습니다. 따라서 플레이어가 더블 클릭하거나 터미널에서 실행하여 프로젝트를 실행할 수 있는 런처 스크립트를 만들어야 합니다:

:: launch.bat (Windows)
@echo off
my_project.exe --main-pack my_project.zip

# launch.sh (Linux)
./my_project.x86_64 --main-pack my_project.zip

런처 스크립트를 이진 파일과 동일한 폴더에 저장하세요. Linux의 경우, 런처 스크립트가 chmod +x launch.sh 명령을 사용할 권한이 있는지 확인해야 합니다.