본문내용 바로가기
MD의선택 무료배송 이벤트 소득공제

Game Programming in C++ OpenGL과 SDL을 활용한 3D 게임 개발

산자이 마드하브 지음 | 박주항 옮김 | 에이콘출판 | 2019년 09월 30일 출간
  • 정가 : 45,000원
    판매가 : 40,500 [10%↓ 4,500원 할인]
  • 통합포인트 :
    [기본적립] 2,250원 적립 [5% 적립] 안내 [추가적립] 5만원 이상 구매 시 2천원 추가적립 [회원혜택] 우수회원 3만원 이상 구매 시 2~4% 추가적립
  • 추가혜택 : 포인트 안내 도서소득공제 안내 추가혜택 더보기
  • 배송비 : 무료 배송비 안내
  • 배송일정 : 서울특별시 종로구 세종대로 기준 지역변경
    당일배송 지금 주문하면 오늘(20일,월) 도착 예정 배송일정 안내
  • 바로드림 : 인터넷으로 주문하고 매장에서 직접 수령 안내 바로드림 혜택
    휴일에는 바로드림 픽업으로 더 빨리 받아 보세요. 바로드림 혜택받고 이용하기

이 책의 이벤트 해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.

  • IT전문서 올해의 책 후보 발표! 지금 투표해주세요!
    2019.12.13 ~ 2020.01.31
  • 개발자로 입문하기: 일단 이것부터 읽어보자!
    2019.05.31 ~ 2020.12.31
  • 에이콘의 도서를 한 눈에 살펴보세요
    2017.11.23 ~ 2020.12.31
  • MANNING, O'REILLY, PACKT, WILE..
    2016.03.07 ~ 2020.12.31
상품상세정보
ISBN 9791161753560(1161753567)
쪽수 652쪽
크기 189 * 235 * 34 mm /1495g 판형알림
이 책의 원서/번역서 Game Programming in C++/Madhav, Sanjay

책소개

이 책이 속한 분야

C++는 게임 개발을 선도하는 주요 스튜디오에서 핵심 언어로 사용한다. C++는 여러 코드 기반에서 사용되기 때문에 이들 스튜디오는 게임을 유지보수하거나 개선할 때 C++를 사용한다.
이 책은 C++로 3D 비디오 게임을 프로그래밍하는 데 현실적이고 실용적인 접근을 제공한다. USC 산자이 마드하브의 게임 프로그래밍 과정을 바탕으로 한 이 책은 쉽고 재밌으며, 직접 실습할 수 있어서 실용적이고 완벽하다.

상세이미지

Game Programming in C++ 도서 상세이미지

저자소개

저자 : 산자이 마드하브

(Sanjay Madhav)
서던캘리포니아대학교(USC)의 선임 강사로, 2008년부터 프로그래밍과 비디오 게임 프로그래밍을 가르친다.
USC 이전에 일렉트로닉 아츠(Electronic Arts), 네버소프트(Neversoft), 판데믹 스튜디오(Pandemic Studios)에서 비디오 게임 개발자를 위한 프로그래머로서 일했다. 게임 <메달 오브 아너(Medal of Honor: Pacific Assault)>, <토니 호크 프로젝트 8(Tony Hawk’s Project 8)>, <반지의 제왕(Lord of Rings: Conquest)>, <사보추어(Saboteur)> 개발에 참여했다.
또한 『게임 프로그래밍 알고리즘』(에이콘, 2015)의 저자이며 『멀티플레이어 게임 프로그래밍』(길벗, 2017)의 공동 저자다. 컴퓨터 과학 학사 학위와 석사 학위를 받았으며 USC에서 박사 과정을 밟고 있다.

역자 : 박주항

서강대학교에서 컴퓨터공학과 물리학을 복수 전공했으며, JCE(현 조이시티)의 온라인 게임 서버 프로그래머, 라인의 백엔드 프로그래머, 노리숲의 모바일 게임 개발 회사 대표를 거쳐 현재 프리랜서로 활동 중이다.
주요 저서로는 한빛미디어에서 출간한 『CGSF를 활용한 게임 서버 제작』(2014), 『CGSF 파헤쳐 보기』(2014), 『C++ 개발자를 위한 WIN32 오픈소스 라이브러리 100』(2015), 『SDL과 C++를 이용한 크로스 플랫폼 프로그래밍』(2015), 에이콘에서 출간한 『C++로 나만의 운영체제 만들기』(2018) 등이 있다. 번역서로는 한빛미디어에서 출간한 『데이터베이스 첫걸음』(2016)이 있다.
현재 『C++로 나만의 운영체제 만들기』의 후속 편을 집필하면서 운영체제인 SkyOS의 완성도를 높이기 위해 수많은 버그와 사투를 벌이고 있다.

작가의 말

오늘날 비디오 게임은 가장 인기 있는 엔터테인먼트 중 하나다. 게임 전문 조사 기관인 뉴주(Newzoo)의 「세계 게임 시장 보고서(Global Games Market Report)」에서는 2017년 게임 매출액이 1,000억 달러를 상회한다고 평가했다. 이 엄청난 금액은 비디오 게임이 얼마나 인기 있는지를 보여준다. 그만큼 비디오 게임 시장은 거대하고, 게임 프로그래머의 수는 항상 부족하다.
게임의 폭발적인 인기와 더불어 게임 기술의 장벽은 낮아졌다. 이제 한 명의 개발자가 여러 유명한 게임 엔진이나 툴을 사용해서 상을 받거나 히트 게임을 제작할 수 있게 됐다. 특히 게임 디자이너에게 이러한 툴은 많은 도움이 된다. 그렇다면 여기서 C++로 게임을 프로그래밍하는 방법을 배운다는 것은 어떤 가치가 있을까?
여러 게임이나 툴을 한 걸음 뒤에서 보면 핵심 코어가 C++로 작성된 것을 확인할 수 있다. 즉, C++는 툴이나 게임 엔진을 사용해서 제작된 게임의 모든 배후에 있는 근본적인 기술이다.
또한 <오버워치>, <콜 오브 듀티>, <언차티드> 등 오늘날 가장 인기 있는 게임들을 출시한 일류 개발자는 아직도 C++를 사용한다. 왜냐하면 C++는 성능과 편리함이라는 훌륭한 조합을 제공하기 때문이다. 그래서 앞에서 예시로 든 게임들을 개발한 회사 중 한 곳에서 일하고 싶은 개발자라면 특히 C++를 깊이 있게 이해해야 한다.
이 책에서는 실제 게임 개발자가 사용하는 여러 기술과 시스템을 파고든다. 이 책의 많은 내용은 거의 10년 동안 서던캘리포니아대학교(USC, University of Southern California)에서 가르친 비디오 게임 프로그래밍 강의에서 비롯됐다. 이 책에서 사용한 접근법은 많은 학생이 비디오 게임 산업에서 성공할 수 있도록 도움을 줄 것이다.
또한 이 책은 게임 프로젝트 데모에 통합된 코드의 실제 동작 구현에 특히 집중한다. 게임처럼 다양한 시스템이 어떻게 작동하는지 이해하는 것은 중요하다. 이런 이유로 이 책을 읽는 동안에는 소스 코드를 언제든지 참조할 수 있도록 가까이 둬야 한다.

목차

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 루프
__추가 독서

출판사 서평

★ 이 책에서 다루는 내용 ★

■ C++ 개발 도구를 빠르게 구축하고 개발 시작하기
■ 기초 2D 그래픽스와 게임 갱신, 벡터, 게임 물리 구현
■ 널리 사용되는 AI 알고리즘으로 더욱 지능적인 게임을 제작하기
■ OpenGL, 셰이더, 행렬, 변환 등의 내용을 포함한 3D 그래픽스 구현
■ 3D 위치기반 오디오를 포함한 오디오 통합 및 믹싱
■ 3D 환경에서 오브젝트 간 충돌 감지
■ 플레이어의 입력에 효율적으로 반응하기
■ 헤드업 디스플레이(HUD)를 포함한 유저 인터페이스 구축
■ 이방성 필터링과 지연 셰이... 더보기

북로그 리뷰 (0) 쓰러가기

도서 구매 후 리뷰를 작성하시면 통합포인트를 드립니다.
결제 90일 이내 작성 시 300원 / 발송 후 5일 이내 작성시 400원 / 이 상품의 첫 리뷰 작성 시 500원
(포인트는 작성 후 다음 날 적립되며, 도서 발송 전 작성 시에는 발송 후 익일에 적립됩니다.
외서/eBook/음반/DVD/GIFT 및 잡지 상품 제외)
안내
  • 해당도서의 리뷰가 없습니다.

Klover 평점/리뷰 (0)

문장수집 (0) 문장수집 쓰기 나의 독서기록 보기
※구매도서의 문장수집을 기록하면 통합포인트 적립 안내

교환/반품/품절안내

※ 상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

교환/반품/품절안내
반품/교환방법 마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환신청 ,
[1:1상담>반품/교환/환불] 또는 고객센터 (1544-1900)

※ 오픈마켓, 해외배송주문, 기프트 주문시 [1:1상담>반품/교환/환불]
    또는 고객센터 (1544-1900)
반품/교환가능 기간 변심반품의 경우 수령 후 7일 이내,
상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
반품/교환비용 변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
반품/교환 불가 사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등
  • 복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에
    해당되는 경우
(1) 해외주문도서 : 이용자의 요청에 의한 개인주문상품으로 단순변심 및 착오로 인한 취소/교환/반품 시 ‘해외주문 반품/취소 수수료’ 고객 부담 (해외주문 반품/취소 수수료 : ①양서-판매정가의 12%, ②일서-판매정가의 7%를 적용)
상품 품절 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는
이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은
    소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의
    소비자 보호에 관한 법률에 따라 처리함

이 책의 원서번역서

안내

이 분야의 베스트

  • 길벗알앤디
    27,900원
  • 길벗R&D
    17,100원
  • 윤종식
    25,200원
  • 윤인성
    16,200원
  • 길벗R&D
    32,400원
더보기+

이 분야의 신간

  • 윤종식
    25,200원
  • BC카드 빅데이터센터
    17,100원
  • NCS 정보처리기술사 연구회
    25,200원
  • 조현준
    40,500원
  • NCS 정보기술 연구회
    27,900원
더보기+

바로가기

  • 우측 확장형 배너 2
  • 우측 확장형 배너 2

최근 본 상품