책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 게임 프로그래밍
· ISBN : 9788956742007
· 쪽수 : 620쪽
· 출판일 : 2004-07-10
책 소개
목차
제1부 시작
제1장 선배들로부터 배우기
초기의 RTS 게임들
Intellivision 사의 유토피아
Bullfrog 사의 파퓰러스
최초의 성공한 RTS 게임들
웨스트우드의 커맨드 & 컨커
워크래프트: 오크와 휴먼
블리자드 사의 스타크래프트
RTS 게임의 미래
대규모의 다중 사용자 RTS 게임
똑똑해지는 컴퓨터
초기의 전략 게임들
워로드
엠파이어
커맨드 H.Q.
금의 일곱 도시
X-COM: UFO
요약
제2장 윈도우와의 만남
윈도우 프로그램 아키텍처
이벤트-드리븐 프로세싱
프로그램 구조
윈도우 프로그램 만들기
Visual C++ 7.0 설정하기
코드 살펴보기
코드 컴파일과 실행
요약
제3장 게임 메커닉
이야기
이야기의 테마
이야기의 요소들
목표 설정하기
사례 연구 - 엠파이어 어스
전투 유닛
유닛의 가격
유닛의 속도
유닛의 아머
유닛의 화력
RTS 게임의 자원 관리
자원 선택하기
자원의 정의
자원 채취하기
자원의 밸런스
RTS의 테크 트리
여러 가지 종류의 기술
기술의 비용
캠페인 게임
미션 편집기
미션의 목표
다중 플레이어 게임
요약
제4장 게임 프로젝트 계획하기
구상 단계
구상 아웃라인
조건 설정 단계
기술 문서 단계
개발 단계
소스 코드 관리
라벨 관리
버그 추적
단위 테스트
테스트 단계
상품화 단계
유통
셰어웨어
유통사
자체 배포
요약
제2부 빌딩 블록
제5장 타일 기반 그래픽
타일 엔진의 기본
타일이란 무엇인가?
타일을 이용하는 이유는 무엇인가?
어떻게 타일을 만들 수 있는가?
어떻게 타일을 보여줄 수 있는가?
다중 레이어 타일
세부 묘사 타일을 추가하는 방법
전이 타일(transition tile)
도로 타일 추가하기
3D 나무 타일 추가하기
애니메이션 타일 추가하기
편집과 저장
2D 배열 저장
다중-레이어 타일 배열
타일 클래스 구현하기
타일 속성
장애물 속성
고도 속성
밝기 속성
오프셋 속성
타일 렌더링
2D 타일 렌더링
2D 아이소메트릭 타일 렌더링
스프라이트를 이용하는 2D 아이소메트릭 타일 렌더링
3D 타일 렌더링
요약
제6장 인터페이스 디자인과 개발
인터페이스의 역할
마우스 존과 그래픽
인터페이스 아웃라인 다듬기
스토리보드 작성하기
인터페이스 이용성
마우스 클릭과 인터페이스 상호작용
메뉴 이동에서의 복잡성
인터페이스 일관성
3D에서의 2D 렌더링
D3D_TitleScreen 프로젝트 아키텍처
Main.h 헤더 파일
Main.cpp 프로그램 파일
핫스폿, 마우스 클릭을 즐겁게 해주는 것
마우스 존을 감지하는 방법
D3D_MouseZones 프로젝트 아키텍처
Main.h 헤더 파일
Main.cpp 프로그램 파일
MouseZoneClass.h 헤더 파일
MouseZoneClass.cpp 파일
메뉴 강조
D3D_MouseZoneHighlights 프로젝트 아키텍처
Main.h 헤더 파일
Main.cpp 프로그램 파일
요약
제7장 사운드의 추가
사운드 API
DirectMusic 사운드 아키텍처
DirectMusic 로더
DirectMusic 재생
DirectMusic 세그먼트
WAV 파일의 재생
DMusic_PlaySound 프로젝트
Main.h 헤더 파일
Main.cpp 프로그램 파일
MIDI 파일의 재생
MP3 파일의 재생
DirectShow
DShow_PlayMP3 프로젝트
Main.h 헤더 파일
Main.cpp 프로그램 파일
음향 클래스의 구현
사운드 시스템 클래스
사운드 시스템 예제 프로그램
메뉴 사운드 예제 프로그램
요약
제8장 유닛
유닛의 정의
유닛의 이름
이동하는 방식
이동 속도
공격 타입
방어 타입
템플릿 코딩
CUnitDefense 클래스
CUnitOffense 클래스
CUnitMovement 클래스
CUnitAnimation 클래스
CTexture 클래스
CUnit 클래스
CUnitManager 클래스
유닛의 렌더링
vDrawUnit() 함수
vRender() 함수
유닛의 로딩과 생성
요약
제9장 텍스트 입력
DirectInput의 개요
IDirectInput8 인터페이스
키보드 입력
DInput_Simple 프로젝트
DirectInput의 초기화
키보드 입력 읽기
게임 내에서의 텍스트 입력
메뉴 탐색
텍스트 입력 활성화
텍스트 입력의 처리
텍스트 입력의 렌더링
요약
제3부도구의 개발
제10장 맵 편집의 세계
기본 맵 편집 101
맵 편집기의 구성 요소들
맵 보기
전역 맵 변수들
프로그램의 흐름
맵 내의 탐색
이미지 로딩
타일의 렌더링
맵 편집
전역 맵 변수들
프로그램의 흐름
도구 모음 프로그래밍
맵 편집
맵 저장과 로딩
SaveMap() 함수
LoadMap() 함수
미니맵 렌더링
vCreateMinimap() 함수
vRenderMinimap() 함수
프로그래밍을 사용한 맵 생성
vGenerateMap() 함수
맵 생성 방법
맵 레이어
헤더 파일의 변경
vCreateToolbar() 함수의 변경
vChangeLayer() 함수
로딩과 저장 과정의 변경
vRender() 함수의 변경
vCheckMouse() 함수의 변경
요약
제11장 3D 애니메이션
3D 애니메이션의 개요
장면
개체
키 프레임
애니메이션 셋
애니메이션 불러오기
3ds max에서의 모델 저장 및 내보내기
애니메이션의 편집
미리 만들어진 애니메이션 편집기
자체 편집기 제작
편집 프로그래밍
D3D_AnimationEditor 컨트롤
D3D_AnimationEditor 프로젝트
C3DAnimationClass
D3D_AnimationEditor 프로그램
애니메이션의 구현
요약
제4부고급 토픽들
제12장 길 찾기
길 찾기 진행상의 문제점들
간단한 길 찾기 솔루션
A-Star 솔루션
A* 솔루션의 기본
검색의 시작
노드 비용의 계산
가장 빠른 노드 찾기
계속적인 검색
길을 찾기 위한 후퇴
코드 구현 방식
길 찾기 함수
CPathFinder::bFindPath() 함수
요약/최적화
제13장 파티클 렌더링
파티클의 기본
파티클의 특성
파티클 이미지
파티클의 움직임
파티클 애니메이션
파티클 클래스의 구조
CVector 클래스
CParticle 클래스
파티클의 구현 방식
D3D_Particles 레이아웃
요약
제14장 네트웍 프로그래밍 입문
네트웍 연결
LAN 게임
네트웍 프로토콜
TCP/IP 프로토콜
UDP 프로토콜
TCP/IP와 UDP
패킷
라텐시
피어-to-피어 네트워킹
클라이언트-서버 네트워킹
클라이언트-서버와 피어-to-피어
소켓과 DirectPlay
소켓 예제 코드
Sockets_Receive 프로그램
턴 방식의 네트웍 프로그래밍
요약
부록 개발에 필요한 도구들
2D 아트
3D 아트
게임 개발 커뮤니티
하드웨어