책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > 파이썬
· ISBN : 9791193083314
· 쪽수 : 724쪽
· 출판일 : 2025-11-01
책 소개
단계별로 구성된 가장 친절한 레트로 게임 개발 가이드
이 책에서 우리가 함께 만들 게임은 공을 튕겨 블록을 없애거나 총알로 적을 제거하는, 조작은 단순하지만 몰입감은 확실한 레트로 게임들입니다. 공이 튕기고, 총알이 날아가고, 점수가 올라가는 그 순간마다 직접 만든 코드가 살아 움직인다는 짜릿한 경험을 하게 될 겁니다. 그리고 그 경험은 우리에게 다시 이렇게 말해줍니다. “조금만 더 해보면 진짜 게임이 완성될 것 같아.”
물론 처음부터 모든 것이 술술 풀리지는 않습니다. 공을 정확히 튕기는 것, 총알이 화면 밖으로 나가지 않도록 처리하는 것, 점수를 올리는 로직을 짜는 것 하나하나가 새로운 도전일 수 있습니다. 하지만 이런 작은 문제들을 하나씩 해결해 나가다 보면, 게임이 점점 ‘게임다워지는 경험’을 하게 됩니다. 바로 그때 여러분은 단순한 학습을 넘어서 ‘만드는 즐거움’을 느끼게 될 것입니다.
중요한 건 완벽하게 하는 것이 아니라 끝까지 계속해보는 것입니다. 아주 작은 성공도 모이고 모이면 큰 성취가 됩니다. 단순한 기능들이 하나씩 연결되어, 나중에는 완성된 하나의 작품이 되는 것이죠. 이 책은 여러분이 바로 그런 첫 작품을 완성하도록 돕는 길잡이가 될 것입니다.
★이 책에서 다루는 주요 분야★
Stage 1 : 게임 개발, 그 모험의 시작
파이썬과 PyCharm으로 개발 기지를 구축합니다. 게임 개발을 시작할 준비를 마칠 수 있어요.
Stage 2 : Pygame이라는 전설의 아이템을 얻자!
Pygame 이라는 라이브러리, 즉 핵심 도구를 손에 쥐게 됩니다.
▶ 만드는 게임: 반응 속도 테스트, 초간단 탁구 게임, 우주 여행 화면 보호기
Stage 3 : 레트로 게임 던전 탐구하기
레트로 아케이드 게임들을 만들며 게임의 원리를 이해하고 코딩 실력을 키웁니다.
▶ 만드는 게임: 탁구 게임, 벽돌 깨기 게임, 총알 피하기 게임
Stage 4 : 레트로 게임 던전 중간 보스전
Stage 3에서 다룬 것보다 난이도 높은 게임들을 만들며 게임의 원리를 이해하고 코딩 실력을 키웁니다.
▶ 만드는 게임: 경찰 FPS 게임, 우주 침략자 게임
Stage 5 : 레트로 게임 던전 최종 보스전
이 책에서 가장 어려운 난이도에 맞춰 게임을 제작합니다. 이 과정에서 지금까지 학습한 개념을 총망라하고 정리할 수 있습니다.
▶ 만드는 게임: 용 비행 슈팅 게임, 스페이스 탄막 슈팅 게임
부록 : 자주 마주치는 에러 및 해결 방법
게임을 개발하는 동안 자주 마주하게 되는 파이썬 문법 및 Pygame 관련 에러 해결법을 정리했습니다.
예제 파일 : github.com/IhyeonKlim/retroGameWithPython
★이 책의 대상 독자★
- 프로그래밍 경험은 거의 없지만, 직접 게임을 만들어 보고 싶다면?
- 게임 완성 후 디자인이나 사운드까지 스스로 꾸며 보고 싶다면?
- 파이썬이라는 언어를 배웠지만 ‘무엇을 만들어야 할지’ 모르겠다면?
- 물리, 충돌, 점수 계산 등 게임의 핵심 로직을 단계별로 익히고 싶다면?
- 파이썬 수업에서 실습 프로젝트를 찾고 있다면?
목차
Stage 01 게임 개발, 그 모험의 시작
Level 1 파이썬 개발 기지 구축
__1.1 파이썬이 초보에게 유리한 이유
__1.2 파이썬 다운로드 및 설치 방법
__1.3 PyCharm 다운로드 및 설치 방법
__1.4 PyCharm 실행하고 설정하기
____프로젝트 생성하기
__1.5 Pygame 라이브러리 다운로드 및 불러오기
____Pygame 다운로드하기
____Pygame 불러오기
____PyCharm 메뉴 한글 설정하기
__1.6 예제 자료 다운로드 및 불러오기
____코드 다운로드 & 실행 방법
Level 2 파이썬으로 전투 준비
__2.1 파이썬 기본 문법 마스터하기
____1. 주석
____2. 변수 선언과 자료형
____3. 함수
____4. 조건문(if문)
____5. 반복문(while문)
____6. 산술 연산자
____7. 대입 연산자
____8. 비교 연산자
____9. 논리 연산자
____10. 내장 함수
____11. 변수의 형태 변환
__2.2 구미호와 쉬운 남자 1
__2.3 파이썬 심화 문법 마스터하기
____1. 자료 구조: 리스트, 튜플, 딕셔너리
____2. 반복문(for문)
____3. 스코프
____4. 모듈과 패키지
____5. 알아 두면 좋은 함수 enumerate()
____6. try except로 예외 처리하기
__2.4 구미호와 쉬운 남자 2
__2.5 코드를 ‘읽는’ 방법
__2.6 알아 두면 좋을 코드 스타일 가이드
____1. PEP 8의 주요 사항
____2. 코드 가독성을 높이는 4가지 PyCharm 설정
Stage 02 Pygame이라는 전설의 아이템을 얻자!
Level 3 첫 번째 퀘스트, Pygame 장착하기
__3.1 Pygame의 구조 이해하기
____1. Pygame 초기화
____2. Pygame 창 만들기
____3. Pygame 종료하기
____4. 프레임 이해하기
____5. update()로 프레임 이어 붙이기
____6. Pygame으로 도화지에 그림 그리기 “hello world”
__3.2 Pygame의 도구와 개념 익히기
____1. 좌표
____2. 텍스트와 폰트
____3. 색상
____4. 타이머와 시간
____5. 화면(FPS) 컨트롤
____6. 사각형 그리기
____7. 원 그리기
____9. 마우스 컨트롤
____10. 충돌 감지
Level 4 두 번째 퀘스트, Pygame 수련하기
__4.1 반응 속도 테스트 만들기
____1. Pygame 초기화 및 기본 화면 설정
____2. 원 그리기 및 초기 색상 설정
____3. 안내 텍스트 추가
____4. 랜덤 시간 설정
____5. 클릭 반응 시간 기록
____6. 잘못된 클릭 처리와 게임 초기화
__4.2 초간단 탁구 게임 만들기
____1. Pygame 초기 설정 및 화면 생성
____2. 플레이어 1 패들 생성 및 움직임 구현
____3. 플레이어 2 패들 생성 및 움직임 구현(방향키 사용)
____4. 공 생성 및 위치 설정
____5. 공 움직이기
____6. 공의 경계 충돌 구현(상하 반사)
____7. 공과 패들의 충돌 구현
Level 5 세 번째 퀘스트, 화면 보호기
__5.1 ‘우주 여행’ 화면 보호기 만들기
__5.2 시각적 몰입감의 원리 이해하기
__5.3 초기 설정 및 클래스 기능, 속성 설계하기
__5.4 변수 추가 및 함수 기능 구현하기
__5.5 별의 이동 구현하기
__5.6 운동 시차 구현하기
Stage 03 레트로 게임 던전 탐구하기
Level 6 레트로 게임 마스터 1, 탁구 게임
__6.1 모티브 게임 퐁
__6.2 게임 기획 및 개발 단계 정리하기
__6.3 화면 설정하기
__6.4 테두리 그리기
__6.5 플레이 구역 구분하기
__6.6 ‘함수화’를 활용한 점선 그리기
__6.7 점선으로 플레이 공간 구분하기
__6.8 라켓 생성하기
__6.9 공 생성하기
__6.10 라켓 움직이기
____1. 첫 번째 문제: 게임 구역을 벗어나는 라켓
____2. 두 번째 문제: 끊어지는 키 입력
__6.11 공 움직이기
____1. 등속, 가속, 충돌
____2. 등속과 방향
____3. 충돌 개념 구현
____4. 가속과 제한 속도 개념 구현
__6.12 플레이어와 공의 충돌 구현하기
__6.13 점수 표시하기
__6.14 게임 종료 조건 만들기
__6.15 게임 재시작 화면 만들기
__6.16 실행 시간 설정하기
__6.17 게임 타이틀 화면 추가
__6.18 공의 시작 방향과 밸런스 설정하기
__6.19 좌우 테두리 없애기
__6.20 공을 원으로 만들기
__6.21 마무리, 전체 코드 정리하기
____불필요한 import 구문 정리
____중복된 코드 함수화(draw_text)
____Pygame 이벤트 처리 방식 개선
____코드 중복 제거와 위치 조정(Ball 클래스 초기화)
____게임 상태 변수의 일관성 유지
____코드 스타일 개선(PEP 8 준수)
Level 7 레트로 게임 마스터 2, 벽돌 깨기 게임
__7.1 모티브 게임, 알카노이드
__7.2 화면 생성 & 게임 루프 설정하기
__7.3 플레이어(패들) 생성하기
__7.4 블록 생성하기
__7.5 공 생성하기
__7.6 공의 움직임 구현하기
__7.7 공과 블록 충돌 구현하기
__7.8 공과 플레이어 충돌 구현하기
__7.9 점수 및 생명 시스템 구현하기
__7.10 블록 크기 & 배치 수정하기
__7.11 충돌 처리 개선하기
__7.12 아이템 생성하기
__7.13 아이템 이동 및 충돌 구현하기
__7.14 아이템과 패들의 상호 작용 효과 구현하기
__7.15 아이템 색상 변경하기
__7.16 아이템 추가 효과 부여하기
__7.17 리팩토링하기
__7.18 게임 인트로 & 게임 오버 화면 구현하기
__7.19 블록 기능 패치하기
__7.20 플레이어와 공 기능 패치하기
Level 8 레트로 게임 마스터 3, 총알 피하기 게임
__8.1 모티브 게임, 닷지
__8.2 기본 설정과 초기 화면 구성하기
__8.3 플레이어 클래스 정의하기
__8.4 총알 클래스 정의하기
__8.5 충돌 감지 기능과 게임 종료/재시작 기능 구현하기
__8.6 점수 기능 구현하기
__8.7 게임 상태 관리하기
__8.8 게임 클래스 구현하기
__8.9 특별한 총알, 혜성 구현하기
__8.10 총알 재생성과 개수 표시 기능 추가하기
__8.11 최고 점수 기록 시스템 구현하기
__8.12 BGM 넣기
__8.13 이미지 넣기
Stage 04 레트로 게임 던전 중간 보스전
Level 9 레트로 슈팅 게임 마스터 1, 경찰 FPS 게임
__9.1 모티브 게임, 버추어 캅
__9.2 기본 설정과 초기화하기
__9.3 총기 클래스 구현 및 총알 발사 기능 추가하기
__9.4 플레이어 상태 클래스 구현하기
__9.5 십자선 구현하기
__9.6 적 객체 생성 및 기본 동작 구현하기
__9.7 인질 객체 생성 및 기본 동작 구현하기
__9.8 적 공격 및 동심원 판정 구현하기
__9.9 적과 인질의 충돌 판정 구현하기
__9.10 스페셜 적 추가하기
__9.11 피격 효과 구현하기
__9.12 피격 효과 포함한 총기 UI 및 퀵 리로드 표시하기
__9.13 인질의 동작과 상호 작용 개선하기
__9.14 Game 클래스로 전체 흐름 관리하기
__9.15 Intro, game over, 재시작 기능 추가하기
__9.16 게임 밸런스 조정하기
__9.17 이미지 추가하기
Level 10 레트로 슈팅 게임 마스터 2, 우주 침략자 게임
__10.1 모티브 게임, 스페이스 인베이더
__10.2 실행 환경 만들기
__10.3 unit과 player 클래스 구현하기
__10.4 침략자 만들기
__10.5 침략자 무리 만들기
__10.6 침략자에게 색상 입히기
__10.7 침략자 움직이기
__10.8 플레이어의 총알 구현하기
__10.9 적과 총알의 충돌 구현하기
__10.10 적의 총알 구현하기
__10.11 점수, 생명 시스템 구현하기
__10.12 게임 종료 조건 및 화면 구현하기
__10.13 게임 난이도 높이기 ① 벽 구현하기
__10.14 게임 난이도 높이기 ② UFO 만들기
Stage 05 레트로 게임 던전 최종 보스전
Level 11 비상하는 용의 전설, 용 비행 슈팅 게임
__11.1 모티브 게임, 드래곤 플라이트
__11.2 스크롤링 배경 만들기
__11.3 모듈화를 활용한 게임 설계하기
____게임의 핵심 요소 살펴보기
____게임 프로젝트 구조
____게임 제작 시 참고 사항
__11.4 Main 클래스의 구성 살펴보기
__11.5 Player 클래스의 구성 살펴보기
__11.6 Monster 구현하기
__11.7 Coin 구현하기
__11.8 Item 구현하기
__11.9 Bullet 구현하기
__11.10 Boss 구현하기
__11.11 Meteo 구현하기
__11.12 Utils 구현하기
__11.13 TicksManager 관리하기
__11.14 Scrolling_background 구현하기
Level 12 스페이스 탄막 슈팅 게임
__12.1 모티브 게임, 스트라이커즈 1945
__12.2 게임 초기 설정 및 배경 요소 구현하기
__12.3 플레이어 클래스 만들기
__12.4 적 클래스 만들기
__12.5 시나리오 파일 만들기
__12.6 충돌 처리
__12.7 특수 스킬
부록 자주 마주치는 에러 및 해결 방법
부록 A 해결 방법이 간단한 에러
__A.1 파이썬 문법 및 오타 관련 에러
__A.2 변수 참조 및 할당 관련 에러
__A.3 타입 및 연산 관련 에러
__A.4 자료 구조 및 인덱싱 관련 에러
__A.5 타입 변환 및 값 관련 에러
__A.6 반복 및 순회 관련 에러
__A.7 파일 입출력 및 경로 관련 에러
__A.8 모듈 및 임포트 관련 에러
__A.9 사용자 인터럽트 및 종료 관련 에러
__A.10 모호한 접근 및 논리 오류
__A.11 수학 관련 에러
__A.12 메모리 및 리소스 관련 에러
부록 B Pygame 에러
__B.1 메인 루프 내에서 시간 관리 미흡
__B.2 이벤트 처리를 제대로 하지 않음
__B.3 객체 지향 프로그래밍(OOP)의 활용 부족
__B.4 화면 업데이트 및 flip()/update() 호출 실수
__B.5 리소스 관리 문제(메모리 누수)
__B.6 충돌 감지 및 처리 로직의 잘못된 구현
__B.7 화면 깜박임 문제
__B.8 게임 루프 내에서 리소스 로딩 및 사운드 초기화의 비효율적 사용
__B.9 잘못된 프레임 기반 이동
__B.10 텍스트 렌더링 문제



















