파이썬-파이게임 제로 (순한맛)
매운맛으로 공부하기Mu에디터 커스텀 버전 다운로드Mu에디터 한글화 프로젝트 참여책관련 Q&A
  • 게임제작하며 프로젝트 기반으로 파이썬 배우기 (순한맛)
  • 1. 파이게임 제로(pygame zero) 라이브러리
  • 2. 개발환경 구축
  • 3. Hello World 프로그램에서 시작하자
  • 4. 게임 루프의 이해
  • 5. 플래피 버드(Flappy bird) 게임 만들기
    • 5.1 화면에 배경 이미지(오브젝트) 나타내기
    • 5.2 화면에 플래피버드(오브젝트) 나타내기와 움직이기
    • 5.3 화면에 플래피버드(오브젝트)의 자연스러운 움직임 만들기
    • 5.4 화면에 파이프(오브젝트) 나타내기와 움직이기
    • 5.5 플래피버드와 파이프의 충돌 구현하기
    • 5.6 플래피버드 게임 추가기능 구현하기 (점수기능)
    • 5.7 플래피버드 게임 추가기능 구현하기 (파이프 위치 랜덤화)
    • 5.8 플래피버드 게임 추가기능 구현하기 (플래피버드 애니메이션)
  • 6. 블록격파(Breakout) 게임만들기
    • 6.1 게임무대에 배경과 배우 등장시키기
    • 6.2 배우들의 움직임 구현하기
    • 6.3 공의 반사와 블록격파 구현하기
    • 6.4 충돌검사시 고려할 것들
    • 6.5 (보너스) 오리지널 게임처럼 만들어 보기
  • 7. 트윈비(TwinBee) 슈팅게임 만들기
    • 7.1 스크롤 배경객체 만들기, 배경음, 배우(적, 주인공) 등장시키기
    • 7.2 배우들의 움직임과 총알 공격 구현하기
    • 7.3 충돌처리 및 기타정보(점수 및 게임종료) 표기
    • 7.4 그 밖에 도전과제
  • 8. 퐁(Pong) 게임 만들기
    • 8.1 절차지향으로 개발하기 1
    • 8.2 절차지향형으로 개발하기 2
    • 8.3 객체지향 개발이론 (객제지향 디자인이란)
    • 8.4 객체지향 개발이론 (사용자 정의 객체 만들기, 상속)
    • 8.5 객체지향으로 개발하기 1
    • 8.6 객체지향으로 개발하기 2
    • 8.7 (보너스) 파이게임제로 예제버전 1
    • 8.8 (보너스) 파이게임제로 예제버전 2
  • 9. 배틀 시티(Battle city) 게임 만들기
    • 9.1 절차지향형으로 개발하기 1
    • 9.2 절차지향형으로 개발하기 2
    • 9.3 객체지향으로 개발하기 1
    • 9.5 객체지향 개발이론 (인터페이스)
    • 9.6 객체지향으로 개발하기 2
    • 9.7 객체지향으로 개발하기 3
    • 9.8 객체지향으로 개발하기 4
  • 10. 퐁(Pong)을 네트워크 게임으로 만들기
    • 10.1 네트워크 게임방식의 이해와 라이브러리 설치
    • 10.2 릴레이 서버 구동과 클라이언트 접속
    • 10.3 네트워크 게임으로 만들기 1
    • 10.4 네트워크 게임으로 만들기 2
  • 부록
    • 게임을 단 한 개의 실행파일로 패키징 하기
    • 뮤 에디터 단축키 모음
Powered by GitBook
On this page
  • 파이게임(pygame) 라이브러리
  • 파이게임 제로(pygame zero) 라이브러리

Was this helpful?

1. 파이게임 제로(pygame zero) 라이브러리

Previous게임제작하며 프로젝트 기반으로 파이썬 배우기 (순한맛)Next2. 개발환경 구축

Last updated 1 month ago

Was this helpful?

파이게임(pygame) 라이브러리

우리 책에서 사용할 게임개발용 라이브러리(라이브러리가 무엇인지 이해가 필요할 경우 를 참고)를 소개하겠다. 파이썬에서 2D 게임을 만들고자 할 때 사용되는 라이브러리로 2000년에 첫 출시된 이래로 벌써 20년 이상 서비스되고 여전히 개선되고 있는 "오픈소스 게임개발용 라이브러리"이다. 이름은 Python용 라이브러리라는 의미로 py라는 접두사를 붙힌 pygame라 명명했고, 해당 라이브러리의 로고는 다음과 같다. 좀 더 상세하고 전문적인 내용을 알고 싶다면 에서 확인해 보는 것이 좋겠다.

일반적으로 개임을 개발할 때 이러한 라이브러리의 지원 없이 모든 코드를 제로 베이스(Zero-based)에서 밑바닥부터 코드 한땀한땀 코딩하면서 개발하겠다고 한다면 불가능한 것은 아니지만 어마어마한 시간이 걸릴 것이다. 게임 자체가 종합예술이라 불릴만큼 많은 기술(특별히 수학적, 물리적)들의 적용이 필요하고, 이미지, 소리, 동영상 등 다양한 멀티미디어를 동시에 다뤄야 하기 때문에 코드의 양과 복잡도가 상당히 높은 편에 속한다. 그래서, 그런 세부적 기술구현의 디테일은 모르더라도 간편하게 그런 기술을 활용할 수 있게 해주는 라이브러리가 있다는 것이 우리에겐 구원의 소식이다.

혹시 여러분들 중에 이걸로 상용게임을 만들 수 있지 않을까 하는 기대를 한다면, 아쉽게도 일찌감치 접어두는 것이 좋을 것 같다. 이 라이브러리는 그런 수준이나 용도를 목적하지 않았고, 무엇보다 아직은 파이썬 언어자체가 상용게임 제작용에 사용되는 주류 언어가 아니다. 그럼에도 우리는 이것을 통해 우리 자신과 우리 주변 친구들, 지인정도가 재미있게 즐길 수 있는 가벼운 인디게임 정도는 충분히 만들 수 있을 것이다.

파이게임 제로(pygame zero) 라이브러리

다만, 한 가지 아쉬운 것은 본 라이브러리가 계속해서 관리되고 성장되지는 못하고 있고, 2021년 1.2.1 버전 이래로 오래동안 정체되어 있는 현실이긴 하나, 그럼에도 불구하고 적어도 우리가 목적하고 있는 파이썬 언어를 활용한 텍스트코딩을 더 잘 배우기 위한 교육용 목적에서의 충분한 수준의 개발은 이미 이루어 진 것으로 볼 수 있다.

이 책은 게임 그 자체를 잘 개발하기 위해 씌여진 책이 아니고, 파이썬 언어를 통한 텍스트코딩을 더 잘 배우기 위한 목적에서 게임개발이라는 수단을 가져온 것이라 이해하면 좋겠다. 우리는 이미 엔트리/스크래치를 통한 블록코딩으로 게임만들면서 코딩에 재미를 붙혀왔던 것처럼 말이다. 이번 우리 목표는 파이게임 제로(pygame zero) 라이브러리 + 파이썬(python) 텍스트코딩용 언어의 조합으로 게임만들면서 블록코딩을 넘어선 새로운 차원의 텍스트코딩 세계에서도 코딩의 재미를 느껴보자.

파이게임 라이브러리를 통한 개발은 파이썬 초보자 입장에서는 솔직히 쉬운 편은 아니다. 그렇기 때문에 초보자의 교육적 배려를 위해 더 장벽을 낮춰야 할 필요가 있는게 사실이었고, 저자와 같은 이런 고민이 있었던 한 개발자가 그런 목적으로 "파이게임 제로" 란 라이브러리의 이름에서 알 수 있듯이 기존의 "파이게임" 라이브러리를 기반해 이를 더 간략화시켜 최소한의 코딩만으로도 게임제작이 가능하도록 난이도를 낮춘 파이게임 라이브러리를 만들었고, 이를 로 공개하였다. 이를 에서 밝히고 있듯이 본 라이브러리는 코딩을 가르치기 위한 교육용 목적으로 활용을 기대하고 있으며, 따라서 이제 막 텍스트코딩을 시작했고, 특별히 파이썬 언어를 통해 텍스트코딩에 입문한 사용자들을 흥미있게 교육하고, 배우는데 유용할 것으로 기대할 수 있다.

오픈소스
소개한 웹사이트
공식 웹사이트
이전 서
파이게임 로고
파이게임 제로 로고