장바구니 담기 close

장바구니에 상품을 담았습니다.

RPG를 만들면서 배우는 유니티 2D 게임 개발

RPG를 만들면서 배우는 유니티 2D 게임 개발 에이콘 모바일 프로그래밍 시리즈

  • 사이먼 잭슨
  • |
  • 에이콘출판
  • |
  • 2015-09-15 출간
  • |
  • 544페이지
  • |
  • 188 X 235 X 28 mm /1005g
  • |
  • ISBN 9788960777545
★★★★★ 평점(10/10) | 리뷰(1)
판매가

35,000원

즉시할인가

31,500

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
31,500

이 상품은 품절된 상품입니다

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

★ 이 책에서 다루는 내용 ★

■ 자신만의 RPG 게임을 만들어 가면서 유니티3D 4.3 버전에 새로 추가된 기능 학습
■ 새로운 스프라이트 불러오기와 렌더링 시스템
■ 새로운 스프라이트 애니메이션 시스템의 장점과 개선된 메카님(Mecanim) 기능
■ 태그, 레이어, 스프라이트 정렬과 순서 매기기를 활용한 렌더링 기법
■ 델리게이트(Delegates), 이벤트(Events), 메시징(Messaging)을 제대로 사용하는 방법과 완전한 기능을 갖춘 RPG 대화 시스템 구축
■ 메카님 기반 AI(인공지능)와의 전투와 상태 기계
■ 시장에서의 성공을 위한 마케팅 기법과 수익 모델 설계, 배포 방법
■ 플랫폼 선택과 배포, 에디터 확장

★ 이 책의 대상 독자 ★

이 책은 C#에 대한 지식을 갖고 있으면서 유니티를 사용해 완전한 기능을 갖춘 2D RPG 게임을 개발하고자 하는 독자를 대상으로 한다.

★ 이 책의 구성 ★

1장, ‘개요’에서는 유니티 버전 4.3에 새롭게 추가된 내용을 살펴보는 것으로 시작해 새로운 2D 시스템과 기타 기능에 대해 알아본다.

2장, ‘캐릭터 생성’에서는 본격적으로 2D 애셋과 스프라이트의 사용 방법을 살펴보며, 스프라이트 에디터 사용법과 기타 재미있는 기능들을 다룬다.

3장, ‘애니메이션 처리’에서는 2D 게임에서 매우 중요하면서도 까다로운 애니메이션 시스템에 대해 제대로 살펴본다.

4장, ‘게임 월드’에서는 배운 내용을 토대로 거주할 마을을 만들고 캐릭터가 뛰어다니게 만들어본다.

5장, ‘NPC와 상호작용’에서는 아무런 대화도 없는 RPG 게임은 상상하기도 어려우므로, 메시징과 대화 시스템을 만들어가면서 활용할 수 있는 고급 기법을 살펴본다.

6장, ‘넓은 야생의 세계’에서는 다루는 범위를 넓혀 아트와 애셋, 플레이어의 탐색을 위한 맵 뷰 개발에 관해 살펴본다. 자세히 보면 맵 뷰에서 자신의 집을 볼 수도 있다.

7장, ‘적과의 조우와 도망’에서는 월드가 크고 무서운 장소라고 생각해보자. 당신은 자신들의 마지막 식량을 먹고 있는 고블린 떼를 우연히 만날 수도 있고, 겁을 먹고 도망칠 수도 있다. 여기에서는 메카님(Mecanim) 설정을 비롯한 전투장면 구성과 인공지능에 대해 살펴본다.

8장, ‘무기 구매’에서는 2D 게임의 장점을 극대화하기 위해 간단한 상점을 구성해본다. 상호작용을 위해 기존 메시징 시스템을 재활용하고 플레이어의 구조에 인벤토리를 추가한다. 추가로 플레이어의 인벤토리를 멋진 커맨드바 구현으로 보여주는 그래픽적인 방법도 살펴본다.

9장, ‘전투 준비’에서는 싸울 준비를 한다. 전투 장면은 있지만, 아직 전투 엔진이 없다. 이제는 턴 기반의 전투 엔진으로 만든 걸 확장할 차례다. 메카님의 근육을 아마도 여태까지 한 번도 생각지 못했던 방식으로 다룬다.

10장, ‘전투와 경험치 획득’에서는 아직 낌새를 못 챈 고블린 무리에게 공격을 시작하고 그들의 작은 몸통이 피와 함께 산산이 부서지는 장면을 생각해본다. 물론 그렇게 한다면 PEGI(유럽 민간 게임 등급 분류 기관) 등급 보류 판정이 날 수도 있지만 어떤 형태로 진행하느냐는 개발자의 몫이다.

11장, ‘조심스레 전진하는 여행자’에서는 게임 프레임워크가 준비된 상태라고 가정한다. 필요한 건 콘텐츠와 약간의 조립만 남았으니 게임 제작을 마무리하는 데 필요한 내용을 살펴본다. 한발 더 나아가 편집기를 확장하고 다듬어서 더욱 유용하고 쉽게 활용하는 방법도 살펴본다.

12장, ‘배포’에서는 게임 개발의 마지막 단계인 기기에 탑재하는 과정을 다룬다. 신뢰도 높은 방식의 세이브/로드 시스템을 구축하고, 이를 다양한 플랫폼에서 잘 동작하게 하는 방법을 살펴본다. 고생해서 개발한 게임을 성공적으로 시장에 출시하고 마케팅하는 방법도 살펴본다.

부록, ‘추가 리소스’에서는 애셋이나 유용한 정보 링크 등의 추가 자료를 통해 게임 개발 여정에 도움을 준다.

목차

1. 개요
__애셋 구하기
____사이트 모음
__2D 세상 속으로
____새로운 2D 모드
____스프라이트
________스프라이트 렌더러
________스프라이트 에디터
________스프라이트시트
________텍스처 아틀라스
________스프라이트 메시
________Box2D 물리 시스템
________새로운 애니메이션 도프 시트
____기타 유니티 4.3 개선 사항
________개선된 Mecanim 성능
________윈도우폰 API 개선과 윈도우 8.1 지원
________동적 나브 메시(프로 버전에서만 지원)
________에디터 개선 사항
________모노디벨롭 4.01
________무비 텍스처
__정리

2. 캐릭터 생성
__프로젝트 제대로 시작하기
____구조
____오브젝트 이름 지정
__컴포넌트 이해
____단축을 사용한 콤포넌트 접근
____컴포넌트를 사용하는 더 나은 방법: 참조
____더 나은 방법
__프로젝트 생성
__클래스
____객체지향 설계
____게임 구조
________공용 게임 오브젝트
________추가 사항
__행위 기획
____공용 게임 오브젝트의 행위
____플레이어 캐릭터의 행위
__유니티 스프라이트 시스템 소개
____스프라이트 가져오기
________Texture type: sprite
________Sprite Mode: single/multiple
________Packing tag
________Pixels to units
________Sprite Editor 버튼
____스프라이트 에디터
________스프라이트 자르기(slicer)
________뷰 컨트롤
________스프라이트 영역 제어
__통합하기
____메인 캐릭터 불러오기
____영웅 캐릭터
____영웅 제어
__추가 사항
__정리

3. 애니메이션 처리
__스프라이트 애니메이션
____애니메이션 컴포넌트
________애니메이션 컨트롤러
________애니메이션 클립
________애니메이터 컴포넌트
____애니메이션 컨트롤러 설정
____애니메이션 클립 설정
________수동 애니메이션 클립 생성
________자동 애니메이션 클립 생성
________애니메이터 도프 시트
________Dope/curve 뷰
__통합하기
____애니메이션 컨트롤러 설정
____첫 애니메이션 클립 추가(정지 상태)
____뛰는 동작 애니메이션 클립 추가
____애니메이션 상태 연결
____스크립트에서 컨트롤러 접근
____추가 개선
____커브 처리
__추가 진행
__정리

4. 게임 월드
__배경과 레이어
____스프라이트 나누기 결정
____마을 배경
____마을 건물
____추가 배경
__씬 구성
____마을 배경 추가
____스프라이트 정렬 레이어
____스프라이트 정렬 순서
____씬 정렬 레이어 업데이트
__카메라 처리
____Update와 FixedUpdate, LateUpdate의 비교
____해상도 관련 주의 사항
____FollowCamera 스크립트 개선
__전환과 경계
____경계를 가진 마을
____계속 이동
____실전 게임을 위한 준비
__배경과 움직이는 요소
____패럴랙싱
____전경 오브젝트
__셰이더와 2D
__추가 사항
__정리

5. NPC와 상호작용
__RPG 게임 적용
__고급 프로그래밍 기술
____싱글톤과 매니저
________매니저 접근법: 빈 게임 오브젝트 사용
________싱글톤: C# 싱글톤 패턴 사용
__게임 오브젝트 간의 통신
____위임
________설정 가능 메소드 패턴
________위임 패턴
________합성 위임
____이벤트
____메시징
____개선된 방법
__백그라운드 작업과 코루틴
____코루틴 진입
____IEnumerator
____양보하기
____코루틴 시작
____보완하기
__직렬화와 스크립팅
____애셋 데이터 저장과 관리
____편집기에서 직렬화 파일 사용
____코드에서 .asset 파일에 접근
__통합하기
____NPC와 대화
________대화 오브젝트
________나중을 위한 오브젝트 저장과 직렬화
________대화 컴포넌트
____기본 대화 시스템 구축
________매니저
________대화 시작
________대화 표시
________기능 개선
____학습 내용 연결
__추가 사항
__정리

6. 넓은 야생의 세계
__더 커다란 뷰
____맵의 종류
________고정 맵
________생성 맵
____2D 게임에서의 3D 사용
____절차적 진행
____스크린 공간과 월드 공간
__통합하기
____맵 추가
____흥미로운 장소 추가
____재사용을 위한 MapPoint 프리팹 생성
____NavigationPrompt 스크립트 수정
____NavigationManager 스크립트 수정
____클릭이나 터치로 탐험
________입력 관리
________입력 우선순위 관리
________입력 순서 관리
________커브 사용
________시작 위치 수정
________너무 먼 여행
____화면 전환
________페이딩을 사용한 레벨 로딩
____새로운 씬을 포함하기 위한 빌드 설정
__추가 사항
__정리

7. 적과의 조우와 도망
__이벤트 시스템
__임의성
____랜덤 코드/생성 설계
____완전한 임의성
__기본 인공지능
__상태 기계
____상태 정의
____간단한 단일 선택
____다중 상태 처리
____상태 매니저
__센서
__통합하기
____새로운 씬 구성
____첫 번째 적 추가
____무리 소환
________집으로의 귀환
____랜덤 이벤트
____마지막 남은 일
__추가 사항
__정리

8. 무기 구매
__쇼핑을 하는 이유
__아이템의 힘
__상점 구성
__인벤토리 형태
____99의 법칙
____방해 시스템
____슬롯 기반 시스템
____미니 게임
____현실 세계
__결제 유도
____유료 판매
____체험판을 제공하는 유료 판매
____광고 탑재
____앱 내부 결제
____게임 재화
__통합하기
____상점 애셋 수집
____상점 씬 구성
____인벤토리 아이템 생성
____상점 관리
____2D 버튼 처리
____플레이어 인벤토리 정의 업데이트
____상품 입고
____상점에서 나가기
____상점 진입
____인벤토리 관리
____플레이어 인벤토리 동작 추가
__추가 사항
__정리

9. 전투 준비
__효과적인 RPG UI 오버레이
____모험가의 오버레이
____컨텍스트에 따른 오버레이 구성
____최신 플로팅 UI
____밸런스 유지
__통합하기
____전투 상태 매니저
____코드에서 상태 매니저 사용
____전투 시작
____작은 능력 추가
____GUI 표현
________커맨드 바
________커맨드 버튼
________씬에 커맨드 바 추가
____무기 선택
________커맨드 버튼 선택
________커맨드 바 선택 관리
________BattleManager 상태에 선택 기능 추가
________BattleManager 상태에 무기 지원
__추가 사항
__정리

10. 전투와 경험치 획득
__시험장
__레벨 업
__밸런싱
__통합하기
____BattleManager 스크립트 준비
____적 개선
________적 프로파일/컨트롤러
________고블린 프리팹 업데이트
________코드에서 적 프로파일 설정
____목표물 선택
________원형 프리팹 선택
________EnemyController 클래스에 선택 로직 추가
____공격! 공격!
____3D 파티클로 표현하는 성가신 고블린의 반응
________2D와 3D의 혼합
________파티클 이펙트와 2D
________죽음 스프라이트 추가
________파티클 이펙트를 위한 재질 생성
________고블린 프리팹 구조 개선
________파티클 추가
________죽음 애니메이션
________애니메이션에 파티클 추가
________마무리 작업
________새로운 GoblinEnemy 게임 오브젝트를 프리팹으로 만들어 전투에 추가
________휴스톤, 문제가 생겼어요!
____마지막 예행연습
__추가 사항
__정리

11. 조심스레 전진하는 여행자
__에디터 확장
____프로퍼티 드로워
________프로퍼티 드로워 예제
____커스텀 에디터
____에디터 윈도우
____기즈모
____에디터 메뉴 구성
________MenuItem 속성 추가
________MenuItem 속성 활성화/비활성화
________MenuItem 속성에 단축키 추가
________컨텍스트 MenuItem 추가
____에디터 폴더 내에서의 스크립트 실행
________다른 접근 방법
__인게임 메뉴 구조 구성
____스크린
________스플래시 스크린
________로딩 화면
________메인 메뉴
________저장 슬롯/레벨 선택
________설정 페이지
________About 화면
________개인 정보 보호 정책
________일시 정지 화면
________추가 사항(구매, 업적, 리더보드 등)
________소셜
____흐름
__설정 기능
____PlayerPrefs 사용
____데이터 직렬화
____디스크에 데이터 저장
____저장된 데이터 모델링
____저장과 불러오기 기능
____Save와 Load 함수 테스트
____웹에 백업
__추가 사항
__정리

12. 배포
__플랫폼 차이 대응
____프로세서 지시자
________다른 플랫폼을 위한 저장 시스템 개선
________빌드 노트
____유니티 접근
________UnityEngine 네임스페이스 접근
________스태틱 클래스
____플랫폼 접근
________유니티 프로젝트에서의 스태틱 이벤트
________플랫폼 DLL 내장
____네이티브 플러그인(프로 버전만 해당)
__Unity3D에서 코드 푸시
____애셋 프로세싱
____빌드 프로세싱
__애셋 빌드
__패키징
__게임 마케팅
__정리

부록. 추가 리소스
__스크립팅 리소스
____에디터 확장
____AI 추가 검토
____점진적 생성
____고급 코딩
____기타 스크립팅 리소스
__유용한 애셋
__아트 소스와 특수 효과
__웹 하이라이트

저자소개

저자 사이먼 잭슨(Simon Jackson)은 어렸을 때부터 문제를 해결하는 데 관심이 많은 엔지니어적인 기질을 다분히 갖춘 사람이었다. 다시 말하면 사물을 분해해 동작 원리를 분석하고, 이를 다시 조립해 이전보다 더 나아지게 만드는 데 관심이 많았다. 처음으로 접한 컴퓨터는 코모도어(Commodore) Vic20이었다. 단순한 형태로 테이프 덱을 사용하며, 베이식이나 어셈블리 언어를 사용해서 프로그램을 작성해야 했는데 이 컴퓨터와 함께한 시간은 즐거운 나날이었다. 이후 ZX 스펙트럼(Spectrum) +2를 통해 최신 그래픽을 맛보면서 즐거운 시간을 보냈다. 하지만 여전히 테이프 덱의 불러오기는 30분이나 걸리는 문제가 있었다. 게임에도 열정을 보였으며, 게임을 위한 컴퓨터가 필요했으나 산타할아버지는암스트래드(Amstrad) 1640을 선물해줬고, 이게 그의 첫 개인용 컴퓨터였다. 이때부터 분해와 조립 본능이 폭발했으며 그의 컴퓨터에는 수많은 추가 기능과 개선 사항이 적용됐다. 그는 프랑켄슈타인(Frankenstein)이었고, 그의 컴퓨터는 수많은 부품으로 가공된 개인용 몬스터가 됐다. 즐거운 시절이었다. 이렇게 자신이 배우고 익힌 팁과 기술을 다른 사람에게 전달하는 데 열정을 보였는데, 이는 지금의 모습으로 성장하는 데 큰 도움이 됐다. 자신을 게임 개발 전반에 걸쳐 두루 지식을 보유한 전문가라고 분류한다. 다양한 프레임워크에서의 개발 과정에서 얻은 경험과 지식을 토대로 멋진 프레임워크와 게임을 어떻게 만드는지에 대해 자신의 블로그나 비디오 공개 강연 등을 통해 소개해왔다. 지금껏 C++와 MDX, XNA, 모노게임(MonoGame), 유니티3D(Unity3D), 선번 게이밍 엔진(The Sunburn Gaming Engine), HTML 등을 다뤄왔는데, 이런 다양한 경험 덕분에 멀티플랫폼을 대상으로 하는 다양한 형태의 게임을 개발하고 관리하는 데 있어 매우 균형 잡힌 시야를 갖게 됐다. 여기에서 멈추지 않고 정기적으로 모노게임(MonoGame) 프로젝트에도 새로운 기능과 예제를 추가하고, 이를 누겟(NuGet)에 배포하는 등의 기여를 해왔다. 또한 직접 몇 개의 오픈소스 프로젝트도 진행하고 있으며, 항상 새롭고 재미있는 주제를 찾고 있다. 낮에는 건강 관리 관련 산업에서 리드 기술 설계자로 일하면서 더 나은 소프트웨어를 통한 환자의 건강 관리 개선에 힘쓰고 있으며, 밤에는 자신만의 게임 타이틀 출시를 준비하는 동시에 새로운 지식의 탐구나 교육에도 힘쓰고 있다. 언젠가는 밤에 하는 취미가 돈이 되겠지만, 그때까지는 두 종류의 삶을 병행할 계획이다.

도서소개

[RPG를 만들면서 배우는 유니티 2D 게임 개발]은 유니티 버전 4.3에 새롭게 추가된 내용을 살펴보는 것으로 시작해 유니티가 새롭게 제공하는 2D 특화 기능을 하나씩 다루면서 유명한 게임에서 흔히 사용하는 기법을 따라 해보는 형태로 구성되어 있다. 책의 내용을 끝까지 잘 따라가기만 한다면 완전한 하나의 2D 게임을 개발하는 데 필요한 전반적인 지식을 갖출 수 있을 것이다.

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.