1. 광고배너
  2. 광고배너
/ 이전버튼 다음버튼
2
미리보기

게임 프로그래밍 알고리즘
저자 : 산자이마드하브 ㅣ 출판사 : 에이콘출판 ㅣ 역자 : 김홍중

2016.01.04 ㅣ 402p ㅣ ISBN-13 : 9788960778016

정가40,000
판매가40,000원 (0%)
적립금 0원 (0%)
배송일정 절판
주문 수량 변경시 안내 배송안내
쿠폰 및 결제혜택 확인하기

크기 B5(257mm X 188mm, 사륙배판)
제품구성 단행본
이용약관 청약철회
국내도서 > 컴퓨터 > 컴퓨터일반 > 컴퓨터게임

[목 차]

1장 게임 프로그래밍 개요
__비디오 게임 프로그래밍의 발전
__게임 루프
__시간과 게임
__게임 오브젝트
__요약
__연습 문제
__참고 문헌

2장 2D 그래픽
__2D 렌더링의 토대
__스프라이트
__스크롤
__타일 맵
__요약
__연습 문제
__참고 문헌

3장 선형 대수학
__벡터
__행렬
__요약
__연습 문제
__참고 문헌

4장 3D 그래픽
__3D의 기초
__좌표 공간
__조명과 셰이딩
__가시성
__월드 변환 재검토
__요약
__연습 문제
__참고 문헌

5장 입력
__입력 장치
__이벤트 기반 입력 시스템
__모바일 입력
__요약
__연습 문제
__참고 문헌

6장 사운드
__기본적인 사운드
__3D 사운드
__디지털 신호 처리
__기타 사운드에 관한 주제
__요약
__참고 문헌

7장 물리학
__평면, 반직선, 선분
__충돌체
__충돌 확인
__물리학을 바탕으로 한 움직임
__물리학 미들웨어
__요약
__연습 문제
__참고 문헌

8장 카메라
__카메라의 종류
__원근 투영
__카메라 구현
__카메라를 뒷받침하는 알고리즘
__요약
__연습 문제
__참고 문헌

__9장 인공지능
'실제' AI와 게임의 AI
__길 찾기
__상태 기반 행동
__전략과 계획
__요약
__연습 문제
__참고 문헌

10장 사용자 인터페이스
__메뉴 시스템
__HUD의 구성 요소
__기타 UI 고려사항
__요약
__연습 문제
__참고 문헌

11장 스크립트 언어와 데이터 형식
__스크립트 언어
__스크립트 언어의 구현
__데이터 형식
__사례 연구: [월드 오브 워크래프트]의 UI MOD
__요약
__연습 문제
__참고 문헌

12장 네트워크
__프로토콜
__네트워크 토폴로지
__부정행위
__요약
__연습 문제
__참고 문헌

13장 iOS용 횡 스크롤 게임 예제
__개요
__코드 분석
__과제
__요약

14장 PC, 맥용 타워 디펜스 게임 예제
__개요
__코드 분석
__과제
__요약

부록A 연습 문제 풀이
부록B 유용한 프로그래밍 툴
펼쳐보기
이 책에서 다루는 내용

■ 게임 시간의 운영, 속도 제어를 통해 하드웨어의 차이와 관계없이 일관성을 유지하는 방법
■ 최신 모바일 게임에 쓰이는 핵심적인 2D 그래픽 기법
■ 3D 게임에 필요한 벡터, 행렬, 선형 대수학
■ 좌표 공간, 조명과 셰이딩, Z 버퍼링, 사원수 등 3D 그래픽 기법
■ 다양한 디지털 입력, 아날로그 입력의 처리 방법
■ 사운드 이벤트, 3D 오디오, 디지털 신호 처리를 포함하는 사운드 시스템
■ 충돌 확인과 수치 적분을 포함하는 게임 물리학의 기초
■ 1인칭 카메라, 수행 카메라, 스플라인 카메라 등 다양한 카메라
■ 길 찾기, 상태 기반 행동, 전략과 계획 등의 인공지능
■ 메뉴 시스템, HUD 같은 사용자 인터페이스
■ 스크립트 언어와 텍스트 형식 데이터 파일을 사용해야 하는 이유와 시기, 상황
■ 프로토콜과 네트워크 토폴로지 등 네트워크 게임에 필요한 기본 지식

이 책의 대상 독자

이 책은 C++, C#, 자바 같은 객체지향 언어로 프로그래밍하는 방법을 알고 연결 리스트, 이진 트리, 해시 테이블 같은 기본적인 데이터 구조에 친숙한 독자를 대상으로 한다. 일반적인 대학 컴퓨터 과학 교육 과정이라면 첫 두 학기에 이런 내용을 모두 소개하므로 수업만 잘 들었다면 별문제 없을 것이다. 또 미적분학을 수강했다면 선형 대수학, 물리학을 다루는 단원에서 소개하는 개념을 한층 수월하게 이해할 수 있을 것이다.

꼭 필요한 조건은 아니지만 간단한 게임을 기획해본 적이 있거나 게임에 친숙하기만 하다면 책의 내용을 이해하는 데 여러모로 유리하다. 특정 장르에만 쓰이는 프로그래밍 기법을 소개할 때도 있으므로 해당 장르 게임을 잘 알고 있다면 이해하기 쉬울 것이다. 또 게임메이커 같은 툴을 사용해서 게임을 프로토타이핑해본 적이 있다면 이해가 빠르겠지만 해본 적이 없어도 딱히 상관없다.

이 책은 강의를 목적으로 쓰였지만, 이미 일반적인 프로그래밍을 잘 알고 있으면서 전문적인 게임 프로그래밍에 관심이 있는 사람이라면 누구에게나 유용할 수 있다. 모든 주제를 실용성과 활용성에 초점을 맞춰서 설명한다는 점이 다른 대학 교재와의 차이점이다. 마지막으로 이 책은 게임 프로그래밍에 관한 다양한 주제를 폭넓게 소개하므로 게임 프로그래밍의 색다른 면모를 공부해보고 싶은 초보 프로그래머에게도 유용할 수 있다.

이 책의 구성

1장부터 12장까지는, 게임 프로그래밍에 쓰이는 다양한 알고리즘과 기법을 간략하게 소개한다. 2D/3D 그래픽, 물리학, 인공지능, 카메라 등 상당히 폭넓은 주제를 다룬다. 1장부터 순서대로 차례로 읽게 구성했지만, 어느 정도 벗어나도 상관없다.

마지막 두 개 장인 13장과 14장은 12장까지 앞에서 소개한 다양한 알고리즘과 기법을 토대로 만든 예제 게임을 소개하는 일종의 사례 연구를 다룬다. 두 개의 예제 게임은 각각 cocos2d를 사용해서 오브젝티브C로 만든 iOS용 2D 횡 스크롤 게임과 XNA, 모노 게임을 사용해서 C#으로 만든 PC, 맥, 리눅스용 3D 타워 디펜스 게임이다. 소스 코드는 이 책의 웹사이트인 http://gamealgorithms.net에서 다운로드할 수 있다.

1장, 게임 프로그래밍 개요
비디오 게임의 시대별 변천사를 통해 게임 프로그래머의 역할이 바뀌어온 과정을 간단하게 소개한다. 먼저 비디오 게임의 역사를 간략하게 살펴본 뒤에 게임을 프로그래밍하는 데 있어서 중요한 개념인 게임 루프, 시간 운영, 게임 오브젝트를 소개한다.

2장, 2D 그래픽
웹, 스마트폰, 독립 게임의 폭발적인 증가와 맞물려 2D 그래픽은 일종의 르네상스를 맞고 있다. 개발자가 2D에 끌리는 이유는 개발 예산과 인원을 줄일 수 있기 때문이다. 게이머가 2D에 끌리는 이유는 게임이 깔끔하고 단순하기 때문이다.
이 책은 주로 3D 게임에 초점을 맞추고 있지만 2D 그래픽에 숨어있는 핵심 개념을 그냥 지나치는 우를 범하진 않으려 한다. 또 다른 장에서 소개할 물리학, 음향, UI 프로그래밍에 관한 내용 중 상당수는 2D 게임과 3D 게임 양쪽에 똑같이 적용할 수 있다는 점도 명심하기 바란다.

3장, 선형 대수학
수학의 한 분야인 선형 대수학은 따로 책 한 권을 쓰기에 충분할 만큼 광범위한 학문이다. 하지만 3D 컴퓨터 게임에 쓰이는 선형 대수학은 그 넓은 범위 중 극히 일부다. 3장에서는 선형 대수학을 뒷받침하는 이론과 증명을 속속들이 소개하는 대신에 실제로 게임 프로그래밍과 관련이 있는 내용만 소개할 예정이다.
게임 프로그래머에게 벡터와 행렬의 중요성은 아무리 강조해도 지나치지 않다. 게임 업계에 종사하는 프로그래머라면 벡터와 행렬을 마주하지 않는 날이 드물 정도다.

4장, 3D 그래픽
최초의 3D 게임은 아케이드(상점가, 특히 국내의 경우 ‘오락실’을 의미) 시대에 등장했지만 사실상 3D 게임의 시대는 1990년대 중후반에 와서야 막을 올렸다. 요즘은 콘솔과 PC를 막론하고 거의 모든 AAA 타이틀이 3D 게임이다. 또 스마트폰의 성능이 높아지면서 모바일 게임에서도 3D의 비중이 점점 높아지고 있다.
기술적으로 3D 게임의 가장 큰 어려움은 3D인 게임 세계를 2D 화면에 표시해야 한다는 점이다. 4장에서는 이런 문제를 극복하는 데 필요한 요소를 설명하려 한다.

5장, 입력
게임에서 사용자의 입력을 빼버리면 영화, TV와 별다를 바 없다. 실제로 게임은 키보드, 마우스, 컨트롤러 등 다양한 입력 장치와 상호작용한다.
5장에서는 모바일 기기용 입력 장치를 포함해서 다종다양한 입력 장치를 상세하게 살펴본다. 게다가 한층 수준 높은 입력 시스템을 설계하고 구현하는 방법도 설명한다.

6장, 사운드
종종 간과하곤 하지만 사운드는 게임의 중요한 구성 요소다. 사운드의 중요성을 직접 느껴보고 싶다면 좋아하는 게임을 무음 상태로 플레이해보기 바란다. 사운드가 없으면 확실히 허전한 느낌이 들 것이다.
6장에서는 먼저 소스 데이터를 게임 코드가 재생할 ‘큐’로 전환하는 방법을 설명한다. 그런 다음 도플러 효과, 디지털 신호 처리, 사운드 폐쇄 등 특정 상황에서 쓸 수 있는 좀 더 수준 높은 사운드 기법을 소개한다.

7장, 물리학
아무리 물리학이 필요 없어 보이는 게임도 최소한 충돌 확인과 운동 정도는 구현해야 할 수 있다. 충돌 확인을 사용하면 두 게임 오브젝트가 서로 겹쳤는지 확인할 수 있다. 7장에서는 충돌을 확인할 때 사용할 수 있는 다양한 알고리즘 중에 가장 기본적인 알고리즘 몇 가지를 소개하려 한다.
물리학의 운동에 관한 부분에서는 고전역학에서 유래한 힘, 가속도, 질량 등의 속성을 고려해서 프레임 단위로 오브젝트의 위치를 결정하는 방법을 소개한다. 이 과정에는 미적분학, 특히 7장의 뒷부분에서 설명하는 수치 적분이 꼭 필요하다.

8장, 카메라
카메라는 3D 게임 세상에서 플레이어의 시점(視點)을 나타낸다. 게임에 쓰이는 카메라의 종류는 다양하며 기본적으로 게임에 사용할 카메라는 개발 초기에 결정해야 한다.
8장에서는 요즘 게임에 주로 쓰이는 카메라 몇 종류를 소개하고 카메라에 따라 신 안에서 처리해야 할 계산에 관해 설명한다. 또 4장, ‘3D 그래픽’에서 처음 소개했던 원근 투영에 관해 좀 더 자세히 살펴본다.

9장, 인공지능
9장에서는 인공지능의 세 가지 주요 측면인 길 찾기, 상태 기반 행동, 전략과 계획을 소개한다. 길 찾기 알고리즘은 플레이어가 조종할 수 없는 NPC가 게임 세계를 돌아다닐 경로를 결정한다. 또 NPC는 상태 기반 행동을 통해 자신의 행동을 결정한다. 마지막으로 전략과 계획은 실시간 전략(RTS) 게임처럼 대규모 AI 계획이 불가피할 때 필요하다.

10장, 사용자 인터페이스
일반적으로 게임의 사용자 인터페이스는 메뉴 시스템과 헤드업 디스플레이(HUD)라는 두 가지 구성 요소를 지닌다. 메뉴 시스템은 모드 변경, 게임 일시 정지, 설정 선택 등 플레이어가 게임에 참여하는 방법과 게임에서 벗어나는 방법을 정의한다. 또 RPG처럼 인벤토리나 스킬을 관리하는 메뉴가 따로 있는 게임도 있다.
레이더, 탄약 수, 나침반, 조준선 등 실제로 게임을 플레이하는 플레이어에게 부가적인 정보를 제공하는 모든 요소가 HUD에 속한다. HUD가 없는 게임도 있고 설정을 통해 HUD를 없앨 수 있는 게임도 있지만, 대부분의 게임은 하다못해 기본적인 형태일지언정 HUD를 가진다.

11장, 스크립트 언어와 데이터 형식
게임 플레이에 관한 코드를 스크립트 언어로 작성하는 게임이 점점 늘고 있다. 11장에서는 스크립트 언어의 장단점과 함께 게임에 사용할 수 있는 몇몇 스크립트 언어를 소개한다.
또 레벨을 구성하는 데이터와 기타 게임 속성을 저장하는 방법도 살펴본다. 스크립트 언어에서 데이터를 바이너리와 텍스트로 표현하는 방법도 함께 소개한다.

12장, 네트워크
네트워크를 지원하는 게임은 인터넷 너머의 플레이어와 함께 플레이할 수 있다. 최근 가장 인기 있는 네트워크 게임인 〈헤일로〉, 〈콜 오브 듀티〉, 〈월드 오브 워크래프트〉 등은 네트워크를 지원하거나 네트워크에 연결해야만 플레이할 수 있는 게임이다. AI가 아무리 발전했다고 해도 AI를 상대로 하는 게임 경험은 진짜 사람과 플레이할 때의 게임 경험에 비할 바가 아니다.
네트워크를 지원하는 게임의 구현은 책 한 권을 다 채울 수 있을 만큼 상당히 복잡한 주제다. 12장에서는 네트워크를 통해 데이터를 전달하는 기본적인 방법과 네트워크 지원 때문에 달라져야 하는 게임 설계 방법을 소개한다.

13장, iOS용 횡 스크롤 게임 예제
횡 스크롤 게임이란 옆에서 바라보는 상태로 진행하는 게임을 말한다. 그리고 무한 스크롤이란 플레이어가 죽을 때까지 끊임없이 게임 세계를 스크롤하는 방식을 말한다. 잘 알려진 무한 횡 스크롤 게임으로 〈제트팩 조이라이드(Jetpack Joyride)〉가 있다. 13장에서 살펴볼 〈Ship Attack〉이라는 예제 게임은 2D 공간에서 펼쳐지는 무한 횡 스크롤 게임으로, cocos2d 프레임워크를 사용해서 오브젝티브C로 만든 iOS용 게임이다.

14장, PC, 맥용 타워 디펜스 게임 예제
타워 디펜스는 꽤 오랫동안 명맥을 이어온 장르지만 사실상 〈스타크래프트〉와 〈워크래프트 III〉 같은 게임의 유즈맵(사용자가 직접 만든 맵)을 계기로 주목받기 시작했다. 타워 디펜스는 요즘 큰 인기를 누리고 있는 장르로 거의 모든 게임 플랫폼에서 수많은 타워 디펜스 게임을 찾아볼 수 있다.
14장에서는 미래가 배경인 〈__Defense〉라는 타워 디펜스 게임을 구현해볼 예정이다. 이미지는 3D지만 실제 게임 플레이는 2D 평면상에서 이뤄진다. 게임의 코드는 XNA와 모노 게임 프레임워크를 사용해서 C#으로 만들었다.

부록A, 연습 문제 풀이
1장에서 12장까지의 연습문제에 대한 해답을 제공한다.

부록B, 유용한 프로그래밍 툴
다양한 툴을 통해 프로그램의 에러를 줄이고 프로그래머의 생산성을 높일 수 있다. 부록 B에서는 거의 모든 전문 개발자가 매일같이 사용하는 유용한 툴 몇 가지를 소개한다. 여기서 소개하는 툴은 매우 보편적인 툴이므로 사용법을 잘 익혀두면 게임 프로그램뿐만 아니라 다른 프로그램을 만들 때도 유용하게 쓸 수 있다.

펼쳐보기

독자서평 쓰기 로그인을 하시면 독자서평을 쓰실 수 있습니다.

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

이 분야의 베스트

더보기 >

    이 분야의 신간

    더보기 >
      맨위로가기

      영풍문고 로고

      • 회사명 : (주)영풍문고
      • 대표이사 : 김경환
      • 소재지 : 서울특별시 종로구 청계천로 41 (우)03188
      • 사업자 등록번호 : 773-86-01800 ㅣ 통신판매업 신고번호 : 2023-서울종로-0130 [ 사업자정보확인 ]
      • 개인정보관리 책임자 : 조순제 ㅣ customer@ypbooks.co.kr ㅣ 대량주문 : webmaster@ypbooks.co.kr
      COPYRIGHT © YOUNGPOONG BOOKSTORE INC. ALL RIGHTS RESERVED.
      영풍문고 네이버블로그 영풍문고 인스타그램
      맨위로가기