Game Programming in C++
도서명:Game Programming in C++
저자/출판사:산자이,마드하브/에이콘출판
쪽수:652쪽
출판일:2019-09-30
ISBN:9791161753560
목차
1장 게임 프로그래밍 개관
__개발 환경 설정하기
____마이크로소프트 윈도우
____애플 맥OS
__이 책의 소스 코드 얻기
__C++ 표준 라이브러리를 넘어
__게임 루프와 게임 클래스
____프레임의 구조
____게임 클래스 골격 구현하기
____메인 함수
____기본 입력 처리
__기초 2D 그래픽스
____색상 버퍼
____더블 버퍼링
____기초 2D 그래픽스 구현하기
____벽, 공, 패들 그리기
__게임 갱신하기
____실시간 그리고 게임 시간
____델타 시간 함수 로직
____패들의 위치 갱신하기
____공의 위치 갱신하기
__게임 프로젝트
__요약
__추가 독서
__연습
2장 게임 객체와 2D 그래픽스
__게임 객체
____게임 객체의 타입
____게임 객체 모델
____게임 객체를 게임 루프에 통합하기
__스프라이트
____이미지 파일 로딩
____스프라이트 그리기
____스프라이트 애니메이션
__배경 스크롤하기
__게임 프로젝트
__요약
__추가 독서
__연습
3장 벡터와 기초 물리
__벡터
____두 점 사이에서 벡터 얻어내기: 뺄셈
____벡터 스케일링하기: 스칼라 곱
____두 벡터의 결합: 덧셈
____거리 결정하기: 길이
____방향 결정하기: 단위 벡터와 정규화
____각도로부터 전방 벡터 변환
____전방 벡터를 각도로 변환: 아크탄젠트
____두 벡터 사이의 각도 구하기: 내적
____법선 벡터 계산하기: 외적
__기본 이동
____기본 MoveComponent 클래스 제작
____InputComponent 클래스 제작
__뉴턴 물리
____선형 역학 개요
____오일러 적분을 사용한 위치 계산
____가변 시간 단계 문제
__기본 충돌 감지
____원과 원의 교차
____CircleComponent 서브클래스 제작
__게임 프로젝트
__요약
__추가 독서
__연습
4장 인공지능
__상태 기계 행위
____상태 기계 설계하기
____기본 상태 기계 구현
____클래스로서의 상태
__길찾기
____그래프
____너비 우선 탐색
____휴리스틱
____탐욕 최우선 탐색
____A* 탐색
____데이크스트라 알고리즘
____길 따라가기
____기타 그래프 표현
__게임 트리
____미니맥스
____불완전 게임 트리 다루기
____알파 베타 가지치기
__게임 프로젝트
__요약
__추가 독서
__연습
5장 OpenGL
__OpenGL 초기화
____OpenGL 윈도우 설정
____OpenGL 콘텍스트와 GLEW 초기화
____프레임 렌더링
__삼각형 기초
____왜 폴리곤인가?
____정규화된 장치 좌표
____버텍스 버퍼와 인덱스 버퍼
__셰이더
____버텍스 셰이더
____프래그먼트 셰이더
____기본 셰이더 작성하기
____셰이더 로딩
____삼각형 그리기
__변환 기초
____오브젝트 공간
____세계 공간
____세계 공간으로 변환
__행렬과 변환
____행렬 곱셈
____행렬을 사용한 점의 이동
____세계 공간으로 변환, 재검토
____세계 변환을 액터에 추가
____세계 공간에서 클립 공간으로 변환하기
____변환 행렬을 사용하는 셰이더로 갱신
__텍스처 매핑
____텍스처 로딩
____버텍스 포맷 갱신
____셰이더 갱신
____알파 블렌딩
__게임 프로젝트
__요약
__추가 독서
__연습
6장 3D 그래픽스
__3D에서 액터 변환
____3D를 위한 변환 행렬
____오일러 각
____쿼터니언
____새로운 액터 변환
__3D 모델 로딩
____모델 포맷 선택
____버텍스 속성 갱신
____gpmesh 파일 로딩
__3D 메시 그리기
____클립 공간으로의 변환, 재검토
____화가 알고리즘을 버리고 Z-버퍼링을 사용하자
____BasicMesh 셰이더
____MeshComponent 클래스
__조명
____버텍스 속성 재검토
____광원의 유형
____퐁 반사 모델
____조명 구현
__게임 프로젝트
__요약
__추가 독서
__연습
7장 오디오
__오디오 구축하기
____FMOD
____FMOD 설치
____오디오 시스템 생성
____뱅크와 이벤트
____SoundEvent 클래스
__3D 위치 기반 오디오
____기본 리스너 설정
____SoundEvent에 위치 기반 기능 추가
____액터와 사운드 이벤트를 연관시키는 AudioComponent 작성
____3인칭 게임상의 리스너
____도플러 효과
__믹싱 및 이펙트
____버스
____스냅샷
____차폐
__게임 프로젝트
__요약
__추가 독서
__연습
8장 입력 시스템
__입력 장치
____폴링
____상승 에지와 하강 에지
____이벤트
____기본 입력 시스템 아키텍처
__키보드 입력
__마우스 입력
____버튼과 위치
____상대 모션
____스크롤 휠
__컨트롤러 입력
____컨트롤러 한 개 활성화하기
____버튼
____아날로그 스틱과 트리거
____2차원에서 아날로그 스틱 필터링하기
____복수개의 컨트롤러 지원
__입력 매핑
__게임 프로젝트
__요약
__추가 독서
__연습
9장 카메라
__1인칭 카메라
____기본 1인칭 이동
____피치 없는 카메라
____피치 추가(높낮이)
____1인칭 모델
__팔로우 카메라
____기본 팔로우 카메라
____스프링 추가
__궤도 카메라
__스플라인 카메라
__언프로젝션
__게임 프로젝트
__요약
__추가 독서
__연습
10장 충돌 감지
__기하 타입
____선분
____평면
____바운딩 볼륨
__교차 테스트
____점을 포함하는지 판정하는 테스트
____바운딩 볼륨 테스트
____선분 테스트
____동적 오브젝트
__게임 코드에 충돌 추가하기
____BoxComponent 클래스
____PhysWorld 클래스
____SegmentCast를 활용한 공의 충돌
____PhysWorld에서 박스 충돌 테스트
____벽과 플레이어와의 충돌
__게임 프로젝트
__요약
__추가 독서
__연습
11장 유저 인터페이스
__폰트 렌더링
__UI 스크린
____UI 스크린 스택
____정지 메뉴
____버튼
____다이얼로그 박스
__HUD 요소
____조준망 추가
____레이더 추가
__현지화
____유니코드로 작업하기
____텍스트 맵 추가하기
____기타 현지화 이슈
__다양한 해상도 지원
__게임 프로젝트
__요약
__추가 독서
__연습
12장 뼈대 애니메이션
__뼈대 애니메이션의 기초
____뼈대와 포즈
____인버스 바인드 포즈 행렬
____애니메이션 데이터
____스키닝
__뼈대 애니메이션 구현
____스키닝 버텍스 속성으로 그리기
____뼈대 로딩
____애니메이션 데이터 로딩
____스키닝 버텍스 셰이더
____애니메이션 갱신
__게임 프로젝트
__요약
__추가 독서
__연습
13장 중급 그래픽스
__텍스처 품질 개선하기
____텍스처 샘플링 재검토
____밉매핑
____이방성 필터링
__텍스처로 렌더링
____텍스처 생성하기
____프레임버퍼 개체 생성
____프레임버퍼 개체로 렌더링
____HUD에 거울 텍스처 그리기
__지연 셰이딩
____G 버퍼 클래스 생성
____G 버퍼에 쓰기
____전역 조명
____점광 추가
____개선 및 이슈
__게임 프로젝트
__요약
__추가 독서
__연습
14장 레벨 파일과 바이너리 데이터
__레벨 파일 로딩
____전역 속성 로딩
____액터 로딩
____컴포넌트 로딩
__레벨 파일 저장하기
____전역 속성 저장
____액터와 컴포넌트 저장
__바이너리 데이터
____바이너리 메시 파일 저장하기
____바이너리 메시 파일 로딩
__게임 프로젝트
__요약
__추가 독서
__연습
부록 A 중급 C++ 리뷰
__참조, 포인터, 그리고 배열
____참조
____포인터
____배열
____동적 메모리 할당
__유형별 클래스 주제들
____참조, 상수 그리고 클래스
____클래스의 동적 할당
____소멸자
____복사 생성자
____연산자 오버로딩
__컬렉션
____빅 오 표기법
____벡터
____연결 리스트
____큐
____스택
____맵
____해시 맵
____반복자, auto, 범위 기반 for 루프
__추가 독서