> For the complete documentation index, see [llms.txt](https://jjlee.gitbook.io/python-pygame_zero/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jjlee.gitbook.io/python-pygame_zero/appendix/packaging.md).

# 게임을 단 한 개의 실행파일로 패키징 하기

**먼저 이 기능은 일반 공식 Mu(이하 뮤) 에디터에서는 제공되지 않으며, 저자가 개발하고 있는** [**커스텀 버전의 뮤 에디터**](https://github.com/roboticsware/mu/releases)**에서만 가능함을 먼저 알린다.**

사용방법은 간단하다. 먼저, *내가 만든 게임이 다른 사람에게 배포해도 될 정도로 충분히 완성이 되었다고 생각하면, 에디터에 내장된 해당 기능을 이용해 게임제작시 필요했던 소스파일, 추가 모듈, 리소스들(이미지, 사운드, 폰트 등)을 다 모아 게임을 단 한개의 실행파일 형태(윈도우즈 플랫폼의 경우, exe파일)로 자동으로 만들 수 있다. 이런 형태가 되어야만 내 게임을 다른 이들에게 배포하기도 쉽고, 게임 사용자들 입장에서도 단 한개의 실행파일을 더블클릭 함으로써 게임을 즐길 수 있어 간편하다.*

예를들어 [4장](/python-pygame_zero/flappy_bird.md)에서 함께 만들어본 플래피버드 게임의 패키징을 시도해 보자. 먼저, 현재 패키징 하려는 게임 소스파일의 위치가 어떻게 되어있는지를 살펴보길 바란다. 에디터 설치 시 에디터가 파이게임제로의 기본폴더로 설정한 "계정명/mu\_code" 에 위치할 수 있고 물론 이 경우에도 그대로 패키징을 시도할 수는 있다. 그러나, **게임에는 전혀 관련없는 파일들이 함께 패키징돼 불필요한 용량만 커지는거 외에 아무 득이 없기 때문에 가능한한 패키징시 정확하게 게임에 필요한 파일과 리소스들만을 패키징 하는게 젤 용량의 낭비가 없는 방법일 것이다.** 이미 처*음 게임개발 시작시부터 관련 파일들을 별도의 폴더로 정리해서 개발을 시작했으면 그대로 패키징을 시도하면 될 것이고, 아닌 경우는 이제서야 따로 모아 정리해도 된다.* 다음과 예시는 플래피버드 게임에 사용되는 소스파일과 리소스들만 별도 폴더 안에 정리한 것이다.&#x20;

<figure><img src="https://949761892-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZOoo6AnroO2vGSvpOKw7%2Fuploads%2F11KUWNvFAd5EZl6X5dn4%2Fimage.png?alt=media&amp;token=93c92cd6-ed18-4626-97af-efd9dc11f62c" alt=""><figcaption></figcaption></figure>

폴더로 정리될시 주의할 점이 하나 있는데, [4.1절](/python-pygame_zero/flappy_bird/5.1_background.md) 참고사항에서 언급된 리소스들(**이미지, 폰트, 효과음, 배경음**)을 담아 놓는 하위폴더들의 이름은 이미 정해진 이름들(**앞에서부터 순서대로 각각 images, fonts, sounds, music)**&#xB85C;만 생성해야 한다는 파이게임제로 라이브러리가 갖고 있는 기본제약사항을 준수해서 생성되어야만 한다는 것이다.&#x20;

이제 준비는 끝났고, 이후 방법은 아주 단순한데 아래 이미지처럼 *패키징 할 게임의 소스파일탭에 포커스가 되어있는 상태(만약, 여러탭을 열어놓았을 경우)에서* *"**패키징**" 이란 메뉴아이콘을 누르기만 하면 된다.*

<figure><img src="https://949761892-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZOoo6AnroO2vGSvpOKw7%2Fuploads%2FzhZ0v3CoM8z9sZenef7H%2Fimage.png?alt=media&amp;token=61704bb6-8f32-4168-aed0-d15126b3528d" alt=""><figcaption></figcaption></figure>

버튼을 누름과 동시에 패키징 작업이 진행될 것이고, 다음의 이미지처럼 최종적으로 "... **completed successfully**" 라고 패키징이 성공적으로 끝났다면, 소스파일이 저장되어 있던 곳에 **dist 라는 폴더**가 생성되어 있는 것을 확인할 수 있고, 그 안에 단 1개의 실행파일로 패키징된 플래피버드 게임을 확인할 수 있을 것이다.

<figure><img src="https://949761892-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZOoo6AnroO2vGSvpOKw7%2Fuploads%2FldH2VFSWZIlM8FoSe24Z%2Fimage.png?alt=media&amp;token=453b50d6-71c0-40b9-a6f9-b72d54f2a88b" alt=""><figcaption></figcaption></figure>

<figure><img src="https://949761892-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZOoo6AnroO2vGSvpOKw7%2Fuploads%2FJkt9pfJ6N2nP5kfo8I8L%2Fimage.png?alt=media&amp;token=bd88dfc4-b9ee-4590-a22d-46bd8a50cf09" alt=""><figcaption></figcaption></figure>
