Top

스위프트로 만드는 게임 개발 [스위프트를 활용한 게임 개발부터 출시까지]

  • 원서명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장, ‘앱스토어 및 출시를 위한 준비’에서는 게임을 패키징하고 앱스토어에 제출하는 과정을 다룬다.

저자/역자 소개

지은이의 말

게임 개발자가 되는 데 이보다 좋은 시기는 없었다. 앱스토어는 아이디어를 대규모 고객에게 배포할 수 있는 특별한 기회를 제공한다. 더불어 스위프트 3도 발표됐다! 애플의 스위프트 언어는 개발 언어로서 성숙해가는 과정에 있고 버전 3에서 큰 발전을 이뤘다. 게임 개발이 처음이든 전문 지식을 위해 추가로 배우든 간에 스위프트를 이용한 게임 개발을 즐길 수 있을 거라 생각한다.
이 책을 통해 스위프트와 SpriteKit에 대한 기본 지식을 공유하는 것이 개인적인 목표다. 완전한 데모 게임 제작을 통해 스위프트 개발 프로세스의 모든 단계를 배울 예정이다. 이 책을 끝내고 나면 처음부터 끝까지 자신만의 게임 아이디어를 계획하고 출시하는 데 편안함을 느낄 수 있을 것이다

지은이 소개

스티븐 해니(Stephen Haney)

iOS 게임 개발에 관한 두 권의 책을 저술했다. 8살 때 먼지로 가득했던 오래된 노트북에서 BASIC을 사용해 프로그래밍을 시작했고 그 후로 소프트웨어와 게임 제작에 매료됐다. 이제는 여러 언어에 능통하며 프로그래밍을 통한 창의력 발산을 좋아한다. 인디 게임 개발이 시각적, 청각적, 심리적 도전의 놀라운 조합으로 플레이어와 제작자 모두에게 보람을 주는 예술적 형식이라고 믿는다.

옮긴이의 말

이 책은 몇 년 전 인디 게임계를 발칵 뒤집어놓은 플래피 버드(Flappy Bird)류의 게임 제작을 통해 iOS 게임 개발을 시작하고 싶은 예비 개발자들에게 도움을 줄 수 있는 내용을 담고 있다. 개발 환경 설정부터 시작하기 때문에 스위프트를 처음 대하는 예비 개발자들도 쉽게 시작할 수 있도록 구성돼 있다.
1장에서는 스위프트 소개, 개발 환경 설정 등 게임 개발에 필요한 준비를 함으로써 앞으로 진행할 예제 프로젝트에 대비한다. 기초적이지만 매우 중요한 단계라고 할 수 있다. 2장부터 10장까지는 게임 개발에 필요한 요소들을 한 단계씩 구현한다. 단순하지만 중독성 있는 게임을 만들면서 이미지, 물리, 컨트롤, 사운드 등 게임 개발에 필요한 모든 요소들이 포함했고, 각 단계마다 코드를 구분해 설명하고 주석을 통해 소스 코드의 내용을 자세하게 설명하려는 저자의 노력이 보인다.
이 책에는 초급 개발자를 위한 책에서는 쉽게 볼 수 없는 수익 창출에 대한 이야기도 포함돼 있다. 게임 개발은 노동력과 시간이 많이 필요한 작업이다. 따라서 게임 개발을 취미로 하더라도 수익을 낼 수 있다면 더 좋을 것이다. 보통 개발을 시작할 때는 수익 전략에 대한 고민을 하지 않는 경우가 많은데, 이 책을 읽고 난 후 실제 게임 프로젝트를 시작하는 시점에 수익 전략에 대해 고민해본다면 많은 도움이 될 것이다. 12장과 13장에는 게임 센터와 통합하는 방법, 앱 스토어 출시를 위해 필요한 준비 과정을 설명하고 있다. 간단할 거라는 생각과 달리 실제로 해보면 오래 걸릴 수 있는 내용이기 때문에 책을 통해 실습하면 나중에 큰 도움이 될 수 있는 내용이다.
전반적으로 자세하고 쉽게 설명돼 있지만 게임 개발에 필요한 내용을 전체적으로 다루기 때문에 이 책에서 다루는 내용은 결코 적지 않다. 기초적이지만 중요한 내용들이 포함돼 있으니 한 단계씩 천천히 따라가면서 게임을 끝까지 완성하기 바란다.
번역을 진행하면서 문장마다 저자의 의도를 파악하려고 많은 노력을 기울였지만 의도를 제대로 파악하지 못하거나 잘못 번역된 내용이 있을지도 모르겠다. 잘못된 부분이나 책에 관련된 어떠한 의견이라도 소중히 여겨 잘못된 내용을 고치는 데 좋은 자료로 참고하겠다.

옮긴이 소개

장세윤

대학 시절 유니티 엔진과 하드웨어를 연동한 교육용 콘텐츠를 제작하면서 개발에 흥미를 갖기 시작했다. 대학 졸업 후 유니티 한국 지사에서 필드 엔지니어로 근무하며 기술지원, 유니티 엔진 기술홍보, 문서 번역 업무를 진행했다. 현재는 유니티 엔진, 언리얼 엔진을 활용한 게임 개발 교육을 진행하는 프리랜서 강사로 활동하고 있다. 안드로이드/iOS 앱 개발 등 개인 프로젝트도 진행하고 있다.

목차

목차
  • 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
    • 요약

  • 5장. 적, 코인, 파워업 생성
    • 등장인물 소개
    • 아트 애셋 검색 및 추가하기
    • 파워업 스타 추가
      • Start 클래스 추가
    • 새로운 적 추가: 매드 플라이
      • MadFly 클래스 추가하기
    • 또 다른 공포 – 박쥐!
      • Bat 클래스 추가하기
    • 지면을 지켜라: 블레이드 추가
      • Blade 클래스 추가
    • 코인 추가
      • Coin 클래스 생성
    • 프로젝트 탐색기 정리하기
    • 새 게임 오브젝트 테스트하기
    • 체크포인트 5-A
    • 끝없는 비행을 위한 준비
    • 요약

  • 6장. 끝나지 않는 게임 월드 생성하기
    • SpriteKit 신 에디터로 레벨 디자인하기
      • 게임 로직과 레벨 데이터 분리하기
      • 신 에디터에서 커스텀 클래스 사용하기
    • 플레이어의 비행을 방해하는 장애물
      • 첫 번째 장애물 만들기
      • 신을 게임에 통합하기
    • 체크포인트 6-A
    • 지속적으로 장애물 환경 생성하기
      • 더 많은 장애물 만들기
      • SKSpriteNodeuserData 속성에 메타데이터 저장하기
      • GameScene 클래스에 EncounterManager 연결하기
    • 파워업 스타 랜덤으로 생성시키기
    • 브론즈 코인을 골드 코인으로 바꾸기
    • 체크포인트 6-B
    • 요약

  • 7장. 충돌 이벤트 구현
    • SpriteKit의 충돌 용어 익히기
      • 충돌과 접촉
      • 물리 카테고리 마스크
      • 스위프트에서 카테고리 마스크 사용하기
    • 게임에 접촉 이벤트 추가하기
      • 물리 카테고리 설정하기
    • 게임 오브젝트에 카테고리 할당하기
      • 플레이어
      • 지면
      • 파워업 스타
      • 코인
    • 접촉 이벤트를 위한 GameScene 준비하기
      • 콘솔 출력결과 확인하기
      • 접촉 이벤트 코드 테스트
    • 체크포인트 7-A
    • 플레이어 체력과 데미지
    • 데미지를 입는 경우와 게임 오버에 대한 애니메이션
      • 데미지 애니메이션
      • 게임 오버 애니메이션
      • 코인 획득하기
      • 파워업 스타 로직
    • 체크포인트 7-B
    • 요약

  • 8장. 더욱 멋지게 다듬기: HUD, 시차 배경, 파티클
    • HUD 추가하기
      • HUD 구현하기
    • 시차 배경 레이어
      • 배경 애셋 추가하기
      • 배경 클래스 구현하기
      • GameScene 클래스에서 배경 연결하기
    • 체크포인트 8-A
    • SpriteKit의 파티클 시스템 활용하기
      • 원형 파티클 애셋 추가하기
      • SpriteKit Particle 파일 생성하기
      • 경로 파티클 설정 구성하기
      • 게임에 파티클 이미터 추가하기
    • 게임이 시작될 때 안전성 부여하기
    • 체크포인트 8-B
    • 요약

  • 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에서 리뷰를 위해 제출하기

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안