스위프트로 만드는 게임 개발 [스위프트를 활용한 게임 개발부터 출시까지]
- 원서명Swift 3 Game Development - Second Edition : Embrace the mobile gaming revolution by creating popular iOS games with Swift 3.0 (ISBN 9781787127753)
- 지은이스티븐 해니(Stephen Haney)
- 옮긴이장세윤
- ISBN : 9791161750231
- 25,000원
- 2017년 07월 14일 펴냄
- 페이퍼백 | 284쪽 | 188*235mm
- 시리즈 : acorn+PACKT
책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
요약
스위프트를 활용해 게임 개발을 시작하는 데 필요한 모든 내용을 다룬다. 개발 환경 설정부터 스프라이트, 카메라 설정, 물리, 컨트롤, 게임 아이템, 충돌 처리, 사운드 등 게임 개발에 필요한 모든 내용을 책에서 진행하는 게임을 만들면서 하나하나 배울 수 있다. 또한 게임 개발을 시작할 때 고민하면 좋을 수익 전략에 대한 내용과 게임 센터 연동, 앱 스토어에 출시하는 내용까지 포함돼 있어 게임 개발을 시작하려는 개발자들에게 좋은 지침서가 될 것이다.
이 책에서 다루는 내용
■ SpriteKit를 이용한 강력한 그래픽, 물리, 사운드 적용
■ 씬 에디터의 새로운 기능과 커스텀 클래스를 사용한 씬 설정
■ 잘 알려지지 않은 팁과 전략을 이용한 게임 플레이 극대화
■ 애니메이션, 그래픽, 파티클을 활용해 게임을 꾸미는 방법
■ 게임에 가장 적합한 옵션을 선택하기 위해 현재 모바일 수익 창출 환경 이해
■ 플레이어가 최고 점수와 업적을 공유할 수 있도록 게임을 게임 센터와 통합
■ 많은 사람들이 게임을 즐길 수 있도록 앱 스토어에 게임 출시
이 책의 대상 독자
기본적인 프로그래밍 개념에 익숙하고, 스위프트를 이용한 재미있는 iOS 게임의 제작과 출시를 원하는 독자를 대상으로 한다. 하지만 게임 개발이나 애플의 생태계에 대한 경험은 필요하지 않다.
이 책의 구성
1장, ‘스위프트를 이용한 게임 디자인’에서는 스위프트의 최고 기능을 소개하고, 스위프트 3에 새로 추가된 기능에 대해 간략히 설명하며, 개발 환경 설정과 첫 번째 SpriteKit 프로젝트를 시작하는 데 필요한 내용을 다룬다.
2장, ‘스프라이트, 카메라, 액션!’에서는 스위프트를 이용한 그리기와 애니메이션의 기초를 배운다. 스프라이트 그리기, 프로젝트에 텍스처 임포트하기, 카메라를 메인 캐릭터 중심에 맞추는 방법에 대해 배운다.
3장, ‘물리 적용하기’에서는 피직스 바디(Physics Body), 충격, 힘, 중력, 충돌 등 물리 시뮬레이션의 기본을 다룬다.
4장, ‘컨트롤 추가하기’에서는 장치 기울기, 터치 입력 등의 다양한 모바일 게임 컨트롤 방법을 살펴본다. 또한 4장을 통해 예제 게임의 핵심 게임 플레이와 카메라의 기능도 향상시킨다.
5장, ‘적, 코인, 파워업 생성’에서는 예제 게임에서 사용하는 캐릭터를 소개하고 각 NPC 유형에 사용될 커스텀 클래스를 생성하는 방법에 대해 배운다.
6장, ‘끝나지 않는 게임 월드 생성하기’에서는 SpriteKit 씬 에디터에 대해 살펴보고, 예제 게임에 사용할 장애물을 만들고, 이 장애물을 끊임없이 반복하는 시스템을 생성한다.
7장, ‘충돌 이벤트 구현하기’에서는 고급 물리 시뮬레이션에 대해 살펴보고 스프라이트가 서로 충돌할 때 사용할 커스텀 이벤트를 추가한다.
8장, ‘더욱 멋지게 다듬기: HUD, 시차 배경, 파티클’에서는 게임을 더욱 빛나게 만들 수 있는 재미 요소를 추가한다. 시차 배경을 생성하는 방법, SpriteKit의 파티클 이미터, 헤드업 디스플레이를 게임에 추가하는 방법에 대해 배운다.
9장, ‘메뉴 및 사운드 추가하기’에서는 메인 메뉴의 기본 시스템을 구축하고 게임에서 사운드를 재생하는 두 가지 방법을 설명한다.
10장, ‘고급 기능으로 눈에 띄는 게임 만들기’에서는 고급 게임 플레이 시스템을 구현하기 위해 지금까지 배운 기술을 결합하는 방법을 보여준다.
11장, ‘수익 전략 선택하기’에서는 게임으로 수익을 창출하고자 하는 인디 개발자를 위한 전략에 대해 설명한다.
12장, ‘게임 센터 통합하기’에서는 리더보드, 업적, 과제 기능의 추가를 위해 예제 게임을 애플 게임 센터에 연결한다.
13장, ‘앱스토어 및 출시를 위한 준비’에서는 게임을 패키징하고 앱스토어에 제출하는 과정을 다룬다.
목차
목차
- 1장. 스위프트를 이용한 게임 디자인
- 스위프트를 선호하는 이유
- 선수 지식
- 이 책에서 살펴볼 내용
- SpriteKit 사용하기
- 플레이어 입력에 대한 반응
- 게임 코드의 구조화
- UI/메뉴/레벨 만들기
- 게임 센터와 통합하기
- 재미 극대화하기
- 결승선 통과하기
- 수익 창출하기
- 스위프트 3의 새로운 기능
- 개발 환경 설정
- 엑스코드 소개와 설치
- 첫 번째 스위프트 게임 만들기
- 프로젝트 살펴보기
- SpriteKit 데모 살펴보기
- 데모 코드의 분석
- 정리
- 요약
- 2장. 스프라이트, 카메라, 액션!
- 준비하기
- 체크포인트 2-A
- 첫 번째 스프라이트 그리기
- SKSpriteNode 클래스 만들기
- 툴킷에 애니메이션 추가하기
- 여러 애니메이션을 이어서 재생하기
- 첫 번째 스프라이트 다시 보기
- 위치 설정 이야기
- 앵커 포인트를 이용한 정렬
- 텍스처 및 게임 아트 추가
- 무료 애셋 다운로드하기
- 좀 더 훌륭한 게임 아트
- 첫 번째 텍스처 스프라이트 그리기
- 프로젝트에 꿀벌 이미지 추가하기
- SKSpriteNode를 이용해 이미지 로드하기
- 레티나 디스플레이를 위한 디자인
- 이상적인 애셋 접근 방법
- SpriteKit을 이용한 레티나 실습
- 애셋 구성하기
- Assets.xcassets 살펴보기
- 여러 텍스처를 텍스처 아틀라스로 결합하기
- 꿀벌 노드가 텍스처 아틀라스를 사용하도록 업데이트하기
- 텍스처 아틀라스 통한 프레임을 반복
- 모두 결합하기
- 스프라이트 중심에 카메라 배치하기
- 체크포인트 2-B
- 요약
- 3장. 물리 적용하기
- 기초 다지기
- 프로토콜 따르기
- 꿀벌 재창조
- 얼음 사막
- Assets.xcassets에 지면 텍스처 추가하기
- Ground 클래스 추가
- 텍스처 타일링
- 지면과 연결하기
- 야생 펭귄 등장!
- GameScene 클래스 업데이트
- 물리 시스템 살펴보기
- 파리와 유사하게 떨어뜨리기
- 지면 단단하게 만들기
- 체크포인트 3-A
- 물리 시뮬레이션 역학 살펴보기
- 꿀벌끼리 서로 충돌 테스트
- 충격 또는 힘?
- 체크포인트 3-B
- 요약
- 기초 다지기
- 4장. 컨트롤 추가하기
- 비행을 위한 Player 클래스 구조 변경
- The Beekeeper
- Player 클래스 업데이트
- 지면 이동시키기
- 플레이어에 피직스 바디 추가하기
- 텍스처에서 피직스 바디 모양 생성하기
- Core Motion을 이용해 장치 움직임 정보 읽기
- Core Motion 코드 구현하기
- 체크포인트 4-A
- 스프라이트에 onTap 이벤트 연결하기
- GameScene에서 touchesBegan 구현하기
- 펭귄 크기 키우기
- 펭귄에 비행 기능 추가하기
- GameScene에서 터치 입력 이벤트 받기
- 알맞은 중력 설정하기
- 날개 펼치기
- 카메라 개선하기
- Pierre 앞으로 밀기
- 플레이어의 진행 상황 추적
- 지면 반복시키기
- 체크포인트 4-B
- 요약
- 비행을 위한 Player 클래스 구조 변경
- 5장. 적, 코인, 파워업 생성
- 등장인물 소개
- 아트 애셋 검색 및 추가하기
- 파워업 스타 추가
- Start 클래스 추가
- 새로운 적 추가: 매드 플라이
- MadFly 클래스 추가하기
- 또 다른 공포 – 박쥐!
- Bat 클래스 추가하기
- 지면을 지켜라: 블레이드 추가
- Blade 클래스 추가
- 코인 추가
- Coin 클래스 생성
- 프로젝트 탐색기 정리하기
- 새 게임 오브젝트 테스트하기
- 체크포인트 5-A
- 끝없는 비행을 위한 준비
- 요약
- 6장. 끝나지 않는 게임 월드 생성하기
- SpriteKit 신 에디터로 레벨 디자인하기
- 게임 로직과 레벨 데이터 분리하기
- 신 에디터에서 커스텀 클래스 사용하기
- 플레이어의 비행을 방해하는 장애물
- 첫 번째 장애물 만들기
- 신을 게임에 통합하기
- 체크포인트 6-A
- 지속적으로 장애물 환경 생성하기
- 더 많은 장애물 만들기
- SKSpriteNodeuserData 속성에 메타데이터 저장하기
- GameScene 클래스에 EncounterManager 연결하기
- 파워업 스타 랜덤으로 생성시키기
- 브론즈 코인을 골드 코인으로 바꾸기
- 체크포인트 6-B
- 요약
- SpriteKit 신 에디터로 레벨 디자인하기
- 7장. 충돌 이벤트 구현
- SpriteKit의 충돌 용어 익히기
- 충돌과 접촉
- 물리 카테고리 마스크
- 스위프트에서 카테고리 마스크 사용하기
- 게임에 접촉 이벤트 추가하기
- 물리 카테고리 설정하기
- 게임 오브젝트에 카테고리 할당하기
- 플레이어
- 지면
- 파워업 스타
- 적
- 코인
- 접촉 이벤트를 위한 GameScene 준비하기
- 콘솔 출력결과 확인하기
- 접촉 이벤트 코드 테스트
- 체크포인트 7-A
- 플레이어 체력과 데미지
- 데미지를 입는 경우와 게임 오버에 대한 애니메이션
- 데미지 애니메이션
- 게임 오버 애니메이션
- 코인 획득하기
- 파워업 스타 로직
- 체크포인트 7-B
- 요약
- SpriteKit의 충돌 용어 익히기
- 8장. 더욱 멋지게 다듬기: HUD, 시차 배경, 파티클
- HUD 추가하기
- HUD 구현하기
- 시차 배경 레이어
- 배경 애셋 추가하기
- 배경 클래스 구현하기
- GameScene 클래스에서 배경 연결하기
- 체크포인트 8-A
- SpriteKit의 파티클 시스템 활용하기
- 원형 파티클 애셋 추가하기
- SpriteKit Particle 파일 생성하기
- 경로 파티클 설정 구성하기
- 게임에 파티클 이미터 추가하기
- 게임이 시작될 때 안전성 부여하기
- 체크포인트 8-B
- 요약
- HUD 추가하기
- 9장. 메뉴 및 사운드 추가
- 메인 메뉴 제작하기
- 메뉴 신과 메뉴 노드 만들기
- 게임 시작 시 메인 메뉴 실행시키기
- START GAME 버튼 연결하기
- 재시작 게임 메뉴 추가
- HUD 확장하기
- 게임 오버를 위해 GameScene 연결하기
- 플레이어가 죽으면 GameScene 클래스에 알리기
- 재시작 메뉴를 위한 터치 이벤트 구현하기
- 체크포인트 9-A
- 음악 및 사운드 추가하기
- 게임에 사운드 애셋 추가하기
- 배경 음악 재생하기
- 사운드효과 재생하기
- Coin 클래스에 코인 사운드효과 추가하기
- Player 클래스에 파워업 및 데미지 사운드 효과 추가하기
- 게임이 시작되면 사운드 재생하기
- 체크포인트 9-B
- 요약
- 메인 메뉴 제작하기
- 10장. 고급 기능으로 눈에 띄는 게임 만들기
- 부수면 열리는 재미있는 상자 추가하기
- 상자 파티클 효과 추가하기
- 파티클 풀을 이용해 이미터 노드 재사용하기
- 체크포인트 10-A
- 접촉 이벤트 연결하기
- 체력 상자 추가하기
- 코인 상자 부수기
- 체크포인트 10-B
- 요약
- 부수면 열리는 재미있는 상자 추가하기
- 11장. 수익 전략 선택하기
- 마케팅 플랜 수립하기
- 마케팅 시작 시기
- 마케팅 체크리스트
- 크라우드펀딩 활용하기
- 크라우드펀딩의 장단점
- 수익을 위한 디스플레이 광고 게재
- 광고 게재의 장점
- 광고 게재의 단점
- 인앱 구매 판매하기
- 인앱 구매 전략
- 플레이어를 늘리는 단어
- 해외 시장을 위한 지역화
- 범위 관리 및 프로젝트 완료
- 요약
- 마케팅 플랜 수립하기
- 12장. 게임 센터 통합하기
- iTunes Connect를 이용해 앱 등록하기
- 테스트 유저 생성하기
- 플레이어의 게임 센터 계정 인증하기
- 게임 안에서 게임 센터 열기
- 체크포인트 10-A
- 최고 점수의 리더보드 추가하기
- iTunes Connect에 새 리더보드 생성하기
- 코드에서 리더보드 업데이트하기
- 업적 추가하기
- iTunes Connect에 새 업적 생성하기
- 코드에서 업적 업데이트하기
- 체크포인트 10-B
- 요약
- 13장. 앱스토어 및 출시를 위한 준비
- 애셋 마무리하기
- 앱 아이콘 추가하기
- 시작 화면 디자인하기
- 지원되는 각 장치를 위한 화면 만들기
- iTunes Connect 정보 완성하기
- 가격 구성하기
- 엑스코드에서 프로젝트 업로드하기
- iTunes Connect에서 리뷰를 위해 제출하기
- 애셋 마무리하기