로그인회원가입장바구니고객센터마이페이지회사소개
kangcom
전체
Home >   >   > 

2D 게임 프로그래밍

 [C++와 DirectX로 게임엔진을 제작하며 배우는 에이콘 게임 개발 프로그래밍 시리즈]
   
지은이 찰스 켈리   |   출판사 에이콘  |   발행일 2014년 11월 28일
 
클릭하시면 큰 도서이미지를 보실 수 있습니다.
판매가 40,000원36,000원 10%
마일리지 1% 400원
발행일 2014-11-28
ISBN 8960776416 | 9788960776418
기타정보 번역서 | 644쪽 | 일반
예상출고일 금일 가능 (근무일기준)
배송비 무료배송
   
게임
종합지수 0p
   
 

[2D 게임 프로그래밍]은 C++와 DirectX를 이용해 간단한 게임엔진을 제작해보면서 2D 게임을 개발하는 데 필요한 내용을 배울 수 있도록 구성한 책이다. 충돌 감지 등 2D 프로그래밍 기법, C++를 사용해 최신 DirectX와 윈도우 프로그래밍 코딩 방법, 각 장의 내용을 복습할 수 있는 복습문제와 프로그래밍 연습 문제 등을 수록하였다. 아울러 이 책에서는 측면, 수직 스크롤 게임, 고전 아케이드 게임, 타일 기반 게임 등의 2D 게임을 만들어 볼 수 있도록 했다.



[ 요약]



이 책은 C++와 DirectX를 이용해 간단한 게임엔진을 제작해보면서 2D 게임을
개발하는 데 필요한 내용을 배울 수 있는 입문서다. 먼저 기본적인 윈도우
프로그래밍과 DirectX부터 간단한 게임 엔진 제작, 스프라이트 및 애니메이션,
게임 물리, 사운드, 텍스트 등을 배운다. 그러고 나서 타일 기반 게임을
제작하는 방법을 배우며, 프로젝트 관리 방법과 함께 그동안에 제작한 각 부분을
합쳐 게임을 완성한다. 마지막으로 간단하게 네트워크 프로그래밍을 배우며 책을
마친다.



[이 책에서 다루는 내용]



■ 충돌 감지 등 2D 프로그래밍 기법

■ 게임 엔진을 만드는 과정과 만든 엔진을 사용해 완성된 게임을 개발했을 때의
장점

■ C++를 사용해 최신 DirectX와 윈도우 프로그래밍 코딩 방법

■ 각 장의 내용을 복습할 수 있는 복습문제와 프로그래밍 연습 문제 포함

■ 철저하게 테스트된 예제 프로그램을 www.programming2dgames.com 사이트에서
제공

■ 이 책에서 만들어 보는 2D 게임의 종류
* 측면, 수직 스크롤 게임
* 고전 아케이드 게임
* 타일 기반 게임
* 동적 어드벤처 게임
* 퍼즐 게임.



[ 이 책의 대상 독자 ]

객체 지향 프로그래밍을 처음 접한다고 하더라도, 염려할 필요는 없다. 모든
코드를 보여줄 것이다. 책에 있는 객체 지향 코드를 매우 간단하게 사용할 수
있으며, 많은 예제가 포함되어 있다. 책에 있는 코드를 통해 성공적으로
프로그램을 만들기 위해서는 C, C++ 언어나 자바에 대한 철저한 이해와 미리
선언된 클래스를 사용할 수 있는 능력과 같은 프로그래밍 전문 지식이 요구된다.
책에 포함된 게임 엔진 코드를 수정하거나 개선하고자 하는 숙달된 C++
프로그래머를 위해 추가 토론과 연습 문제가 제공된다.



[이 책의 구성 ]



1장, 시작하기

1장에서는 마이크로소프트 비주얼 스튜디오 2010 개발 환경을 소개하고 간략하게
DirectX API에 대해 설명한다. 책에 나와 있는 코드는 C++ 프로그래밍 언어로
작성됐다. C++에 익숙하지 않지만 C나 자바(Java)에 익숙하다면 광범위한 예제가
제공되기 때문에 쉽게 이해하고 사용할 수 있다. C++ 언어에 대한 간단한 소개도
포함돼 있다. 또한 게임 엔진의 역할을 설명하고, 프로그래밍에 관한 일반적인
팁과 도움이 되는 도구를 알려준다. 1장이 끝난 뒤에는 개발 환경을 더 잘
이해하게 되고 게임 엔진이 제공하는 목적이 무엇인지 더 잘 알게 된다.



2장, 윈도우 프로그래밍 기초

2장에서는 윈도우 프로그래밍의 기초를 알아본다. 비주얼 스튜디오에서 새
프로젝트를 만드는 방법부터 시작한 후 소스 파일을 추가하고 첫 번째 윈도우
프로그램으로 고전적인 ‘Hello World’를 만들어본다. 윈도우 애플리케이션의
요구 사항이나 작업이 설명돼 있다. 또한 키보드로부터 입력을 받는 방법,
프로그램이 하나 이상의 복사본을 갖지 못하게 만드는 방법 등도 살펴본다.
2장이 끝난 뒤에는 완전한 기능이 있는 윈도우 프로그램을 만들고, 컴파일하고,
실행할 수 있을 것이다.



3장, DirectX 입문

DirectX는 고성능 그래픽, 사운드, 주변 장치와 특별한 상호 작용을 필요로 하는
프로그램을 만드는 데 사용하는 애플리케이션 프로그래밍 인터페이스(API)다.
3장에서는 먼저 DirectX API를 살펴보고 어떻게 사용하는지 알아본다. 3장에서
소개하는 DirectX 코드는 Graphics 클래스에 포함할 것이다. Graphics 클래스는
게임 엔진의 일부분이 될 것이다. DirectX 프로그래밍을 위해 비주얼 스튜디오
프로젝트를 만들고 환경설정을 한 후 첫 번째 DirectX 프로그램을 만들어본다.



4장, 게임 엔진

4장에서는 게임 엔진을 만들기 시작한다. 먼저 엔진의 핵심인 Game 클래스를
만든다. 윈도우 메시지 핸들링과 고성능 윈도우 타이머를 포함한다. 잃어버린
윈도우 장치를 복구하는 적절한 방법을 살펴보고 관련 코드를 추가한다.
다음으로 화면에 이미지를 그리기 위해 DirectX가 요구하는 코드를 살펴본다.
Game 클래스의 메인 게임 루프에 코드를 감싼 뒤 게임의 속도를 조절하는 방법을
알아본다. 또한 4장에서는 Input 클래스를 만든다. Input 클래스에서 키보드,
마우스, 게임 컨트롤러에서 어떻게 입력을 받는지 알아본다. 책의 나머지 부분에
걸쳐 만들 Spacewar 게임의 첫 모습을 보면서 4장을 마무리한다. 4장이 끝난
뒤에는 게임 엔진을 위한 기본적인 프레임워크를 완성하게 될 것이며, 게임과
같은 실시간 애플리케이션이 윈도우 환경에서 어떻게 동작하는지 알 수 있게 될
것이다.



5장, 스프라이트와 애니메이션

5장에서는 스프라이트와 애니메이션 그래픽 그리기와 관련된 사항을 전반적으로
다룬다. DirectX 스프라이트를 사용해 화면에 이미지를 그린다. 스프라이트는
투명한 부분을 포함하고 있는 이미지를 지원한다. 스프라이트로 그려진 이미지는
텍스처라고 부른다. 파일로부터 텍스처를 어떻게 불러오는지, 텍스처
관리(Texture Manager) 클래스를 통해 메모리로 불러온 뒤 텍스처를 어떻게
관리하는지 살펴본다. 실제로 스프라이트를 그리는 코드는 Image 클래스의
일부분이 된다. 5장에서 만든 새 클래스들은 게임 엔진에 포함할 것이다.
애니메이션 스프라이트를 어떻게 그리는지 살펴보면서 5장을 마무리한다. 5장이
끝난 뒤에는 애니메이션 그래픽을 그리는 데 게임 엔진을 사용할 수 있을 것이다



6장, 충돌과 개체

6장에서는 스프라이트를 어떻게 물리가 적용된 개체(entity)처럼 만드는지
살펴본다. 벡터와 관련된 수학을 살펴보며 6장을 시작한다. DirectX는 계산을
수행하는 데 도움을 주기 위해 사용하는 벡터 작업이 많이 포함돼 있다. 화면에
게임 아이템이 충돌할 때 어떻게 감지하는지 철저하게 설명한다. 그리고 개체가
현실적으로 반응하게 만들기 위해 게임에서 물리를 어떻게 사용하는지 알아본다.
충돌 코드와 물리 코드는 게임 엔진에 추가할 새 Entity 클래스의 일부분이
된다. 기능이 적용된 버전의 Spacewar 게임을 보며 6장을 마무리한다. 6장이
끝난 뒤에는 서로에게 반응할 수 있는 애니메이션 그래픽을 그릴 수 있을 것이다.



7장, 사운드

7장에서는 게임 엔진이 자신의 목소리를 얻게 된다. Audacity 유틸리티를 사용해
오디오 파일을 만들고 편집하는 방법을 알아본다. 다음으로 XACT를 사용해
게임에 사용할 오디오 파일을 어떻게 준비하는지 살펴본다. 그리고 XACT 엔진을
사용해 사운드를 재생하는 방법을 알아본다. 오디오 코드는 게임 엔진에 추가할
Audio 클래스에 추가할 것이다. 7장이 끝난 뒤에는 게임 오디오 파일을 만들고,
편집하고, 재생하는 방법을 이해하게 될 것이다.



8장, 텍스트

기존 그래픽 코드를 사용해 어떻게 스프라이트 기반의 텍스트 시스템을 만드는지
살펴보고, DirectX 텍스트를 사용하는 방법도 알아본다. 텍스트 코드는 새 Text
클래스로 감싼다. 새로 만든 텍스트 기능을 게임 엔진에 포함시켜 콘솔을
추가하는 데 사용한다. 8장이 끝난 뒤에는 게임에 텍스트 메시지를 보여줄 수
있게 될 것이며, 콘솔에 명령을 추가할 수 있게 될 것이다.



9장, 향상된 외관

9장에서는 게임의 외관을 향상시키기 위한 여러 기법을 살펴본다. 이 기법들은
게임에 깊은 느낌을 주는 기법과 사용자 인터페이스 요소를 추가하는 기법을
포함한다. 9장이 끝난 뒤에는 2D 게임의 외관을 향상하기 위한 여러 기법을
배웠을 것이다.



10장, 타일 기반 게임

타일 기반 게임은 나온 지 꽤 됐지만, 오늘날에도 여전히 의미가 있다. 먼저
타일 기반 게임의 장점을 알아본다. 다음으로 도구를 이용해 타일 세트를 만들고
게임 맵을 편집하는 방법을 분석한다. 마지막으로 타일 세트를 게임 화면에
그리는 흥미로운 방법을 살펴본다. 10장이 끝난 뒤에는 자신의 게임을 플랫폼
방식으로 만들 수 있을 것이다.



11장, 게임 완성

11장에서는 게임을 완성하기 위해 그동안 작업했던 모든 기능을 하나로 합친다.
시간과 자원을 관리하는 방법을 포함해 프로젝트 관리의 기초 일부분을 다룬다.
그리고 Spacewar 게임을 만들기 위해 거쳐야 하는 여러 단계를 차례로
밟아나간다. 또한 Space Pirates 게임의 도움을 약간 받아 게임 상태를 저장하고
불러오는 방법을 다룬다.



12장, 네트워크 프로그래밍

TCP/IP와 UDP/IP는 단지 웹 서핑 이상으로 훨씬 유용하다. 12장에서는 윈도우
소켓을 사용해 게임에 네트워크 통신 기능을 추가한다. 윈도우 소켓이 어떻게
동작하는지 설명하면서 12장을 시작한다. 소켓 코드는 게임 엔진의 일부분인 Net
클래스에 포함돼 있다. 새로운 네트워크 코드는 간단한 클라이언트/서버 채팅
프로그램과 Spacewar의 네트워크 플레이 버전을 만드는 데 사용된다.

1장 시작하기 ㆍ
__1.1 개요
__1.2 개발 환경
__1.3 DirectX란?
__1.4 C++를 사용하는 이유
__1.5 명명 규칙
__1.6 게임 엔진
__1.7 팁과 툴
__정리
__복습문제
__연습문제

2장 윈도우 프로그래밍 기초 ㆍ
__2.1 윈도우 프로그래밍 기초
__2.2 윈도우 스타일의 ‘Hello World’
__2.3 디바이스 컨텍스트
__2.4 윈도우 API를 통한 키보드 입력
__2.5 뮤텍스로 다중 인스턴스 방지
__2.6 윈도우에서의 멀티태스킹
__정리
__복습문제
__연습문제
__예제

3장 DirectX 입문 ㆍ
__3.1 DirectX 입문
__3.2 DirectX 초기화
__3.3 디바이스 생성
__3.4 디스플레이 버퍼 비우기
__3.5 페이지 전환
__3.6 정확한 종료
__3.7 Graphics 클래스
__3.8 첫 번째 DirectX 프로그램
__3.9 전체 화면이나 창 화면
__3.10 디버그와 리테일 DLL
__3.11 디바이스 성능 결정
__정리
__복습문제
__연습문제
__예제

4장 게임 엔진 ㆍ
__4.1 게임 엔진, 1부
__4.2 Game 클래스
__4.3 Input 클래스
__4.4 Spacewar 클래스
__정리
__복습문제
__연습문제
__예제

5장 스프라이트와 애니메이션 ㆍ
__5.1 게임 그래픽 얻기
__5.2 그래픽스 파이프라인
__5.3 투명도를 적용해 그리기
__5.4 TextureManager 클래스
__5.5 Image 클래스
__5.6 게임 엔진
__5.7 간단한 애니메이션
__정리
__복습문제
__연습문제
__예제

6장 충돌과 개체 ㆍ
__6.1 벡터
__6.2 충돌
__6.3 Entity 클래스
__6.4 2D 게임을 위한 물리
__정리
__복습문제
__연습문제
__예제

7장 사운드 ㆍ
__7.1 오디오 파일 얻기
__7.2 오디오 파일 만들기
__7.3 XACT 사용
__7.4 게임 엔진에 오디오 추가
__7.5 게임에 사운드 추가
__7.6 오디오 재생 조정
__정리
__복습문제
__연습문제
__예제

8장 텍스트 ㆍ
__8.1 스프라이트 텍스트
__8.2 사용자 정의 글꼴 작성
__8.3 Text 클래스의 세부 내용
__8.4 DirectX 텍스트
__8.5 TextDX 클래스 세부 사항
__8.6 FPS 디스플레이 추가
__8.7 콘솔 추가
__8.8 Console 클래스
__8.9 게임 엔진에 Console을 통합
__정리
__복습문제
__연습문제
__예제

9장 향상된 외관 ㆍ
__9.1 비트맵 스크롤링
__9.2 화가 알고리즘
__9.3 페럴렉스 스크롤링
__9.4 그림자와 반사된 모습
__9.5 메시지 대화상자
__9.6 입력 대화상자
__9.7 전체 화면의 DirectX 애플리케이션에서 사용하는 윈도우 대화상자
__9.8 대시보드
__정리
__복습문제
__연습문제
__예제

10장 타일 기반 게임 ㆍ
__10.1 왜 타일 기반의 게임인가?
__10.2 타일 세트 작성
__10.3 레벨 배치
__10.4 타일 표시
__10.5 직교 투영법
__10.6 경사 투영법
__10.7 등각 투영법
__10.8 등각 지형
__10.9 높이 레이어
__정리
__복습문제
__연습문제
__예제

11장 게임 완성 ㆍ
__11.1 점진적 프로토타이핑
__11.2 프로젝트 관리
__11.3 디자인 문서
__11.4 프로토타입 텍스처
__11.5 Spacewar 작업
__11.6 Spacewar v1.0
__11.7 저장과 불러오기
__정리
__복습문제
__연습문제
__예제

12장 네트워크 프로그래밍 ㆍ
__12.1 네트워크 개요
__12.2 Net 클래스
__12.3 네트워크 초기화
__12.4 서버 생성
__12.5 클라이언트 생성
__12.6 로컬 IP 주소 얻기
__12.7 전송
__12.8 수신
__12.9 소켓 닫기
__12.10 오류 얻기
__12.11 클라이언트/서버 채팅
__12.12 클라이언트/서버 Spacewar
__12.13 Spacewar 서버
__12.14 Spacewar 클라이언트
__정리
__복습문제
__연습문제
__예제

마치면서

저자 : 찰스 켈리

저자 찰스 켈리 (Charles Kelly)는 먼로 카운티 커뮤니티 대학(Monroe County Community College)의 교수로, 게임 프로그래밍과 컴퓨터과학 과목들을 가르치고 있다. 오픈소스 어셈블러/시뮬레이터인 ‘EASy68K’ 프로젝트의 리더이자 주 기여자이기도 하다. 미시간 주 디어 본 대학(University of Michigan-Dearborn)에서 컴퓨터과학 석사 학위를 받았으며, 외래 강사로도 일했다.



역자 : 옥찬호

역자 옥찬호는 경북대학교 대학 IT 컴퓨터학부를 거쳐 KAIST 전산학과에서 석사 과정을 밟고 있다. C++와 게임(엔진) 개발, 컴퓨터 그래픽스에 관심이 많다. 현재 페이스북 C++ Korea 그룹을 운영하며, 번역가로도 활동 중이다. 또한 중고등학생들을 대상으로 IT 관련 스터디와 멘토링을 진행하는 등 꿈나무들을 육성하는 데 힘을 쏟고 있다. 옮긴 책으로는 에이콘출판사에서 출간한 『게임샐러드로 코드 한 줄 없이 게임 만들기』(2013), 『유니티 Shader와 Effect 제작』 (2014)이 있다.


등록된 서평이 없습니다.
게임엔진 프로그래밍 개발(UNITY 3D 엔진)...
이희만
선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
언리얼 엔진 4 블루프린트 게임 만들기...
박승제
선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
Cocos2D JavaScript를 이용한 HTML5 게임 개발...
박현천, 이승준
선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
기타무라 마...
마크 그레고...
티모시 마스...
 
전체평균(0)
회원평점   회원서평수 0
에이콘 출판사의 신간
R고 하는 금융 분석: 핵심 금융 이론부터 고급 분석 기법까지 R로 이해하기
파람 지트, 파라샨트 바츠 저
27,000원
(10%↓+5%)
 
퍼펙트 프리젠테이션 시즌 2
김재성 저
27,000원
(10%↓+5%)
 
생활 속 문제를 통해 배워보는 머신 러닝
알렉산더 콤스 저
27,000원
(10%↓+5%)
 
리눅스 컨테이너 LXC
콘스탄틴 이바노프 저
27,000원
(10%↓+5%)
 
AWS 관리 Cookbook
루카스 챈, 로완 유델 저
27,000원
(10%↓+5%)
 
이메일주소수집거부