본문 바로가기

추천 검색어

실시간 인기 검색어

게임 프로그래밍 알고리즘

에이콘 게임 개발 프로그래밍 시리즈
산자이 마드하브 저자(글) · 김홍중 번역
에이콘출판 · 2016년 01월 04일
6.3 (4개의 리뷰)
집중돼요 (100%의 구매자)
  • 게임 프로그래밍 알고리즘 대표 이미지
    게임 프로그래밍 알고리즘 대표 이미지
  • A4
    사이즈 비교
    210x297
    게임 프로그래밍 알고리즘 사이즈 비교 188x235
    단위 : mm
MD의 선택 무료배송 이벤트 소득공제
10% 36,000 40,000
적립/혜택
2,000P

기본적립

5% 적립 2,000P

추가적립

  • 5만원 이상 구매 시 추가 2,000P
  • 3만원 이상 구매 시, 등급별 2~4% 추가 최대 2,000P
  • 리뷰 작성 시, e교환권 추가 최대 300원
절판되었습니다.

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

패키지

북카드

키워드 Pick

키워드 Pick 안내

관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.

게임 프로그래밍 알고리즘 상세 이미지
이 책은 서던 캘리포니아 대학교(USC)의 비디오게임 프로그래밍 과정 강사인 저자가 수업에 활용할 보조교재를 목적으로 쓴 책이다. 목적에 충실하게 특정 게임 엔진이나 플랫폼에 얽매이지 않고 2D, 3D 그래픽, 수학, 물리학, 사운드, 인공지능, 사용자 인터페이스 등 게임 개발에 쓰이는 다양한 알고리즘과 기법을 소개한다. 마지막으로 본문에서 소개한 내용을 종합해서 두 개의 예제 게임을 만들어 보면서 배운 내용을 복습한다.

작가정보

저자 산자이 마드하브(Sanjay Madhav)는 서던 캘리포니아 대학(USC)의 강사로, 비디오 프로그래밍에 관한 다양한 과목을 가르치고 있다. USC에서 전임 강사를 맡기 전에는 일렉트로닉 아츠(Electronic Arts), 네버소프트(Neversoft), 판데믹 스튜디오(Pandemic Studios) 등 여러 비디오 게임 개발사에서 프로그래머로 일했다. 다양한 시스템에서 프로그래밍을 해왔지만 주 관심사는 게임 플레이 메커니즘이다. 〈메달 오브 아너: 퍼시픽 어썰트(Medal ofHonor: Pacific Assault)〉, 〈토니 호크 프로젝트 8(Tony Hawk’s Project 8)〉, 〈반지의 제왕: 컨퀘스트(Lord of the Rings: Conquest)〉, 〈사보티어(The Saboteur)〉 등의 개발에 참여했다.
2008년 게임 업계에서 일하며 USC에서 시간 강사로 강의를 시작했고, 2009년 판데믹 스튜디오가 문을 닫은 뒤로 전도유망한 게임 프로그래머를 가르치는 데 힘을 쏟기로 마음먹었다. 주력 과목은 연달아 10학기 이상 맡아온 학부생 대상 게임 프로그래밍이다.

역자 김홍중은 중앙대학교 컴퓨터공학과를 졸업했다. 재학 중에 삼성소프트웨어 멤버십 회원으로 활동하다 삼성전자에 입사했고, DM 연구소, VD 사업부에 근무하면서 윈도우CE, 임베디드 리눅스 환경에서 PDA, 셋톱박스, DTV 등 다양한 기기에 들어가는 애플리케이션을 개발했다. 2007년, 답답한 삶을 털어내고 훌쩍 미국으로 날아가 한껏 여유를 즐기다가 빈손으로 돌아왔다. 이후 웹 호스팅사, 게임 개발사를 거쳐 지금은 메이크어스 모바일(Makeus Mobile)에서 iOS 앱을 개발 중이다.
에이콘출판사에서 출간한 『유니티3D 게임 스크립트』(2015), 『Beginning Windows Phone 7 Development 한국어판』(2011), 『아이폰 UI 디자인 프로젝트』(2010), 『The iPhone Developer’s Cookbook (Second Edition) 한국어판』(2010) 등을 번역했다

목차

  • 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에서는 거의 모든 전문 개발자가 매일같이 사용하는 유용한 툴 몇 가지를 소개한다. 여기서 소개하는 툴은 매우 보편적인 툴이므로 사용법을 잘 익혀두면 게임 프로그램뿐만 아니라 다른 프로그램을 만들 때도 유용하게 쓸 수 있다.

★ 지은이의 말 ★

불과 얼마 전만 해도 게임 업계에서는 전문가 몇 명이 상업용 비디오 게임의 프로그래밍에 필요한 지식을 독점하고 있었다. 마이클 아브라쉬(Michael Abrash)의 『Graphics Programming Black Book』 같은 기념비적인 책이 있었다 해도, 그 당시 AAA 게임(대작 게임)에 쓰이는 실전 알고리즘은 마치 흑마법이나 금단의 지식처럼 베일에 싸여 있어서 배우기가 쉽지 않았다. 정규 교육 과정을 통해 게임 프로그래밍을 배우려면 소수의 전문 직업학교밖에 선택지가 없었다. 하지만 지난 10여 년간 비디오 게임 교육은 큰 변화를 겪어 왔다. 이제 유명 대학 중에도 비디오 게임 프로그래밍에 관한 과정과 학위를 제공하는 학교가 생겼으며 그 수는 매년 늘고 있다.

비디오 게임 교육 과정이 늘어나면서 게임 회사가 신입 프로그래머에게 바라는 기대치가 너무 높아지는 부작용도 생겼다. 2000년대 초만 해도 초보 프로그래머에게 컴퓨터 과학에 관한 확고한 배경지식과 비디오 게임 제작에 관한 열정 이상을 기대하는 회사는 없었다. 단지 탄탄한 기초를 바탕으로 실무를 통해 더욱 수준 높은 게임 프로그래밍 기법을 배워 나가길 바라는 정도가 고작이었다. 요즘은 중점적으로 게임에 관한 교육을 받을 수 있는 훌륭한 교육 기관이 많으므로 신입 프로그래머라도 게임 프로그래밍에 관한 다양한 경험을 지니고 있을 것이라고 기대하는 회사가 늘고 있다.

굳이 또 게임 프로그래밍 책을 쓴 이유
비디오 게임 과목이 늘어나면서 대학 수준에 맞는 책의 수요도 늘어났다. 하지만 현재 시중에 나와 있는 게임 프로그래밍 책은 대부분 취미로 게임 제작을 배워보려는 개발자나 이미 게임 업계에 수년간 종사해온 전문 개발자를 대상으로 하고 있다. 양쪽 다 대학 수업에 쓰기에는 무리가 있었다. 취미용 개발서는 대학생에게 가르치기에 너무 수준이 낮았고 전문가용 개발서는 대학생이 제대로 이해할 수 있는 수준을 넘어서기 일쑤였다.

‘ITP 380: 비디오 게임 프로그래밍’은 내가 서던 캘리포니아 대학교(USC)에서 가르치는 과정 중 하나다. 수업에 들어오는 학생은 보통 프로그래밍의 기본을 잘 알고 있는 2, 3학년이다. 게임 메이커(Game Maker)나 유니티(Unity) 같은 게임 엔진을 사용해서 간단한 게임을 만들어봤던 학생도 있지만, ITP 380을 통해 실질적인 비디오 게임 프로그래밍을 처음 접하는 학생이 대부분이다. 이 책이 내 수업은 물론, 다른 대학의 비슷한 수업에서 지금껏 미흡했던 부분을 메꿔주는 참고서 역할을 할 수 있으면 좋겠다. 대학생을 대상으로 쓴 책이지만 게임 프로그래밍에 흥미가 있는 사람이라면 이 책의 진가를 알아볼 수 있으리라 믿는다.

이 책의 앞쪽 열두 장은 플랫폼, 프레임워크와 상관없는 내용이다. 즉 프로그래밍 언어나 타깃 플랫폼에 상관없이 다양한 2D 게임과 3D 게임에 적용할 수 있는 내용이 대부분이다. 특정 프레임워크의 특정 버전에 단단히 얽혀서 몇 년만 지나도 쓸모가 없어지는 다른 책과 확연히 다른 특징이다. 미래를 내다볼 수는 없지만 적어도 이 책은 꽤 오랜 시간 동안 가치를 지닐 것으로 생각한다. 또 학교마다 수업에 사용하는 언어와 프레임워크가 다르다 해도 큰 상관없이 유용하게 쓰일 수 있는 책이다. 그렇다고 예제 코드가 쓸모없다는 뜻은 절대로 아니다. 이와 같은 이유로 마지막 두 장에서는 두 종류의 프레임워크로 작성한 두 개의 게임을 소개한다. 물론 예제 코드도 제공한다.

★ 옮긴이의 말 ★

PC, 콘솔을 제외한 iOS, 안드로이드 등의 모바일 플랫폼에서만도 하루에 10여 개의 새로운 게임이 등장하는 요즘, 게임 개발은 그리 특별하게 느껴지는 일이 아닐지도 모른다. 하지만 하나의 게임을 만들려면 수많은 알고리즘과 기법이 필요한 게 사실이다. 3D 캐릭터를 단순히 화면에 표시하는 데만도 크게 모델링, 렌더링을 필두로 하는 다양한 알고리즘과 기법이 쓰인다. 사운드, 입력 처리 등 게임을 이루는 모든 분야가 마찬가지다. 따라서 수년 전만 해도 게임 개발은 상당히 전문적인 개발 분야로 여겨졌다.

하지만 요즘은 게임 개발에 필요한 대부분의 알고리즘과 기법을 알아서 처리해주는 훌륭한 게임 개발 툴이 등장한 덕분에 게임 내부에서 일어나는 일에 관해 잘 알지 못하더라도 비교적 간단하게 게임을 만들 수 있다. 개발 툴의 GUI를 사용해서 적당히 구성 요소를 배치하고 약간의 스크립트만 작성하면 게임이 만들어진다. 단순히 게임을 만들어내는 것만이 목적이라면, 적절한 게임 개발 툴을 선택하고 활용법을 익히는 쪽이 가장 빠르고 확실한 길이다. 목적이 그뿐이라면 이 책이 딱히 유용하지 않을 수 있다. 하지만 자신이 만들고 있는 게임이 ‘어떻게’ 동작하는지 궁금하다면 이 책에서 큰 도움을 받을 것이다.

USC의 비디오 게임 프로그래밍 과정 강사인 저자는 이 책의 ‘들어가며’에서 대학 수준의 게임 프로그래밍 강의에 쓸 수 있는 보조교재를 만들고 싶었다고 밝히고 있다. 그리고 자신의 의도를 충분히 살려서 2D, 3D 그래픽, 선형 대수학, 물리학, 사운드, 입력, 인공지능, 사용자 인터페이스, 네트워크 등 폭넓은 주제에 걸쳐 다양한 알고리즘과 기법을 소개한다. 물론 여기서 소개하는 알고리즘이나 기법 중에는 최신 게임에 쓰이지 않는 것도 있다. 하지만 적어도 처음에 느낀 궁금증을 해소해주거나 궁금증 해소에 관한 단서를 제공할 수 있는 튼튼한 ‘기초’라는 점만큼은 분명하다. 그리고 이 페이지를 읽고 있는 독자라면, 기초의 중요성은 부연하지 않아도 잘 알고 있으리라 믿는다.

기본정보

상품정보
ISBN 9788960778016
발행(출시)일자 2016년 01월 04일
쪽수 404쪽
크기
188 * 235 * 24 mm / 942 g
총권수 1권
시리즈명
에이콘 게임 개발 프로그래밍 시리즈
원서명/저자명 Game Programming Algorithms and Techniques: A Platform-Agnostic Approach/Sanjay Madhav

Klover

Klover 리뷰 안내
교보를 애용해 주시는 고객님들이 남겨주신 평점과 감상을 바탕으로, 다양한 정보를 전달하는 교보문고의 리뷰 서비스입니다.
1.리워드 안내
구매 후 90일 이내에 평점과 10자 이상의 리뷰 작성 시 e교환권 200원을 적립해 드립니다.
e교환권은 적립 일로부터 180일 동안 사용 가능합니다.
리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 리뷰 종류별로 구매한 아이디당 한 상품에 최초 1회 작성 건들에 대해서만 제공됩니다.
판매가 1,000원 미만 도서의 경우 리워드 지급 대상에서 제외됩니다.
한달 후 리뷰
구매 후 30일~ 120일 이내에 작성된 두 번째 구매리뷰에 대해 한 달 후 리뷰로 인지하고 e교환권 100원을 추가 제공합니다.

* 강연, 공연, 여행, 동영상, 사은품, 기프트카드 상품은 지급 제외
2.운영 원칙 안내
Klover 리뷰를 통한 리뷰를 작성해 주셔서 감사합니다. 자유로운 의사 표현의 공간인 만큼 타인에 대한 배려를 부탁합니다.
일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
  • 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
  • 도서와 무관한 내용의 리뷰
  • 인신공격이나 욕설, 비속어, 혐오발언이 개재된 리뷰
  • 의성어나 의태어 등 내용의 의미가 없는 리뷰

리뷰는 1인이 중복으로 작성하실 수는 있지만, 평점계산은 가장 최근에 남긴 1건의 리뷰만 반영됩니다.
3.신고하기
다른 고객이 작성리뷰에 대해 불쾌함을 느끼는 경우 신고를 할 수 있으며, 신고 자가 일정수준 이상 누적되면 작성하신 리뷰가 노출되지 않을 수 있습니다.

구매 후 리뷰 작성 시, e교환권 200원 적립

문장수집

문장수집 안내
문장수집은 고객님들이 직접 선정한 책의 좋은 문장을 보여주는 교보문고의 새로운 서비스입니다. 마음을 두드린 문장들을 기록하고 좋은 글귀들은 "좋아요“ 하여 모아보세요. 도서 문장과 무관한 내용 등록 시 별도 통보 없이 삭제될 수 있습니다.
리워드 안내
구매 후 90일 이내에 문장수집 작성 시 e교환권 100원을 적립해드립니다.
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.

구매 후 리뷰 작성 시, e교환권 100원 적립

이 책의 첫 기록을 남겨주세요

교환/반품/품절 안내

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

이벤트
TOP

저자 모두보기

번역

매장별 재고 및 도서위치

할인쿠폰 다운로드

  • 쿠폰은 주문결제화면에서 사용 가능합니다.
  • 다운로드한 쿠폰은 마이 > 나의 통장 에서 확인 가능합니다.
  • 도서정가제 적용 대상 상품에 대해서는 정가의 10%까지 쿠폰 할인이 가능합니다.
  • 도서정가제 적용 대상 상품에 10% 할인이 되었다면, 해당 상품에는 사용하실 수
    없습니다.

적립예정포인트 안내

  • 통합포인트 안내

    • 통합포인트는 교보문고(인터넷, 매장), 핫트랙스(인터넷, 매장), 모바일 교보문고 등 다양한 곳에서 사용하실 수 있습니다.
    • 상품 주문 시, 해당 상품의 적립률에 따라 적립 예정 포인트가 자동 합산되고 주문하신 상품이 발송완료 된 후에 자동으로 적립됩니다.
    • 단, 쿠폰 및 마일리지, 통합포인트, e교환권 사용 시 적립 예정 통합포인트가 변동될 수 있으며 주문취소나 반품시에는 적립된 통합포인트가 다시 차감됩니다.
  • 통합포인트 적립 안내

    • 통합포인트는 도서정가제 범위 내에서 적용됩니다.
    • 추가적립 및 회원 혜택은 도서정가제 대상상품(국내도서, eBook등)으로만 주문시는 해당되지 않습니다.
  • 기본적립) 상품별 적립금액

    • 온라인교보문고에서 상품 구매시 상품의 적립률에 따라 적립됩니다.
    • 단 도서정가제 적용 대상인 국내도서,eBook은 15%내에서 할인율을 제외한 금액내로 적립됩니다.
  • 추가적립) 5만원 이상 구매시 통합포인트 2천원 추가적립

    • 5만원 이상 구매시 통합포인트 2천원 적립됩니다.
    • 도서정가제 예외상품(외서,음반,DVD,잡지(일부),기프트) 2천원 이상 포함시 적립 가능합니다.
    • 주문하신 상품이 전체 품절인 경우 적립되지 않습니다.
  • 회원혜택) 3만원이상 구매시 회원등급별 2~4% 추가적립

    • 회원등급이 플래티넘, 골드, 실버 등급의 경우 추가적립 됩니다.
    • 추가적립은 실결제액 기준(쿠폰 및 마일리지, 통합포인트, e교환권 사용액 제외) 3만원 이상일 경우 적립됩니다.
    • 주문 후 취소,반품분의 통합포인트는 단품별로 회수되며, 반품으로 인해 결제잔액이 3만원 미만으로 변경될 경우 추가 통합포인트는 전액 회수될 수 있습니다.

제휴 포인트 안내

제휴 포인트 사용

  • OK CASHBAG 10원 단위사용 (사용금액 제한없음)
  • GS&POINT 최대 10만 원 사용
더보기

구매방법 별 배송안내

지역별 도착 예정일

수도권 지역

배송 일정 안내 테이블로 결제 완료 시간, 도착예정일 결제 완료 시간 컬럼의 하위로 평일 0시 ~ 12시 토요일 0시 ~ 11시 평일 12시 ~ 22시 평일 12시 ~ 24시 토요일 11시 ~ 21시 을(를) 나타낸 표입니다.
결제 완료 시간 도착예정일
평일 0시 ~ 12시

토요일 0시 ~ 11시
당일배송 오늘

당일배송 오늘
평일 12시 ~ 22시

평일 12시 ~ 24시

토요일 11시 ~ 21시
새벽배송 내일 07시 이전

내일

일요배송 일요일

수도권 외 (천안, 대전, 울산, 부산, 대구, 창원)

배송 일정 안내 테이블로 결제 완료 시간, 도착예정일 결제 완료 시간 컬럼의 하위로 월~토 0시 ~ 11시 30분 을(를) 나타낸 표입니다.
결제 완료 시간 도착예정일
월~토 0시 ~ 11시 30분
당일배송 오늘

배송 유의사항

  • 새벽배송과 일요배송은 수도권 일부 지역을 대상으로 합니다. 상품 상세페이지에서 도착 예정일을 확인해 주세요.
  • 수도권 외 지역에서 선물포장하기 또는 사은품을 포함하여 주문할 경우 당일배송 불가합니다.
  • 무통장입금 주문 후 당일 배송 가능 시간 이후 입금된 경우 당일 배송 불가합니다.
  • 새벽배송의 경우 공동 현관 출입 번호가 누락 되었거나 틀릴 경우 요청하신 방법으로 출입이 어려워, 부득이하게 공동 현관 또는 경비실 앞에 배송 될 수 있습니다.
  • 학교, 관공서, 회사 등 출입 제한 시간이 있는 곳은 당일배송, 새벽배송, 일요배송이 제공되지 않을 수 있습니다.
  • 공휴일과 겹친 토요일, 일요일은 일요일 배송에서 제외됩니다. 일요배송은 한정 수량에 한해 제공됩니다. 수량 초과 시 일반배송으로 발송되니 주문 시 도착 예정일을 확인해 주세요.
  • 주문 후 배송지 변경 시 변경된 배송지에 따라 익일 배송될 수 있습니다.
  • 수도권 외 지역의 경우 효율적인 배송을 위해 각 지역 매장에서 택배를 발송하므로, 주문 시의 부록과 상이할 수 있습니다.
  • 각 지역 매장에서 재고 부족 시 재고 확보를 위해 당일 배송이 불가할 수 있습니다.
  • 기상악화로 인한 도로 사정으로 일부 지역의 배송 지연이 발생될 수 있습니다.
  • 출고 예정일이 5일 이상인 상품의 경우(결제일로부터 7일 동안 미입고), 출판사 / 유통사 사정으로 품/절판 되어 구입이 어려울 수 있습니다. 이 경우 SMS, 메일로 알려드립니다.
  • 분철상품 주문 시 분철 작업으로 인해 기존 도착 예정일에 2일 정도 추가되며, 당일 배송, 해외 배송이 불가합니다.
  • 해외주문도서는 해외 거래처 사정에 의해 품절/지연될 수 있습니다.
  • 스페셜오더 도서나 일서 해외 주문 도서와 함께 주문 시 배송일이 이에 맞추어 지연되오니, 이점 유의해 주시기 바랍니다.

바로드림존에서 받기

  1. STEP 01
    매장 선택 후 바로드림 주문
  2. STEP 02
    준비완료 알림 시 매장 방문하기
  3. STEP 03
    바로드림존에서 주문상품 받기
  • 바로드림은 전국 교보문고 매장 및 교내서점에서 이용 가능합니다.
  • 잡지 및 일부 도서는 바로드림 이용이 불가합니다.
  • 각 매장 운영시간에 따라 바로드림 이용 시간이 달라질 수 있습니다.

수령 안내

  • 안내되는 재고수량은 서비스 운영 목적에 따라 상이할 수 있으므로 해당 매장에 문의해주시기 바랍니다.
  • 바로드림 주문 후 재고가 실시간 변동되어, 수령 예상 시간에 수령이 어려울 수 있습니다.

취소/교환/반품 안내

  • 주문 후 7일간 찾아가지 않으시면, 자동으로 결제가 취소됩니다.
  • 취소된 금액은 결제수단의 승인취소 및 예치금으로 전환됩니다.
  • 교환/반품은 수령하신 매장에서만 가능합니다.

사은품 관련 안내

  • 바로드림 서비스는 일부 1+1 도서, 경품, 사은품 등이 포함 되지 않습니다.

음반/DVD 바로드림시 유의사항

  • 음반/DVD 상품은 바로드림 주문 후 수령점 변경이 불가합니다. 주문 전 수령점을 꼭 확인해 주세요.
  • 사은품(포스터,엽서 등)은 증정되지 않습니다.
  • 커버이미지 랜덤발매 음반은 버전 선택이 불가합니다.
  • 광화문점,강남점,대구점,영등포점,잠실점은 [직접 찾아 바로드림존 가기], [바로드림존에서 받기] 로 주문시 음반 코너에서 수령확인이 가능합니다
  • 선물 받는 분의 휴대폰번호만 입력하신 후 결제하시면 받는 분 휴대폰으로 선물번호가 전달됩니다.
  • 문자를 받은 분께서는 마이 > 주문관리 > 모바일 선물내역 화면에서 선물번호와 배송지 정보를 입력하시면 선물주문이 완료되어 상품준비 및 배송이 진행됩니다.
  • 선물하기 결제하신 후 14일까지 받는 분이 선물번호를 등록하지 않으실 경우 주문은 자동취소 됩니다.
  • 또한 배송 전 상품이 품절 / 절판 될 경우 주문은 자동취소 됩니다.

바로드림 서비스 안내

  1. STEP 01
    매장 선택 후 바로드림 주문
  2. STEP 02
    준비완료 알림 시 매장 방문하기
  3. STEP 03
    바로드림존에서 주문상품 받기
  • 바로드림은 전국 교보문고 매장 및 교내서점에서 이용 가능합니다.
  • 잡지 및 일부 도서는 바로드림 이용이 불가합니다.
  • 각 매장 운영시간에 따라 바로드림 이용 시간이 달라질 수 있습니다.

수령 안내

  • 안내되는 재고수량은 서비스 운영 목적에 따라 상이할 수 있으므로 해당 매장에 문의해주시기 바랍니다.
  • 바로드림 주문 후 재고가 실시간 변동되어, 수령 예상시간에 수령이 어려울 수 있습니다.

취소/교환/반품 안내

  • 주문 후 7일간 찾아가지 않으시면, 자동으로 결제가 취소됩니다.
  • 취소된 금액은 결제수단의 승인취소 및 예치금으로 전환됩니다.
  • 교환/반품은 수령하신 매장에서만 가능합니다.

사은품 관련 안내

  • 바로드림 서비스는 일부 1+1 도서, 경품, 사은품 등이 포함되지 않습니다.

음반/DVD 바로드림시 유의사항

  • 음반/DVD 상품은 바로드림 주문 후 수령점 변경이 불가합니다. 주문 전 수령점을 꼭 확인해주세요.
  • 사은품(포스터,엽서 등)은 증정되지 않습니다.
  • 커버이미지 랜덤발매 음반은 버전 선택이 불가합니다.
  • 광화문점,강남점,대구점,영등포점,잠실점은 [직접 찾아 바로드림존 가기], [바로드림존에서 받기] 로 주문시 음반코너에서 수령확인이 가능합니다.
  1. STEP 01
    픽업박스에서 찾기 주문
  2. STEP 02
    도서준비완료 후 휴대폰으로 인증번호 전송
  3. STEP 03
    매장 방문하여 픽업박스에서 인증번호 입력 후 도서 픽업
  • 바로드림은 전국 교보문고 매장 및 교내서점에서 이용 가능합니다.
  • 잡지 및 일부 도서는 바로드림 이용이 불가합니다.
  • 각 매장 운영시간에 따라 바로드림 이용 시간이 달라질 수 있습니다.

수령 안내

  • 안내되는 재고수량은 서비스 운영 목적에 따라 상이할 수 있으므로 해당 매장에 문의해주시기 바랍니다.
  • 바로드림 주문 후 재고가 실시간 변동되어, 수령 예상시간에 수령이 어려울 수 있습니다.

취소/교환/반품 안내

  • 주문 후 7일간 찾아가지 않으시면, 자동으로 결제가 취소됩니다.
  • 취소된 금액은 결제수단의 승인취소 및 예치금으로 전환됩니다.
  • 교환/반품은 수령하신 매장에서만 가능합니다.

사은품 관련 안내

  • 바로드림 서비스는 일부 1+1 도서, 경품, 사은품 등이 포함되지 않습니다.

음반/DVD 바로드림시 유의사항

  • 음반/DVD 상품은 바로드림 주문 후 수령점 변경이 불가합니다. 주문 전 수령점을 꼭 확인해주세요.
  • 사은품(포스터,엽서 등)은 증정되지 않습니다.
  • 커버이미지 랜덤발매 음반은 버전 선택이 불가합니다.
  • 광화문점,강남점,대구점,영등포점,잠실점은 [직접 찾아 바로드림존 가기], [바로드림존에서 받기] 로 주문시 음반코너에서 수령확인이 가능합니다.

도서 소득공제 안내

  • 도서 소득공제란?

    • 2018년 7월 1일 부터 근로소득자가 신용카드 등으로 도서구입 및 공연을 관람하기 위해 사용한 금액이 추가 공제됩니다. (추가 공제한도 100만원까지 인정)
      • 총 급여 7,000만 원 이하 근로소득자 중 신용카드, 직불카드 등 사용액이 총급여의 25%가 넘는 사람에게 적용
      • 현재 ‘신용카드 등 사용금액’의 소득 공제한도는 300만 원이고 신용카드사용액의 공제율은 15%이지만, 도서·공연 사용분은 추가로 100만 원의 소득 공제한도가 인정되고 공제율은 30%로 적용
      • 시행시기 이후 도서·공연 사용액에 대해서는 “2018년 귀속 근로소득 연말 정산”시기(19.1.15~)에 국세청 홈택스 연말정산간소화 서비스 제공
  • 도서 소득공제 대상

    • 도서(내서,외서,해외주문도서), eBook(구매)
    • 도서 소득공제 대상 상품에 수반되는 국내 배송비 (해외 배송비 제외)
      • 제외상품 : 잡지 등 정기 간행물, 음반, DVD, 기프트, eBook(대여,학술논문), 사은품, 선물포장, 책 그리고 꽃
      • 상품정보의 “소득공제” 표기를 참고하시기 바랍니다.
  • 도서 소득공제 가능 결제수단

    • 카드결제 : 신용카드(개인카드에 한함)
    • 현금결제 : 예치금, 교보e캐시(충전에한함), 해피머니상품권, 컬쳐캐쉬, 기프트 카드, 실시간계좌이체, 온라인입금
    • 간편결제 : 교보페이, 네이버페이, 삼성페이, 카카오페이, PAYCO, 토스, CHAI
      • 현금결제는 현금영수증을 개인소득공제용으로 신청 시에만 도서 소득공제 됩니다.
      • 교보e캐시 도서 소득공제 금액은 교보eBook > e캐시 > 충전/사용내역에서 확인 가능합니다.
      • SKpay, 휴대폰 결제, 교보캐시는 도서 소득공제 불가
  • 부분 취소 안내

    • 대상상품+제외상품을 주문하여 신용카드 "2회 결제하기"를 선택 한 경우, 부분취소/반품 시 예치금으로 환원됩니다.

      신용카드 결제 후 예치금으로 환원 된 경우 승인취소 되지 않습니다.

  • 도서 소득공제 불가 안내

    • 법인카드로 결제 한 경우
    • 현금영수증을 사업자증빙용으로 신청 한 경우
    • 분철신청시 발생되는 분철비용

알림 신청

아래의 알림 신청 시 원하시는 소식을 받아 보실 수 있습니다.
알림신청 취소는 마이룸 > 알림신청내역에서 가능합니다.

게임 프로그래밍 알고리즘
게임 프로그래머를 위한 실전 알고리즘 원리와 기법
신고

신고 사유를 선택해주세요.
신고 내용은 이용약관 및 정책에 의해 처리됩니다.

허위 신고일 경우, 신고자의 서비스 활동이 제한될 수 있으니 유의하시어
신중하게 신고해주세요.

판형알림

  • A3 [297×420mm]
  • A4 [210×297mm]
  • A5 [148×210mm]
  • A6 [105×148mm]
  • B4 [257×364mm]
  • B5 [182×257mm]
  • B6 [128×182mm]
  • 8C [8절]
  • 기타 [가로×세로]
EBS X 교보문고 고객님을 위한 5,000원 열공 혜택!
자세히 보기

해외주문양서 배송지연 안내

현재 미국 현지 눈폭풍으로 인해
해외 거래처 출고가 지연되고 있습니다.

해외주문양서 주문 시
예상 출고일보다 배송기간이 더 소요될 수 있으니
고객님의 너그러운 양해 부탁드립니다.

감사합니다.