컴파일러 배치 파일 / 스크립트
GameMaker 컴파일러는 Windows의 배치 파일이나 macOS 및 Linux의 셸 스크립트를 프로젝트 디렉토리와 각 확장 디렉토리에 배치할 수 있도록 합니다.
배치 파일 위치
- 스크립트 파일은 프로젝트 디렉토리의 루트에 배치할 수 있으며, 이때 프로젝트의
.yyp
파일과 함께 위치합니다. - 스크립트 파일은 확장 디렉토리에도 배치할 수 있으며, 경로는 다음과 같습니다:
<project_directory>/extensions/<extension_folder>/
확장 버전의 스크립트 파일이 먼저 실행되고, 루트 버전이 마지막에 실행됩니다. 확장 실행 순서는 제어할 수 없으므로, 확장 개발자는 한 확장의 스크립트가 다른 확장의 스크립트에 의존하지 않도록 해야 합니다.
실행
특정 이름을 가진 스크립트 파일은 위에서 설명한 디렉토리에 배치되면 컴파일 과정의 다양한 시점에서 실행됩니다. 실행 순서는 다음과 같습니다:
Windows 배치 파일 이름 | macOS/Linux 셸 스크립트 이름 | 설명 |
---|---|---|
pre_project_step.bat | pre_project_step.sh | 자산 컴파일러가 프로젝트 파일을 로드하기 전에 실행됩니다. |
post_project_step.bat | post_project_step.sh | 자산 컴파일러가 프로젝트 파일을 로드한 후에 실행됩니다. |
pre_run_step.bat | pre_run_step.sh | 게임을 테스트할 때만 실행됩니다. 게임 배포가 시작되기 전에 실행됩니다. |
pre_build_step.bat | pre_build_step.sh | 자산 컴파일러가 게임을 빌드하기 전에 실행됩니다. |
post_textures.bat | post_textures.sh | 게임의 텍스처가 생성된 후에 실행됩니다. 이 단계에서 게임 텍스처를 수동으로 최적화할 수 있습니다. |
post_build_step.bat | post_build_step.sh | 자산 컴파일러가 게임 빌드를 시작한 후에 실행됩니다. |
remote_build_step.bat | remote_build_step.sh | 원격 기계에서 실행됩니다. Windows 기계에서 macOS/iOS/tvOS 또는 Ubuntu를 위해 원격으로 컴파일할 때 사용됩니다. |
pre_package_step.bat | pre_package_step.sh | 최종 패키징 단계 전에 실행됩니다. 모든 파일이 준비되었지만 최종 ZIP 파일이나 스토어 패키지가 생성되기 전입니다. |
post_package_step.bat | post_package_step.sh | 패키지/실행 파일을 생성할 때만 실행됩니다. 최종 패키징 단계가 완료된 후 실행됩니다. |
post_run_step.bat | post_run_step.sh | 게임을 테스트할 때만 실행됩니다. 게임이 준비되고 실행될 준비가 되었을 때 실행됩니다. |
플랫폼별 단계
Windows 배치 파일 이름 | macOS/Linux 셸 스크립트 이름 | 설명 |
---|---|---|
pre_gradle_step.bat | pre_gradle_step.sh | Android에서 실행됩니다. Android 도구에 필요한 파일이 생성된 후 Gradle이 호출되기 전에 실행됩니다. |
이 스크립트 파일은 모든 대상 플랫폼에서 빌드할 때 지원됩니다.
확장 버전 및 옵션 환경 변수
배치 파일/셸 스크립트에서 확장 버전 및 확장 옵션을 가져올 수 있습니다:
- 확장 옵션:
YYEXTOPT_<ExtensionName>_<OptionName>
- 버전 번호:
GMEXT_<ExtensionName>_version
여기서 <ExtensionName>
은 사용 중인 확장의 이름으로 대체합니다.
확장 스크립트 비활성화
여러 개의 스크립트를 실행하는 확장을 사용하는 경우, 예를 들어 Steamworks와 GDK를 사용할 때, GDK로 내보낼 때 Steamworks를 비활성화하고 그 반대의 경우도 마찬가지입니다.
이와 관련된 내용은 "확장 비활성화 방법"을 참조하세요.
활용 예제
// pre_project_step.bat 예제
echo "프로젝트 파일 로드 전 작업 시작"
// post_project_step.sh 예제
echo "프로젝트 파일 로드 후 작업 시작"
// pre_run_step.bat 예제
echo "게임 실행 전 준비 중"
// post_textures.bat 예제
echo "텍스처 최적화 중"
// post_package_step.sh 예제
echo "패키징 완료, 최종 파일 준비 중"