Learning iOS 게임 프로그래밍
iOS 게임 개발에 관심을 갖고 있는 개발자를 위한 안내서이자 지침서인『Learning iOS 게임 프로그래밍』. 게임 개발에 낯선 개발자라도 어렵지 않게 게임 개발에 뛰어들 수 있도록 좋은 길잡이가 되어주는 책이다. 모두 16장으로 나누어 게임 디자인부터 여정의 시작, 이미지 렌더링, 스프라이트 시트, 비트맵 폰트, 사운드, 게임 오브젝트와 엔티티 등에 대해 알아본다. 2D 게임을 제작할 수 있는 핵심 요소에 대해 설명하고, 타일 맵 편집기 같이 개발에 도움이 되는 툴이나 OpenGL ES를 이용한 각종 효과 등에 대해 설명한다.
Couldn't load pickup availability
출판사 리뷰
출판사 리뷰
App Store가 세상에 알려진 이후 게임은 iPhone, iPod Touch, iPad의 가장 인기 있는 분야가 되었다. 이것은 곧 킬러 게임 하나로 iPhone/iPad의 골드 러시를 방불케 하는 시대의 영웅이 될 수 있는 기회가 누구에게나 열려 있다는 것을 의미한다. 많은 사람들이 게임을 만드는 것이 매우 힘들고 어려운 작업이라고 생각하지만 실제로는 생각보다 쉽게 할 수 있다.
이 책은 타일 맵(Tile Map) 기반의 2D 게임인 Sir Lamorak's Quest: The Spell of Release를 제작하는 모든 과정에 대해 설명하고 있다(App Store에서 무료 다운로드 가능). 다운받은 게임을 실행하고 책에서 설명하는 부분을 컴파일하는 과정에서 게임의 이면에 숨겨진 모든 기술에 대해 이해하게 될 것이다. 이를 위해 이 책에서는 iPhone 게임을 성공시키기 위한 핵심 전략과 게임 개발에 필요한 각종 기술, 용어, 툴 등에 대해 소개하고 있다. 뿐만 아니라 게임 구상, 스토리 라인, 테스트, 디버깅 등 게임 개발 과정에 대한 모든 내용을 설명하고 있다.
게임 프로그램을 제작하면서 자주 사용하는 기능, 개념, 기법 등에 대한 내용에 집중적으로 설명하여 실제로 게임을 개발하는 데 도움이 되도록 한 이 책은 100% 유용하고 100% 실용적인 만큼 iOS 게임 개발자의 까다로운 눈높이를 만족시킬 수 있을 것이다.
이 책에서 설명하는 게임 Sir Lamorak's Quest를 지금 바로 App Store에서 다운받으세요.
프로그램은 무료입니다.
목차
목차
● 모든 것을 시작하게 만든 게임
● 그래서, 대단한 아이디어란 게 뭔데?
iPhone에 적합한 게임| 스토리 라인| 이름에 숨겨진 의미 | 게임의 목표
● 게임 플레이 요소
시간 | 생명 | 체력 | 오브젝트(Object) | 문(門, Door) | 무기 |
엔티티(Entity) | 플레이어(Player)
● 정리
Chapter 02 Three Ts: Terminology, Technology, Tools
● Terminology
스프라이트(Sprite) | 스프라이트 시트(Sprite Sheet)
애니메이션(Animation) | 비트맵 폰트(Bitmap Font) | 타일 맵(Tile Maps)
Particle System | 충돌 감지(Collision Detection)
인공지능(AI; Artificial Intelligence) | 게임 루프(Game Loop)
● Technology
Objective-C | Cocoa Touch | OpenGL ES | OpenAL
● Tools
iPhone SDK
● 정리
Chapter 03 여정의 시작
● Xcode 프로젝트 생성
● 프로젝트 실행
● 코드 분석
● Application Delegate
헤더파일 분석 | Implementation 파일 분석
● EAGLView
EAGLView.h | EAGLView.m
● ES1Renderer
ES1Renderer.h 분석 | ES1Renderer.m 분석
프레임버퍼(Framebuffer)와 렌더버퍼(Renderbuffer) 생성
색깔 값 정의 | 위치
● OpenGL 동작 원리
모델 변환 | 화면에 그리기
● 정리
Chapter 04 게임 루프
● 결론은 타이밍
● 충돌 감지(Collision Detection)
● 게임 루프
프레임 기반(Frame-Based) 게임 루프
시간 기반 고정 간격(Time-Based, Fixed Interval) 게임 루프
● 코드 분석
EAGLView 클래스 | EAGLView.m 파일 |
ES1Renderer 클래스 | View Port 설정
● 게임 장면과 게임 컨트롤러
게임 컨트롤러 생성 | GameController 클래스 |
싱글톤(Singleton) 만들기 | GameController.m |
AbstractScene 클래스 | GameScene 클래스
● 정리
● 연습문제
Chapter 05 이미지 렌더링
● 렌더링(Rendering)이란?
● 사각형 그리기
● 텍스처 매핑(Texture Mapping)
텍스처 좌표체계
● Interleaved Vertex Arrays
● 구조체(Structure)
● 이미지 렌더링 클래스
Texture2D 클래스 | TextureManager 클래스 | ImageRenderManager 클래스
● Image 클래스
초기화 | 서브이미지(Sub-Image) 탐색 | 이미지 복제
이미지 렌더링하기 | Getter와 Setter
● 정리
● 연습문제
Chapter 06 스프라이트 시트(Sprite Sheet)
● 스프라이트 시트(Sprite Sheet) 소개
단순 스프라이트 시트(Simple Sprite Sheet)
복합 스프라이트 시트(Complex Sprite Sheet)
● Zwoptex 사용하기
● SpriteSheet 클래스
초기화 | 스프라이트 탐색
● PackedSpriteSheet 클래스
초기화 | 컨트롤 파일 파싱 | 스프라이트 추출
● 정리
● 연습 문제
Chapter 07 애니메이션(Animation)
● 애니메이션 프로젝트
● Animation 소개
프레임 | State | Type | Direction | Bounce Frame
● Animation 클래스
초기화 | 프레임 추가 | 애니메이션 업데이트
애니메이션 렌더링 | 마무리
● 정리
● 연습문제
Chapter 08 비트맵 폰트(Bitmap Fonts)
● 비트맵 폰트 프로젝트
● 비트맵 폰트 소개
● 비트맵 폰트용 스프라이트 시트 제작
● BitmapFont 클래스
헤더 파일
● C로 하는 부분?
초기화 | 컨트롤 파일 파싱
● 텍스트 렌더링
텍스트 정렬 방식 구현하기 | 텍스트 폭과 높이 | Deallocation
● 정리
● 연습문제
Chapter 09 타일 맵(Tile Maps)
● 타일 맵 프로젝트
● 타일 맵 소개
● 타일 맵 에디터
타일 팔레트(Tile Palette) | 레이어(Layers)
● 타일 맵 제작
새로운 타일 세트 생성 | 맵 레이어(Map Layer) 생성
오브젝트 레이어(Object Layer) 생성 | 맵 그리기 | 오브젝트 배치
● Tiled 프로그램 설정 파일
Map 요소| Tileset 요소 | Layer 요소 | Object Group 요소
● 타일 맵 클래스
Layer 클래스 | TileSet 클래스 | TiledMap 클래스 | 초기화
맵 파일 파싱 | 레이어 이미지 생성 | 레이어 렌더링 | 타일 정보 얻기
● 정리
● 연습 문제
Chapter 10 Particle Emitter
● Particle Emitter 프로젝트
Particle System 개요 | Particle System 파라미터
● Particle의 Life Cycle
Particle 생성 | Particle 생존 | Particle 소멸 | 다시 태어나는 Particle
● Particle Emitter 설정
● Particle Emitter 클래스
TBXMLParticleAdditions 클래스 | ParticleEmitter 클래스
● Particle system 즐기기
● 정리
Chapter 11 사운드(Sound)
● 사운드 프로젝트
● iPhone 사운드 시스템
오디오 세션(Audio Session) | 음악 재생 | 사운드 효과 재생
사운드 효과 제작 | 스테레오와 모노
● 사운드 매니저 클래스
SoundManager 클래스
● 사운드 효과 관리
사운드 효과 로드 | 사운드 효과 재생 | 사운드 효과 재생 정지
사운드 효과와 듣는 사람 위치 설정
● 사운드 인터럽트 처리
● 정리
Chapter 12 User Input
● User Input 프로젝트
● User Input 소개
터치 이벤트
● 터치 이벤트 처리
touchesBegan 메소드 | touchesMoved 메소드
touchesEnded 메소드
● 터치 횟수에 따른 처리
● 가속도 이벤트
● 정리
Chapter 13 Game Interface
● Game Interface 프로젝트
● OpenGL ES 인터페이스
인터페이스 렌더링 | 버튼 영역 설정 | 터치 처리
화면전환 처리 | OpenGL ES 화면 방향
● UIKit 인터페이스
인터페이스 생성 | 인터페이스 연결 | UIKit Orientation
UIKit 인터페이스 보여주기/숨기기
● 정리
Chapter 14 게임 오브젝트와 엔티티
● 게임 오브젝트와 엔티티 프로젝트
● 게임 오브젝트
AbstractObject 클래스 | EnergyObject 클래스
● 게임 엔티티(Game Entity)
AbstractEntity 클래스 | 인공지능 | Player 엔티티 클래스
● 게임 오브젝트 및 엔티티 저장
● 정리
Chapter 15 충돌 감지(Collision Detection)
● 충돌 감지에 대하여
충돌 걸러내기
● 프레임(Frame) 기반과 시간(Time) 기반
● AABB(Axis-Aligned Bounding Boxes)
● 충돌 검사
● Collision Map
● 엔티티와 맵 간 충돌 감지
● 엔티티와 엔티티 간 충돌 감지
● 정리
Chapter 16 끝내기
● 카메라
● 게임 상태 및 설정 저장
게임 상태 저장 | 게임 상태 읽어오기 | 게임 설정 저장
게임 설정 읽어오기
● 점수 저장
점수 추가 | 최고 점수 저장 | 최고 점수 읽어오기
● 성능과 최적화
Instruments 사용하기 | Leaks Instrument | OpenGL ES Instrument
Compiling for Thumb 옵션
● 베타 테스트
다양한 기기 형태 | 피드백
● 정리
저자
저자
Your payment information is processed securely. We do not store credit card details nor have access to your credit card information.

