파이게임 자습서
윈도우즈 실행파일 만들기
작성 피트 쉬너스
pete@shinners.org
Revision 1.2, January 28th, 2002
한글판 johnsonj 2005.05.02
들어가는 말
pygame으로 게임을 만들 때 한가지 단점은 게임에 의존성이 엄청나게 요구된다는 것이다. 게임을 하려면 많은 라이브러리가 설치되어 있어야 한다. 유닉스 사용자라면 상황이 그렇게 나쁘지는 않다. 왜냐하면 대부분의 유닉스 배포본에는 독자적인 꾸러미와 의존 관리 시스템이 함께 따라 오기 때문이다. 윈도우즈에서는 이와 같지 않아서, 그냥 파이썬 소스를 내려 받아 게임을 실행하기에는 좀 어렵다.
가장 좋은 해결책은 게임을 실행하는데 필요한 파일들을 모두 모아 모음집을 만드는 것이다. 파이썬으로 이런 일을 하려면 파일이 많이 필요하다. 이 문서는 독립 버전의 게임을 만드는데 필요한 도구들을 보여준다.
도구를 내려받기
제일 먼저 할 일은 도구들을 내려받아 실행파일을 구축하는 것이다. 탁월한 PY2EXE 도구를 사용하겠다. 이 꾸러미는 distutils를 확장하여 파이썬 코드를 실행파일로 바꾼다. 최신 버전은 PY2EXE페이지에서 내려 받을 수 있다. 간단한 윈도우즈 설치기를 사용하여 설치를 관리한다.
PY2EXE를 사용하려면 간단한 distutils 스크립트를 만들어 실행할 필요가 있다. 다음과 같이 여러분이 사용할 스크립트를 만들어 제시한다. pygame2exe.py.
스크립트 구축하기
특정한 게임에 작동하도록 만들기 위하여 pygame2exe.py 스크립트에는 바꾸고 싶은 일단의 변수들이 있다.
project_name = "aliens" # 실행파일(exe) 이름
project_script = "aliens.py" # 바탕 .PY의 이름
icon_file = "aliens.ico" # .ICO의 이름
optimize = 2 # 0, 1, 또는 2; 예를 들면 -O 그리고 -OO
dos_console = 0 # 도스 박스에서 실행하려면 1을 설정한다
data_directories = ['data'] # 사용된 데이터 디렉토리
extra_modules = [] # 빠진 모듈 추가
대부분의 옵션은 그 자체로 잘 설명된다. 처음 게임을 테스트 할 때라면, dos_console 값을 1로 설정하고 싶을 것이다. 이렇게 하면 에러가 도스 콘솔에 인쇄되기 때문이다. 게임을 배포할 때라면 그 값을 0으로 설정하고 싶을 것이다. 그러면 도스 프롬프트가 열리지 않고 게임이 실행될 수 있다.
게임이 실행되지 않고 빠진 모듈에 관하여 에러를 맞이하면, 빠진 모듈의 이름을 extra_modules이라는 이름의 리스트에 추가하면 된다. 예를 들어, 게임이 surfarray 모듈을 사용한다면, surfarray 모듈은 Numeric 모듈에 의존하지만, 어떤 경우에는 PY2EXE가 Numeric 모듈이 의존성에 걸리는지 탐지하기가 어려울 수 있다. 빠진 Numeric 모듈을 이 리스트에 추가하면 모든 것이 제대로 될 것이다.
설정을 모두 마치고, 이 스크립트를 실행하기만 하면 알아서 모든 일을 해 줄 것이다. 최종적으로 나온 실행파일과 DLL들은 프로젝트 디렉토리 안에 놓여질 것이다. 이 프로젝트 디렉토리는 이름이 "dist"인 디렉토리 안에 놓여진다.
최종 디렉토리에서 .PY 소스 파일을 전혀 발견할 수 없다. 그 이유는 필요한 파이썬 소스 파일이 모두 바이트 코드로 실제 실행 파일로 압축되었기 때문이다.
icon_file 변수는 .ICO 파일의 선택적인 이름으로서 실행 파일에 사용된다. 빈 채로("") 두어도 좋으며 그러면 무시될 것이다. 또 icon_file이, 특히 windows9x에서 잘 작동하지 않으면 경고를 맞이한다.
data_directories는 최종 게임 디렉토리에 복사되어 들어갈 경로들을 담은 리스트이다. 출시된 게임은 대부분 그래픽/사운드/폰트 자원을 요구할 것이다. 이 때 그 자원들을 올바른 위치에 복사하는데 도움을 준다.
모든 게임 자원과 파일이 "dist" 폴더의 최종 디렉토리에 복사되었는지 다시 점검할 필요가 있다. 복사가 완료되었고 게임이 작동하면, 전체 디렉토리를 .ZIP 파일로 압축하여 친구들에게 나누어 주면 된다. 파이썬이나 SDL이 사용자의 머신에 설치되어 있을 필요가 없다. 예전 버전의 (예를 들어 1.5.2 버전) 파이썬을 가지고 있다고 할지라도, 그것이 게임에 방해가 되지는 않는다.
최종 게임 디렉토리를 아무거나 골라도 안전하고 게임에서 사용될 것 같지 않다고 예상되는 "PYD" 파일을 모두 지워도 좋다. 예를 들어, 게임에서 조이스틱을 사용하지 않을 경우, "joystick.pyd"를 지우면 게임 크기가 좀 더 작아질 수 있다.
실제 설치기를 만들기
게임을 .ZIP 파일로 배포해도 아무 문제가 되지 않는다. 그러나 보통 더 깔끔한 방법은 설치기를 만들어서 게임이 자동으로 풀릴 뿐만 아니라, 시작 메뉴 아이콘을 설정하고 설치 제거 옵션을 추가하는 것이다. 이렇게 하려면 윈도우즈 용으로 나온 수 많은 설치 도구중의 하나를 사용하면 된다. 무료 설치기가 많이 있으며, 어떤 것은 아주 품질이 높다.
설치 도구를 만드는데 INNO Setup을 추천하고, 꾸러미를 환경구성하는데 ISTool을 추천한다. 본인은 윈도우즈용으로 설치가능한 파이게임 꾸러미를 만들 때 이 도구를 모두 사용한다.