메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

IT/모바일

파이썬으로 게임 개발하기

한빛미디어

|

2002-03-08

|

by HANBIT

16,468

저자: 스테판 피긴스, 역 전순재

궁지에 몰려도 강한자는 게임을 계속한다. 그들은 적어도 게임을 포기하지는 않는다. 기술 산업 전반이 슬럼프에 빠져 있지만 컴퓨터 게임 산업은 여전히 꿋꿋하게 버티어내고 있다. 필자는 이웃에 사는 야레드(Jared)씨를 부러워하기 시작했다. 야레드(Jared)씨는 시에틀에 있는 게임 회사에 다니는 아티스트이다. 이번 기사에서는 아마도 컴퓨터 게임에 대하여 약간 배워볼 시간이 될 것 같다. 파이썬 프로그래머가 게임을 시작하기에 가장 좋은 곳은 파이게임(PyGame)이 아닐까 한다. 파이게임(PyGame)이란 파이썬에다 Simple DirectMedia Layer (SDL)를 바인딩해 놓은 것이다.

SDL은 Loki Software사가 "Civilization: Call to Power"를 비롯한 다른 게임들을 리눅스로 이식하는데 사용하였던 도구이다. SDL은 교차 플랫폼 도구로서 윈도우와 리눅스 모두에서 사용할 수 있다. 안타깝게도 SDL로 돈을 벌기에는 어려울 수도 있다. 게임 박스를 직접적으로 개발 하지 못할 경우도 있기 때문이다. SDL은 오픈 소스 라이센스로서 프로그래머들에게 무료로 주어진 선물이기 때문에 세가(Sega)나 소니(Sony) 소프트웨어 개발 키트같은 독점 라이센스와는 잘 어울리지 않는다. 그렇지만 SDL은 리눅스로 이식되어 소니 플레이스테이션2와 세가 드림캐스트(Sega Dreamcast)에서 실행된다. 야레드(Jared)씨는 필자가 리눅스를 사용하는 것을 알고는 흥미로워 했다. 그의 말에 의하면 리눅스는 그가 다니는 회사에서 개발자들의 선택사항에 드는 운영체제라고 한다. 게임분야 외에도, SDL은 엠펙 연주기, 미디 편집기, 그리기 프로그램를 작성하는데 사용되어 왔다. 내가 가장 좋아하는 SDL 애플리케이션 중에는 음악 라바 램프[1]Synaesthesia가 있는데, 연주하는 동안 음악이 그래픽으로 표현된다. 게임분야 이외에도 SDL의 미래는 밝아 보인다. 그리고 여기에 파이썬을 추가한다면 게임 프로그래밍을 신속하게 배울수 있는 탁월한 도구를 얻은 셈이다.

대부분의 파이게임(PyGame) 프로젝트는 크기가 작고, 간단한 이차원 총쏘기 놀이나 전략 게임들이기 때문에 공부해서 테스트해보기 쉽다. SDL처럼 파이게임(PyGame)은 게임이 가지는 것 만족을 우리에게 준다. 만약 좀더 친근하게 보이는 것으로 게임 프로그래밍을 연구해 보고자 한다면, 멀티미디어 파일 브라우저인 프랭크 라이저(Frank Raiser)의 PyFile을 살펴 보거나 또는 이미지 뷰어인 리안 쿨라(Ryan Culla)의 IMGV를 살펴 볼 것을 추천한다. 파이게임(PyGame) 관리자인 피트 쉬너스(Pete Shinners)는 알고리즘과 효과들을 여러분 프로젝트에 사용할 수 있도록 코드를 목록화하여 운영하고 있다.

게임 개발뿐만 아니라 다른 애플리케이션 개발에 도움이 될만한 또다른 파이게임(PyGame) 프로젝트는 PyUI이다. 세언 라일리(Sean Riley)는 2001년 3월에 사용자 인터페이스 라이브러리인 PyUI를 선언하였다. PyUI는 순수하게 파이썬으로 작성되었으며 파이게임(PyGame)을 그의 2D 렌더러(renderer)로 사용한다. PyOpenGL로 약간의 3D를 지원하며 Python Image Library는 이미지들을 만드는 데에 사용된다. 현재 배포 버전 0.7로는 매끄러운 처리가 어렵고 문서가 빈약하지만 여러 예제들을 포함하고 있다. 이 예제들은 탐험을 계속할 시작점이 될 것이다.

PyUI는 파이게임뿐만 아니라 여러 렌더러에 대하여 전방을 담당해 준다. 버전 0.7은 Tk를 지원하고 Win32 GDI 렌더러 역시 약간 지원한다. 그러나 주된 용도는 이식적인 사용자 인터페이스를 파이게임에 만들기 위한 것이다. 파이게임에 의해서 묘사되기 때문에 PyUI는 다른 사용자 인터페이스와는 상당히 다르게 보인다. 파이게임과 함께라면 여러분의 예술적인 표현을 마음껏, 어쩌면 너무나도 자유분방하게 펼칠 수 있다. 개발자들은 보통 애플리케이션을 작성할 때 사용자들이 인정해줄 만한 것을 디자인하고 싶어한다. PyUI라면 재미있게 탐험해 볼 수 있을 것이다.

마지막으로, 게임 프로그래밍에 뛰어들 준비가 되었다면 PyGame에 기반을 둔 여러 게임 엔진들을 사용할 수 있다: Myst-류의[2] 게임을 위한 Pyzzle과 그리고 Civilization과 같은 등좌표(isometric)[3] 게임을 위한 PyPlace가 그것이다. 이러한 게임들은 모두 파이게임 프로젝트 페이지에 등록되어 있다. 작업중에 있는 또 다른 엔진 하나는 셀-기반(cel-based)[4] 애니메이션 엔진인 AutoManga이다. 파이썬을 넘어서면 SDL 게임 개발을 위한 더욱 흥미진진한 도구들이 여러분들을 기다리고 있다. 그리고 이것들은 여러분의 게임 프로그래밍 경력에 멋진 시작점이 되어 줄 것이다.
[1] lava lamp : 신비한 색상으로 계속해서 변하면서 빛을 내는 등잔불
[2] Myst라는 게임의 느낌이 나는 : 어드벤처와 퍼즐을 섞어 놓은 게임류
[3] isometric : x좌표와 y좌표가 같은 위치에 있는
[4] cel : 완성된 그림 한 장을 셀(cell)이라 하는데 이 셀들을 동시에 여러 개 겹쳐서 애니메이션을 표현하는 기법
TAG :
댓글 입력
자료실

최근 본 책0