Learning iOS 게임 프로그래밍
도서명:Learning iOS 게임 프로그래밍
저자/출판사:마이클,데일리/정보문화사
쪽수:532쪽
출판일:2012-08-10
ISBN:9788956745688
목차
Chapter 01 게임 디자인
● 모든 것을 시작하게 만든 게임
● 그래서, 대단한 아이디어란 게 뭔데?
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 옵션
● 베타 테스트
다양한 기기 형태 | 피드백
● 정리