파이썬만으로 시작하는 1인 게임 개발 (게임 제작에 필수인 프로그래밍 지식, 알고리즘과 수학)

파이썬만으로 시작하는 1인 게임 개발 (게임 제작에 필수인 프로그래밍 지식, 알고리즘과 수학)

$23.59
Description
노베이스로도 가능한 게임 제작 & 프로그래밍
이 책은 프로 게임 개발자가 쉽게 해설한, 게임 제작과 프로그래밍의 입문서입니다.
게임을 만들기 위해서는 프로그래밍이나 게임 제작에 대한 지식뿐 아니라, 게임의 알고리즘을 구성하는 수학적 사고력도 필수입니다. 그래서 게임 만들기나 프로그래밍이 처음인 사람이 혼자서도 게임을 만들 수 있도록 이 책을 준비했습니다. Python만으로 게임을 만들면서도, 프로그래밍의 기초 지식과 게임 제작 방법, 충돌 판정 등의 게임 제작에 필요한 알고리즘과 수학을 무리 없이 배울 수 있도록 구성했습니다.

Chapter 1~4는 게임 제작 전 알아야 할 것들을 배우는 챕터입니다. 게임과 필요한 수학의 간단한 소개를 하고, 프로그래밍 개발 환경을 세팅합니다. 그 뒤 게임 개발 전 간단히 파이썬 문법을 배우고, 게임 제작에 필요한 알고리즘을 배우고, 기능을 개발해 봅니다.
후반부 Chapter 5~8은 각 챕터별로 하나씩 게임을 만들어 보는 챕터입니다. 두더지 잡기, 레이싱 게임, 슈팅 게임 등 다양한 장르의 게임을 개발해 보며 게임에서 사용하는 기능들과 알고리즘을 어떻게 만들고 적용하는지 자연스럽게 알게 됩니다.
그 밖에 더욱 복잡한 알고리즘과 기능을 배우고 싶은 분들을 위한 점프 액션 게임, 3D 던전 탐색 프로그램 개발 파트가 추가로 수록되어 있습니다.

Chapter 1 게임 제작의 구조에 대해 알아보자
게임이 무엇인지, 컴퓨터가 어떻게 프로그램을 실행하는지, 그리고 게임과 수학의 관계를 간단한 예로 설명합니다. 이어서 파이썬과 IDLE을 설치·실행하고, 아주 기초적인 코드 작성·저장·실행 과정을 경험해 봅니다.

Chapter 2 프로그래밍 기초 지식
입력·출력, 변수, 배열, 조건문, 반복문, 함수 등 파이썬 프로그래밍의 기본 문법을 배웁니다. 게임 제작에 꼭 필요한 “생각을 코드로 옮기는 방법”을 간단한 예제 프로그램으로 연습합니다.

Chapter 3 그래픽을 표시하자
tkinter를 이용해 윈도와 캔버스를 만들고, 선·도형·텍스트·이미지 등을 화면에 그리는 방법을 익힙니다. 좌표와 2차원 배열을 이용해 색과 배치를 제어하는 등, 게임 화면의 기초가 되는 그래픽 표현을 연습합니다.

Chapter 4 게임 제작을 위한 기초 지식
실시간으로 화면을 갱신하고, 마우스·키보드 입력을 이벤트로 받아 처리하는 방법을 배웁니다. 전역 변수, 좌표 계산, 충돌 판정(원/사각형)을 통해 “움직이고 부딪히는” 게임의 기본 구조를 이해합니다.
Chapter 5 두더지 잡기를 만들어 보자
랜덤, 배열, 실시간 처리, 키 입력 등을 조합해 두더지 잡기 게임을 완성합니다. 타이틀·게임 오버 화면 전환까지 구현해 보며, 하나의 완성된 미니 게임을 설계·구현·개조하는 흐름을 체험합니다.

Chapter 6 테니스 게임을 만들어 보자
벡터와 속도를 이용해 공이 움직이고 튕기는 간단한 물리 표현을 배우며, 공과 바, 배경을 이용한 테니스 게임을 만듭니다. 점수와 하이스코어, 화면 전환, 충돌 판정까지 포함한 좀 더 복잡한 게임 구조를 구현합니다.

Chapter 7 레이싱 게임을 만들어 보자
스크롤되는 배경, 플레이어 자동차, 적 차량을 배열과 실시간 처리로 관리해 레이싱 게임을 제작합니다. 여러 적 차량과 점수, 게임 오버 처리 등으로, “여러 오브젝트가 동시에 움직이는” 게임 구조를 익힙니다.

Chapter 8 슈팅 게임으로 복습해 보자
슈팅 게임 예제(galaxy_defender.py)를 전체적으로 뜯어보며, 그동안 배운 변수·배열·함수·이벤트·실시간 처리·수학 계산 등을 종합적으로 복습합니다. 코드를 구조별로 분석하고, 스스로 개조해 보는 연습을 합니다.

Appendix A 점프 액션 게임으로 배워 보자
점프 액션 게임 예제(help_princess.py)를 통해 주인공의 점프·이동·애니메이션을 수학과 배열로 표현하는 방법을 봅니다. 바닥과 구멍을 스크롤하며, 요소 추가·삭제로 맵을 구성하는 기법을 익힙니다.

Appendix B 3D 던전 탐색 프로그램으로 배워 보자
레이캐스팅을 이용해 3D 던전(미로)을 표현하는 프로그램(labyrinth_explorer.py와 maze_data1.py)을 분석합니다. 3차원 공간 데이터 구조, 삼각함수와 거리 계산, 벽 높이 보정 등을 통해 3D 표현의 기본 원리를 이해합니다.
저자

히로세 츠요시

와세다대학교 이공학부 졸업. 남코와 닌텐도 계열 회사에서 근무한 후, 게임 제작 회사를 설립하여 세가, 타이토, 켐코 등과 함께 100개 이상의 게임을 기획 및 개발하였다. 현재는 기술 전승, 프로그래밍 게임 개발 지도, 교육기관의 프로그래밍 코너 감수 등을 맡고 있다.
프로그래밍은 중학생 시절부터 시작했으며, C/C++, C#, Java, JavaScript, Python, Scratch, 어셈블리어 등 다양한 언어로 게임 개발 및 알고리즘 연구를 계속하고 있다. 국내 출간 저서로는 ‘파이썬으로 배우는 게임 개발: 입문편&실전편(제이펍)’등이 있다.

목차

[Chapter 1] 게임 제작의 구조에 대해 알아보자

1-1 게임의 정체를 알아보자
(1) 컴퓨터 기기는 프로그램으로 움직인다
(2) 게임 내부는 어떻게 되어 있을까?
(3) 프로그램이란?
(4) 프로그램의 지시를 CPU가 이해한다
(5) 컴퓨터의 기본 기능 ‘입력, 연산, 출력’
(6) 컴퓨터의 또 하나의 중요한 기능 - 기억

1-2 게임 제작과 수학의 관계를 알아보자
(1) 체력을 줄이거나 늘리는 변수
(2) 적이 쫓아온다 - 물체는 어디에 있는가? (좌표)
(3) 가까이 있을까? 멀리 있을까? - 게임 속에 펼쳐진 세계 (2차원 평면)
(4) 수학의 다양한 지식을 활용하자

1-3 프로그래밍 준비
(1) 확장자를 표시하자
(2) 작업 폴더를 만들자

1-4 Python 설치
(1) Windows PC에 설치하는 방법
(2) Mac에 설치하는 방법

1-5 IDLE을 사용해 보자 ① - 셸 윈도
(1) IDLE이란?
(2) IDLE을 실행해 보자
(3) IDLE로 계산이나 달력을 표시해 보자

1-6 IDLE을 사용해 보자 ② - 에디터 윈도
(1) 에디터 윈도 실행하기
(2) 프로그램 입력하기
(3) 프로그램 저장하기
(4) 프로그램 실행하기
(5) 프로그램 입력 방법 정리
 
[Chapter 2] 프로그래밍 기초 지식

2-1 이 장에서 배울 내용

2-2 입력과 출력
(1) 컴퓨터의 기본 기능
(2) print() 사용법
(3) 계산식의 값을 출력하자
(4) input() 사용법
(5) 주석

2-3 변수
(1) 변수란?
(2) 대입연산자
(3) 변수명 붙이기
(4) 변수 값을 계산식으로 바꾸자
(5) 연산자
(6) 타입(데이터 타입)
(7) 문자열과 숫자는 종류가 다른 데이터
(8) 형변환

2-4 배열
(1) Python의 리스트(데이터를 담는 상자)
(2) 배열이란?
(3) 배열 선언
(4) 배열을 사용한 프로그래밍
(5) 2차원 배열

2-5 조건 분기
(1) 조건 분기
(2) if의 3가지 작성법
(3) if 사용법
(4) 들여쓰기
(5) if를 사용한 프로그래밍
(6) 조건식
(7) True와 False
(8) if~else 사용법
(9) if~elif~else 사용법
(10) and 와 or (논리연산자)
2-6 반복
(1) 반복
(2) 2종류의 반복 명령
(3) for의 사용법
(4) range()로 범위를 지정하기
(5) for를 사용한 프로그래밍 - 기본
(6) for를 사용한 프로그래밍 - range()를 통한 범위 지정
(7) 값을 줄이는 반복
(8) break와 continue
(9) while의 사용법

2-7 함수
(1) 게임 속 함수
(2) 함수의 개념
(3) 함수를 정의하는 방법
(4) 매개 변수도 리턴 값도 없는 함수
(5) 매개 변수가 있고 리턴 값이 없는 함수
(6) 리턴 값을 가진 함수
(7) 전역 변수와 지역 변수, 변수의 유효 범위

2장 총 정리

[Chapter 3] 그래픽을 표시하자

3-1 이 장에서 배울 내용

3-2 tkinter로 윈도를 표시해 보자
(1) 게임 제작에 필수적인 윈도
(2) 모듈
(3) Python으로 윈도를 표시하자
(4) 타이틀과 윈도의 크기를 지정하자

3-3 캔버스에 선을 그어 보자
(1) 캔버스란?
(2) 컴퓨터의 좌표에 대해 알아보자
(3) 캔버스를 사용해 보자
(4) 축이 되는 선을 그어 보자


3-4 다양한 도형을 그려 보자
(1) 도형을 표시하는 명령
(2) 도형을 표시하는 명령을 사용해 보자
(3) 캔버스에 문자열을 표시해 보자

3-5 이미지를 표시해 보자
(1) 이미지 파일 준비
(2) 프로그램 확인
(3) PhotoImage() - 이미지 불러오기
(4) create_image() - 이미지 표시
(5) 내가 가진 이미지 파일을 표시해 보자

3-6 배열로 색을 다루어 보자
(1) 색의 문자열을 배열에 대입해 보자

3-7 2차원 배열을 사용해 보자
(1) 2차원 배열로 색을 정의해 보자
(2) for의 중첩 반복문

[Chapter 4] 게임 제작을 위한 기초 지식

4-1 실시간 처리란?
(1) Python으로 실시간 처리하기
(2) 수를 세어 보자
(3) 전역 변수 선언
(4) 문자열 표시하기
(5) delete(“all”)이 필요한 또 하나의 이유
(6) 실시간 처리의 과정
(7) 전역 변수와 지역 변수

4-2 마우스의 움직임을 가져오자
(1) 이벤트란?
(2) 이벤트가 발생한 사실을 알아내자
(3) bind()의 사용법
(4) 마우스 커서 좌표를 알아내는 프로그램
(5) format()의 사용법
(6) 마우스를 클릭한 사실을 알아내는 방법은?


4-3 마우스로 도형을 움직여 보자
(1) 어떻게 도형을 움직일까?
(2) 원이 커서를 따라가는 프로그램
(3) 마우스 커서를 움직였을 때 불러오는 함수
(4) 실시간 처리를 하는 함수
(5) 좌표 계산
(6) resizable() 명령

4-4 입력된 키 값을 가져오자
(1) 어떤 키를 눌렀는지 알아보자
(2) 키 값을 표시하는 프로그램
(3) 키 코드와 심볼

4-5 숫자 키로 색을 표시해 보자
(1) 어떤 프로그램을 만드는 걸까?
(2) 프로그램 확인
(3) 키가 눌렸을 때 배경색 바꾸기
(4) 문자열의 대소 관계
(5) and 사용법
(6) 문자열을 숫자로 변환하기

4-6 충돌 판정을 계산해 보자 ①-원을 이용한 계산 방법
(1) 충돌 판정
(2) 2개의 원의 거리를 구하는 식
(3) 수학식을 프로그램으로 입력하자
(4) 프로그램 확인
(5) 태그

4-7 충돌 판정을 계산해 보자 ②-사각형을 이용한 계산 방법
(1) 사각형을 이용한 충돌 판정
(2) 사각형이 겹치는 조건을 알아보자
(3) x축 방향의 거리와 y축 방향의 거리를 구해 보자
(4) 사각형이 겹치는 조건을 식으로 표현하자
(5) 절댓값을 사용해 보자
(6) 수식을 프로그램으로 입력하자
(7) 프로그램 확인
(8) 사각형을 표시하는 방법
(9) 마우스로 사각형을 움직이는 처리
(10) 충돌 판정을 하는 if문
[Chapter 5] 두더지 잡기를 만들어 보자

5-1 이 장에서 만들 게임
(1) 두더지 잡기란?
(2) 두더지 잡기를 만드는 이유
(3) 이 장에서 만들 게임의 규칙
(4) 사용할 이미지 파일
(5) 어떤 순서로 완성시킬까?

5-2 Python에서 난수를 사용해 보자
(1) random 모듈을 사용하자
(2) 난수를 발생시키는 명령
(3) 프로그램 확인
(4) 난수의 기본값

5-3 STEP 1 이미지를 불러와서 표시해 보자
(1) 이미지 파일을 불러와서 표시하기

5-4 STEP 2 배열로 5개의 구덩이를 관리하자
(1) 배열 사용하기
(2) 프로그램 확인
(3) 배열에 대입하는 값을 바꿔 보자

5-5 STEP 3 실시간 처리로 두더지가 나타나게 해 보자
(1) 실시간 처리를 추가하자
(2) 프로그램 확인

5-6 STEP 4 키 입력으로 두더지를 때려 보자
(1) 키 입력 추가
(2) 프로그램 확인
(3) 변수 key에 키 값을 대입하자
(4) 얼굴을 내민 두더지를 때려 보자
(5) 뿅망치로 때린 두더지를 구덩이로 돌아가게 해 보자
(6) 키 값의 해제

5-7 STEP 5 타이틀 화면과 게임 오버 화면을 만들어 게임을 완성시키자
(1) 화면 전환
(2) 두더지 잡기의 화면 전환
(3) 씬을 관리하는 변수를 사용해 보자
(4) 완성된 프로그램 확인
(5) 게임을 개조해 보자!

[Chapter 6] 테니스 게임을 만들어 보자

6-1 이 장에서 만들 게임
(1) 테니스 게임이란?
(2) 테니스 게임을 만드는 이유
(3) 이 장에서 만들 게임의 규칙
(4) 사용하는 이미지 파일
(5) 어떤 순서로 완성시킬까?

6-2 벡터를 배워 보자
(1) 벡터는 크기와 방향을 가진다
(2) 속력과 속도
(3) 프로그램으로 물체의 움직임을 계산하는 방법은?
(4) 공을 움직이기 위한 변수

6-3 STEP 1 배경, 공, 바를 표시해 보자
(1) 표시할 것과 표시 위치를 다루는 변수
(2) 이미지와 도형을 표시해서 게임 화면을 만들자
(3) 변수에 초기 값을 대입하자
(4) int()의 기능
(5) 이미지 불러오기와 표시

6-4 STEP 2 공이 자동으로 움직이게 해 보자
(1) 공의 속력을 대입할 변수
(2) 좌표를 변화시키는 계산
(3) 화면 끝에서 튕기게 해 보자
(4) 공이 자동으로 움직이는 프로그램
(5) 화면 끝에서 튕기게 하는 방법
(6)