목차
소개 ... 13
제1부 C++ 프로그래밍
   제1장 C++ 프로그래밍이 소개 ... 19
      C++를 사용하는 이유 ... 20
      Visual C++ 설정하기 ... 21
      첫 번째 프로그램 : "Hello all you happy people" ... 26
      C++ 프로그램의 구조 ... 29
      주석 ... 33
      오류 찾아내기 ... 34
      경고 ... 37
      정리 ... 38
      질문과 답변 ... 39
      연습 문제 ... 40
   제2장 변수와 연산자 ... 43
      변수와 메모리 ... 44
      변수의 타입 ... 45
      프로그램에서 변수의 사용 ... 48
      변수의 식별자 ... 51
      변수 이름 ... 54
      타입의 재정의 ... 54
      연산자 ... 55
      비트 시프트 연산자 ... 60
      관계 연산자 ... 61
      조건 연산자 ... 61
      논리 연산자 ... 63
      연산자 우선순위 ... 64
      요약 ... 66
      질문과 답변 ... 66
      연습 문제 ... 67
   제3장 함수와 프로그램의 흐름 ... 69
      함수의 정의와 사용 방법 ... 70
      함수의 생성과 사용 ... 72
      디폴트 파라미터 ... 76
      변수의 범위 ... 78
      재귀 호출 ... 82
      함수를 사용할 때의 주의사항 ... 84
      프로그램의 흐름 ... 85
      코드 블록과 문장 ... 85
      if, else if, else 문 ... 86
      while, do…while 그리고 for 루프 ... 89
break와 continue ... 94
switch 문 ... 96
      난수 ... 99
      첫 번째 게임 : "크랩(Crap)" ... 102
      요약 ... 111
      질문과 답변 ... 111
      연습 문제 ... 112
   제4장 다중 파일과 전처리기 ... 113
      소스와 헤더파일의 차이 ... 114
      전처리기 ... 117
      다중 include 피하기 ... 120
      매크로 ... 122
      다른 전처리기 지시어 ... 124
      요약 ... 125
      연습 문제 ... 125
   제5장 배열, 포인터 그리고 문자열 ... 127
      배열 ... 128
      배열의 선언과 사용 ... 128
      다차원 배열 ... 132
      포인터 ... 136
      포인터와 변수 ... 136
      포인터와 배열 ... 139
      메모리에 포인터 선언과 할당 ... 142
      포인터 연산자 ... 145
      메모리 관리 ... 149
      문자열 ... 150
      요약 ... 170
      질문과 답변 ... 171
      연습 문제 ... 171
   제6장 클래스 ... 173
      클래스 ... 174
      클래스의 생성 ... 175
      클래스의 사용 ... 178
      멤버의 접근 제한자들 ... 178
      생성자와 소멸자 ... 181
      연산자 오버로딩 ... 185
      문자열 클래스 ... 186
      상속성과 다형성의 기본 개념 ... 192
      열거형 ... 202
      유니온 ... 203
      정적 멤버 ... 205
      클래스를 사용할 때 유용한 기술 ... 206
      요약 ... 215
      질문과 답변 ... 215
      연습 문제 ... 215
   제7장 몬스터 만들기 ... 217
      ConLlb ... 218
      몬스터의 생성 ... 234
      요약 ... 263
   제8장 스트림 ... 265
      스트림 ... 266
      바이너리 스트림과 텍스트 스트림 ... 266
      입력과 출력 ... 267
      파일 스트림 ... 273
      게임 로드와 저장 기능을 추가한 몬스터 게임의 수정 ... 290
      요약 ... 297
      질문과 답변 ... 297
      연습 문제 ... 298
   제9장 기본적인 소프트웨어 구조 ... 299
      소프트웨어 디자인의 중요성 ... 300
      디자인 접근 ... 300
      몇 가지 기본 기술들 ... 302
      모듈과 다중 파일 ... 308
      이름짓기의 관례 ... 309
      규칙의 예외 ... 311
      이 책에서 사용된 디자인 ... 312
      요약 ... 314
      질문과 답변 ... 314
      연습 문제 ... 314
제2부 윈도우 프로그래밍
   제10장 Mirus 게임 라이브러리의 설계 ... 317
      일반적인 사항 ... 318
      Mirus 컴포넌트 ... 319
      Helper 컴포넌트 ... 319
      윈도우 컴포넌트 ... 320
      그래픽 컴포넌트 ... 320
      사운드 컴포넌트 ... 324
      입력 컴포넌트 ... 325
      Help 컴포넌트 만들기 ... 326
      Mirus를 사용하는 방법 ... 334
      요약 ... 335
      질문과 답변 ... 335
   제11장 윈도우 프로그래밍 시작하기 ... 337
      윈도우의 역사 ... 338
      윈도우 프로그래밍의 소개 ... 339
      Visual C++와 윈도우 애플리케이션 ... 342
      윈도우 애플리케이션의 생성 ... 342
      실시간 메시지 루프의 생성 ... 355
      재사용 가능한 윈도우 클래스의 생성 ... 360
      Mirus 윈도우 프레임워크의 사용 ... 368
      공통 윈도우 함수 ... 370
      Show ... 373
      요약 ... 373
      질문과 답변 ... 373
      연습 문제 ... 374
   제12장 DirectX 소개 ... 375
      DirectX란? ... 376
      DirectX의 역사 ... 376
      DirectX를 사용하는 이유 ... 377
      DirectX의 컴포넌트 ... 379
      DirectX의 작동 방식 ... 380
      Visual C++를 이용한 DirectX의 사용법 ... 383
      요약 ... 385
      질문과 답변 ... 385
      연습 문제 ... 386
   제13장 DirectX 그래픽 ... 387
      사용하게 될 인터페이스 ... 388
      Direct3D 기본 기능의 사용 ... 390
      Surface, Buffer 그리고 Swap Chain ... 405
      Vertex, Polygon 그리고 Texture ... 415
      윈도우 비트맵 ... 428
      Full Screen과 다른 Bit Mode ... 431
      컬러 이론과 컬러키 ... 432
      Targa 파일 ... 436
      애니메이션과 템플릿 집합 ... 438
      충돌 감지 ... 440
      2D 이미지 처리 ... 443
      2D Primitive ... 449
      Mirus의 개발 ... 454
      요약 ... 531
      질문과 답변 ... 532
      연습 문제 ... 532
   제14장 Directlnput ... 533
      Directlnput에 대한 소개 ... 534
      mrlnputManager ... 536
      mrKeyboard ... 539
      mrMouse ... 552
      mrJoystick ... 565
      요약 ... 576
      질문과 답변 ... 576
      연습 문제 ... 576
   제15장 DirectSound ... 577
      사운드 이론 ... 578
      DirectSound의 기본 개념 ... 579
      mrSoundPlayer ... 580
      mrSound ... 584
      Media Control Interface ... 595
      mrCDPlayer ... 596
      요약 ... 601
      질문과 답변 ... 602
      연습 문제 ... 602
제3부 하드코어 게임 프로그래밍
   제16장 게임 디자인의 소개 ... 605
      게임 디자인이란? ... 606
      디자인 문서 ... 607
      머릿속에 있는 기술이 그다지 좋지 않은 이유 ... 607
      디자인의 두 가지 타입 ... 608
      전체적인 디자인 문서 ... 610
      간단한 게임 디자인 : "우주 침략자(Space Invaders)" ... 612
      요약 ... 616
      질문과 답변 ... 617
      연습 문제 ... 617
   제17장 자료구조와 알고리즘 ... 619
      올바른 자료구조와 알고리즘의 중요성 ... 620
      리스트 ... 622
      트리 ... 634
      일반적인 트리 ... 635
      이진 검색 트리 ... 642
      데이터의 정렬 ... 657
      버블 정렬 ... 657
      퀵 정렬 ... 660
      압축 ... 665
      RLE 압축 ... 666
      요약 ... 668
      질문과 답변 ... 668
      연습 문제 ... 669
   제18장 게임의 수학적 측면 ... 671
      삼각함수 ... 672
      벡터 ... 677
      행렬 ... 687
      가능성 ... 697
      함수들 ... 700
      요약 ... 703
      질문과 답변 ... 703
      연습 문제 ... 704
   제19장 인공지능에 대한 소개 ... 705
      인공지능의 다양한 분야 ... 706
      Deterministic 알고리즘 ... 714
      Finite State Machines ... 720
      퍼지 이론 ... 722
      메모리를 사용하는 간단한 방법 ... 726
      요약 ... 727
      질문과 답변 ... 728
      연습 문제 ... 728
   제20장 물리학 모델링에 대한 소개 ... 729
      물리학의 소개 ... 730
      물리학 엔진의 개발 ... 730
      기본적인 물리학 개념 ... 733
      힘 ... 740
      중력의 작용 ... 746
      마찰 ... 752
      충돌 처리 ... 758
      시뮬레이팅 ... 764
      파티클 시스템 ... 773
      요약 ... 790
      질문과 답변 ... 790
      연습 문제 ... 791
   제21장 벽돌깨기 게임 개발 ... 793
      벽돌깨기 게임의 설계 ... 794
      벽돌깨기 게임의 구현 ... 801
      결론 ... 850
   제22장 게임 발매 ... 851
      게임이 판매할 만한 가치가 있는가? ... 852
      게임 유통회사의 선택 기준 ... 853
      올바른 게임 유통회사를 고르는 방법 ... 854
      접촉 ... 855
      중요 일정 ... 856
      유통회사를 찾지 못한 경우 ... 857
      인터뷰 ... 857
      요약 ... 862
      참고 ... 862
      결론 ... 862
제4부 부록
   부록 A CD-ROM에 대해서 ... 865
      소스 ... 867
      마이크로소프트 DirectX 8.1 SDK ... 867
      프로그램 ... 867
      게임 ... 868
   부록 B Visual C++를 사용한 디버깅 ... 871
      Breakpoint와 실행 제어 ... 872
      실행중에 변수의 수정 ... 873
      변수 값 보기 ... 874
   부록 C 이진수, 16진수, 십진수 ... 875
      이진수 ... 876
      16진수 ... 876
      십진수 ... 877
   부록 D A C Primer ... 879
      표준 입력과 출력 ... 880
      파일의 입력과 출력 ... 881
      구조체 ... 884
      동적 메모리 ... 884
   부록 E 연습 문제 정답 ... 887
   부록 F C++ 키워드 ... 897
   부록 G 프로그래밍에 필요한 표 ... 899
      ASCII 표 ... 900
      적분 표 ... 902
      미분 표 ... 902
      관성 방정식 표 ... 903
   부록 H 관련 사이트 및 참고 문헌 ... 905
      게임 개발과 프로그래밍 ... 906
      새로운 소식이나 리뷰 그리고 다운로드 사이트 ... 907
      엔진 ... 907
      독립적인 게임 개발자 ... 907
      산업 ... 908
      컴퓨터 유머 ... 908
      참고 도서 ... 909
찾아보기 ... 910
닫기