서브메뉴

본문

게임 프로그래밍의 핵심 테크닉과 알고리즘
게임 프로그래밍의 핵심 테크닉과 알고리즘
저자 : Daniel Sanchez-Crespo Dalmau
출판사 : 사이텍미디어
출판년 : 2005
ISBN : 8955508379

책소개


이 책은 게임 프로그래밍을 위한 완벽하면서도 전형적인 입문서이다. 게임 프로그래머가 되기를 열망하는 사람들에게는 기본적인 학습 재료가 될 뿐만 아니라 전문적인 게임 개발자에게도 참고서로서 쓰일 수 있게 기획된 책이다. 현재뿐만 아니라 앞으로 개발될 게임들에도 적용 가능하도록 기능적이면서 장기간 유용한 기술들에 초점을 맞추고 있다.

- 유행을 따르는 방법이나 단일 API(Application Programming Interface)의 적용보다는 시간적으로 검증된 기술들이나 알고리즘들에 대한 설명
- OpenGL이나 DirectX API 모두를 사용한 완벽한 C++ 코딩 예제
- 코딩 설계와 레이아웃 기술, 자료구조 및 알고리즘과 게임만을 위한 설계 패턴들
- 스크립팅 엔진뿐만 아니라 행동-지향 및 전략적 인공지능에 관한 내용을 포함하고 있는 인공지능 기술들
- 단일 게임들부터 Massively Multiplayer Title까지를 위한 네트워크 프로그래밍
- Mario Bros와 Zelda와 같은 고전적인 게임 내의 알고리즘의 분석과 2D 프로그래밍하기. 고전적 2D 특수 효과 연구
- 기하 처리에 대한 분석, Culling, Clipping, Occlusion 감지 및 level-of-detail 기술들을 포함하는 3D 파이프라인

● 난이도 : 초,중급자용

목차


PART 1 게임 플레이 프로그래밍
제1장 게임 프로그래밍 연대기 ?3
Spacewar 이전 4
Spacewar에서 Atari까지 8
게임 콘솔과 개인용 컴퓨터 11
조정과 합병 16
게임 엔진의 출현 20
휴대용 기기 혁명 25
휴대전화 현상 28
멀티 플레이어 게임 29
마감하며 32

제2장 게임 구조?33
실시간 소프트웨어 34
게임 로직 42
연출 46
프로그래밍 프로세스 52
마감하며 65

제3장 데이터 구조 및 알고리즘?67
타입, 구조 그리고 클래스 68
데이터 구조 71
표준 템플릿 라이브러리 95
마감하며 103

제4장 디자인 패턴?105
정의된 디자인 패턴 106
몇 개의 유용한 프로그래밍 패턴들 107
유용성 디자인 패턴 126
마감하며 130

제5장 사용자 입력?131
키보드 132
마우스 140
조이스틱 145
하드웨어 추상화 152
포스 피드백 155
마감하며 158

제6장 기본적인 인공 지능 기술들?159
Context 160
인공 지능 시스템의 구조 162
특정 기술들 165
마감하며 201

제7장 액션 지향적 인공 지능?203
액션 게임에 대해서 204
기획된 인공 지능들 204
객체 쫓아가기 207
추적하기 211
추적 피하기 215
순찰하기 215
숨기 및 은폐하기 216
사격하기 218
전부를 모아서 하나로 만들기 224
마감하며 227

제8장 전술적 인공 지능?233
전술적 사고에 대한 설명 234
군사적 분석: 영향력 지도 256
전술 표현하기 259
마감하며 263

제9장 스크립팅?265
스크립팅 언어 구축하기 267
내장형 언어 279
소켓 기반의 스크립팅 291
마감하며 294

제10장 네트워크 프로그래밍?295
인터넷은 실제로 어떻게 동작할까 296
프로그래머측의 시각: 소켓 298
클라이언트 300
간단한 TCP 서버 307
다중 클라이언트 서버 310
UDP 서버 316
소켓 정지 예방하기 317
클라이언트-서버 게임 설계하기 319
대단위 다중 실행자 게임 321
마감하며 331

PART 2 엔진 프로그래밍
제11장 2차원 게임 프로그래밍?333
구식 하드웨어 334
2차원 게임에서의 데이터 구조 336
매핑 행렬 340
2차원 게임 알고리즘 343
특수 효과 355
마감하며 365

제12장 3차원 파이프라인 개관 ? 367
첫인상 368
기본적인 데이터 타입 369
기하학적 형식 378
일반적인 그래픽 파이프라인 379
마감하며 403

제13장 실내 렌더링?405
일반적 분석 406
차단기 기반 알고리즘 407
이진 공간 분할 알고리즘 408
포탈 렌더링 425
계층적 가려짐 맵 431
복합 접근방법 433
하드웨어 지원을 받는 가려짐 검사 435
마감하며 439

제14장 실외 알고리즘?339
개관 442
실외 렌더링을 위한 데이터 구조 443
Geomipmapping 448
ROAM 452
덩어리진 LODs 460
GPU 중심의 접근방법 464
실외 장면 그래프 468
마감하며 470

제15장 캐릭터 애니메이션?471
분석 472
명시적 대 암시적 방법들 472
명시적 애니메이션 기술 474
암시적 애니메이션 개관 484
성질 다루기 494
탈것에 관한 기록 497
사지(四肢) 절단 497
얼굴 애니메이션 499
역(逆)방향 운동학 501
정방향 운동학과 역방향 운동학의 혼합 507
마감하며 508

제16장 영화 촬영법?509
일인칭 사수 510
관성 다루기 512
비행 시뮬레이터와 4원수 514
3인칭 카메라 520
영화적인 카메라: 카메라 스타일 525
영화적인 카메라: 배치 알고리즘 530
에이전트 기반 접근방법 536
마감하며 537

제17장 셰이딩?539
실세계 조명 540
빛 매핑 546
BRDF 564
비사진현실주의적 렌더링 581
마감하며 586

제18장 텍스처 매핑?587
텍스처 유형 588
타일링과 전사 593
필터링 594
밉매핑 595
텍스처 최적화 597
다단계 기법 602
다중 텍스처 606
텍스처 연산과 조합 607
세부 텍스처 615
환경 매핑 616
범프 매핑 617
광택 매핑 620
마감하며 621

제19장 입자 시스템?623
입자 시스템의 해부 624
입자 데이터 구조 625
구조에 대한 몇 가지 주의 639
가속화 기법 641
마감하며 646

제20장 조직적 렌더링?647
자연과 복잡성 648
나무 650
풀 658
구름 665
바다 668
마감하며 673

제21장 절차적 기법?675
절차적 선언서 676
렌더맨 678
실시간 셰이딩 언어 682
셰이더의 유형 685
텍스처 매핑 691
입자 시스템 694
애니메이션 696
특수 효과 703
마감하며 705

제22장 기하학적 알고리즘?707
점 포함 테스트 708
광선 교차 테스트 715
이동 테스트 720
점 대 삼각형 집합 충돌 723
메시 대 메시 724
볼록 외피 계산하기 725
삼각형 축소 728
마감하며 733

PART 3 Appendix
부록 A 성능 튜닝 735
분석 테크닉 738
분석 툴 743
일반적인 최적화 테크닉 748
애플리케이션 756
효율적인 데이터 전송 756
기하 파이프라인 튜닝 759
래스터 스테이지 튜닝 761
다른 최적화 툴 763
마감하며 764

부록 B OpenGL 765
원리 766
기본 구문 배열 767
즉시 방식 렌더링 770
변환 773
카메라 모델 779
조명하기 781
텍스처 처리하기 787
RGBA 모드로 작업하기 792
디스플레이 목록 795
정점 배열 797
OpenGL의 확장 804
효율성에 대한 고려 사항들 805
기하 정보의 표현 806
마감하며 808

부록 C Direct3D?809
역사 812
Direct3D 부팅하기 812
기하 핸들링 815
인덱스 프리미티브 817
사용자 포인터 프리미티브 818
효율적인 기하 전달 820
유연한 정점 포맷 821
행렬, 카메라, 변환 822
Direct3D의 텍스처 맵핑 824
Direct3D의 조명 826
Direct3D의 렌더링 829
확장 라이브러리 830
애니메이션 도움말 832
마감하며 833

부록D 관련 수학?835
거리 836
삼각법 838
벡터 수학 839
행렬 841

부록E 추가 읽기?851

QuickMenu