-
-
파이썬으로 배우는 게임 개발 실전편 - 장애물 피하기, 닷잇 액션, 맵 에티터, 탄막 슈팅, 3D 카 레이싱, 게임 런처 등을 만들며 배운다! ㅣ 파이썬으로 배우는 게임 개발
히로세 츠요시 지음, 김연수 옮김 / 제이펍 / 2020년 11월
평점 :
절판
본 도서는 파이썬을 활용하여 게임을 개발하는 방법을 다루는 도서로, 입문편에 이어 2번째 도서인 실전편이다. 입문편과 유사한 개요 및 장점은 생략했으니 아래 입문편 리뷰를 참고하시기 바란다.
입문편과의 차이점은 다음과 같다.
- Python을 어느정도 알고 있어야 한다.
- 입문편을 익혔다면 1, 3 ~ 5장은 건너 뛰어도 된다.
- 고난이도(?) 수학이 등장하기 시작한다. (특히 삼각함수)
- 3차원이 세계에 발을 내딛는다.(유사 3D를 구현)
- 작지만 효과 넘치는 디테일한 Tip들을 얻을 수 있다.
- 상용 게임에 가까운 완성도를 추구한다.(런쳐 개발 등)
입문편 리뷰에서 다 언급하지 못한 장점도 몇가지 추가할까 한다.
책은 크게 2개의 파트로 나뉘는데, 타임라인 순으로 배웠던 흔적들을 기록해 보았다.
- 프롤로그에서 PyGame까지(1 ~ 5장)
앞에서 배운 기본 기술을 활용한다.
- 미로 맵 데이터
- 실시간 처리
- 캐릭터 애니메이션 처리 등의 기술
추가로 위에서 배우진 않았지만 입문편
에서 다룬 스킬도 활용한다.
메인 요소는 아니지만 아래와 같은 완성도를 높히기 위한 세세한 Tip들도 언급되어 있는데 일반 개발 서적에서는 보기 힘든 저자의 오랜 경험에서 묻어나온 일종의 편법(?)
들이 흥미로웠다. 짧은 코드로도 다양한 효과를 대신할 수 있기 때문이다.
- root 연산을 피해 속도를 높이거나 수학적 테크닉을 활용하는 방법
- 캐릭터를 부드럽게 움직이는 법
- 타이틀이나 엔딩화면 제작 등
초반에 다루지 않았거나 입문편에서도 소개되지 않은 새로운 기법
들은 다음과 같다.
- 남은 수명 적용하기 : 기체 수, 체력, 시간 기준
- 다양한 스테이지 만들기
맵 에디터의 계층화
- 본격적으로 PyGame을 소개한다. 앞서 배운 Tkinter와 달리 PyGame을 활용하면 몇가지 밑바닥 구현을 안해도 된다. 기본적으로 고속 처리가 가능해지고, 물체 간 겹치는 부분에 대한 처리가 필요없으며, 기본적으로 제공하는 API들이 간결하고 사용하기 편하다. 여기에선 Tkinter 기반에서 벗어나 이미지를 그리거나 상태를 변경시키거나 키-인을 다뤄보며 새롭게 익혀야 할 기능들을 살펴본다.
입문편과 실전편을 모두 읽고 구현하는데 1달이 넘는 시간이 걸렸다. 직장을 다니기에 퇴근 후 저녁 시간만을 활용했다. Python을 데이터 분석 목적으로 몇년 간 자주 활용했으며, 15년 가까이 다른 프로그래밍 언어를 만들어왔고, 대학때는 작은 게임을 만들어 본 경험이 있는 상태임을 감안할 때 결코 적지 않은 시간이 소요된 셈이다.
만약 이 책의 뛰어난 구성상의 도움이 없었다면, Python이 아닌 다른 언어였다면(C++이나 어셈 같은) 예제 하나를 만드는데만 1달의 시간이 걸렸을 것 같다. 그만큼 이 책은 방대한 내용을 아주 쉽고 생산성 높게 만드는 방법을 전수해 준다.
게임 관련 서적을 많이 통달하진 못했지만 이렇게 읽기 편하고 만들기 쉽고 짧은 시간내에 거의 모든 것을 만들 수 있게 해주는 책이 또 있을까?
개인적으로 정말 재미있는 단계는 지금, 즉, 책을 다 익히고 난 시점 이후이다. 기본기를 익혔으니 게임을 만들고 즐기며 떠올랐던 스스로의 아이디어를 녹이는 일을 시작할 수 있게 되었으니 말이다.
입문편 리뷰에서 소개했듯이 게임 업계의 꿈을 가지고 있거나, 게임 개발을 취미로 익히고 싶거나, Python으로 알고리즘 구현에 익숙해지고 싶은 분들에게 여러번 추천하고 싶다.