도서명 : GAME PROGRAMMING Gems 7
저자 : Scott Jacobs 등저/ 류광 역
발행일 : 2010년 4월 21일
ISBN : 978-89-94405-00-1
정가 : 39,000 원
구매하기 : 강컴닷컴 | 인터파크 | YES24


 



책소개

게임 프로그래머들의 영원한 베스트셀러 GAME PROGRMMING Gems 시리즈 일곱 번째 책!!

게임 프로그래머들의 영원한 베스트셀러 Game Programmig Gems 시리즈의 일곱 번째 책을 한국어로 번역하였다. 게임 프로그래밍의 기준을 정의하는 데 일조한 새롭고 혁신적인 기법들의 발원지인 Game Programmig Gems 시리즈로, 수학과 물리, 인공지능과 음향은 물론 스크립팅과 자료주도적 시스템에 이르기까지 게임 개발의 모든 핵심 분야를 반영한 각 섹션별로 구성하였으며, 해당 분야 전문가가 선별한 독창적이고 정확하며 유용한 착안의 글들을 수록하였다.

업계 베테랑들과 전문가들이 기고한, 바로 사용할 수 있는 최신의 기법들로 가득한 책으로, 웹캠 기반 비디오 게임을 위한 광류 응용, 투영 공간을 이용한 기하 계산의 정밀도 향상, 복잡한 충돌을 간단하게 처리하기, 행동방식 복제를 이용해서 흥미로운 에이전트 만들기, GPU 프로그램을 이용한 음향 신호 처리, 고급 입자 퇴적, 고성능 세분 표면 등의 내용을 다루었다.

 ** 웹 부록은 '와우북스 자료실'에서 내려 받을 수 있다.

저자 소개

저자: Scott Jacobs

1995년부터 게임 업계에서 일해 왔다. 현재는 Destineer의 선임 소프트웨어 공학자이다. 그 전에는 비오락 게임(serious game) 개발사인 Virtual Heroes에서 소프트웨어 공학자로 재직했으며, 그 전에는 Redstorm Entertainment를 비롯한 Ubisoft의 두 스튜디오에서 일했다. 게임 개발 경력의 첫 직장은 Interactive Magic이었다. 그는 Game Programming Gems 6의 네트워크 및 다중 플레이어 섹션의 편집자를 맡았었다. 현재 North Carolina에서 그의 아내와, 그리고 그가 만든 수많은 창조물들과 함께 살고 있다.

저자: 배현직(Hyun-jik Bae)

Speed Game(Game Programming Gems 5에 나온 그의 약력을 보라)을 만든 후, 배현직은 11세에 Rally-X를 본뜬 Boom Boom Car를 Turbo Pascal을 이용해서 만들었다. Boom Boom Car는 영화 후아유(게이머와 게임 개발자의 사랑 이야기를 다룬 국산 영화)의 남자주인공이 언급하기도 했다. 그는 현재 게임 서버 엔진 개발사 '넷텐션'에서 개발 이사직을 맡고 있다. 주된 관심 분야로는 고성능 게임 서버, 규모가변적 데이터베이스 응용프로그램, 사실적인 렌더러, 물리 시뮬레이터 등이 있다. 또한 피아노와 골프, 그리고 아내와 아들과 함께 하는 여행도 그의 주된 관심 대상이다.

역자: 류광

1996년부터 활동해온 프로그래밍 서적 전문 번역가로, 'Game Programming Gems' 시리즈를 포함해서 십 수권의 게임 프로그래밍 책들을 번역했으며, Knuth 교수의 고전 '컴퓨터 프로그래밍의 예술' 시리즈 전권(1, 2, 3)과 Bjarne Stroustrup의 'Programming―Principles and Practice Using C++'를 비롯해서 다양한 분야의 프로그래밍 서적들을 30권 넘게 번역했다. 최근에는 안드로이드용 게임 개발에 대한 책을 번역하고 있다.

번역과 프로그래밍 외에 소프트웨어 문서화에도 많은 관심을 가지고 있으며, 수많은 오픈소스 프로젝트들의 표준 문서 형식으로 쓰이는 DocBook의 국내 사용자 모임인 닥북 한국(http://docbook.kr/)의 일원이다.
현재 번역서 정보 사이트 occam's Razor(http://occamsrazr.net/)와 Game Programming Gems 스터디 사이트 GpgStudy.com(http://www.gpgstudy.com/)을 운영하고 있다.

목차

역자의 글
서문
표지 그림에 대해
감사의 글
저자 소개

SECTION 1 프로그래밍 일반
1.1 연령 및 비용 측정을 통한 효율적인 캐시 교체
1.2 고성능 힙 할당자
1.3 웹캠 기반 비디오 게임을 위한 광류 응용
1.4 다중 플랫폼 스레드 관리 엔진의 설계와 구현
1.5 꿀벌과 게이머를 위해: 육각 타일 다루기
1.6 세포자동차에 기초한, RTS 게임을 위한 스케치 기반 인터페이스
1.7 1인칭 슈팅 게임을 위한 발 기반 항행 기법
1.8 함수 지연 호출 시스템
1.9 다중 스레드 작업 및 의존성 시스템
1.10 고급 디버깅 기법들

SECTION 2 수학과 물리
2.1 난수 만들기
2.2 게임을 위한 빠른 범용 반직선 질의
2.3 최원 자질 맵을 이용한 빠른 강체 충돌 검출
2.4 투영 공간을 이용한 기하 계산의 정밀도 향상
2.5 XenoCollide: 복잡한 충돌을 간단하게 처리하기
2.6 변환 의미론을 이용한 효율적인 충돌 검출
2.7 삼각 스플라인
2.8 가우스 난수를 이용한 사실적인 탄도 다변화

SECTION 3 인공지능
3.1 행동방식 복제를 이용해서 흥미로운 에이전트 만들기
3.2 사실적이고 통합된 에이전트 감각 모형
3.3 AI 알고리즘 코드의 복잡도 다스리기: 일반적인
...  

책속으로

나는 게임 개발의 전 분야에 대해 열정을 가진 독자들을 흡족하게 할 만한 이 책의 다양성에 커다란 자부심을 느낀다. 나는 그래픽 프로그래머가 오디오 섹션을(반대로 오디오 프로그래머가 그래픽 섹션을) 열심히 읽는 모습을 보고 싶다!--- '저자의 말' 중에서

var single=false; var checkedList; $(document).ready(function() { $(".selPlayer").bind("click", function() { single = false; playing(false,this); return false; }); $(".singlePlayer").bind("click", function() { $("#" + $(this).attr("tag_t")).find(":checkbox:checked").each(function() { this.checked = false; }); single = true; $(this).siblings('input').attr("checked", "checked"); //$(".selPlayer").click(); playing(true,this); return false; }); }); function playing(isSingle,obj) { checkedList = ""; var diskNoList = $('#' + $(obj).attr("diskNoList")).find(':checkbox:checked'); if (!isSingle) { if (diskNoList.length == 0) { alert("트랙을 선택하여 주세요"); return false; } } var form = get_formInstance(); $(diskNoList).each(function() { if ($(this).val() != "on") { var oInput = document.createElement("INPUT"); oInput.type = "hidden"; oInput.id = "chkTrackList"; oInput.name = "chkTrackList"; oInput.value = $(this).val(); form.appendChild(oInput); } }); oInput = document.createElement("INPUT"); oInput.type = "hidden"; oInput.id = "goodsNo"; oInput.name = "goodsNo"; oInput.value = "3773916"; form.appendChild(oInput); oInput = document.createElement("INPUT"); oInput.type = "hidden"; oInput.id = "CategoryNumber"; oInput.name = "CategoryNumber"; oInput.value = "003"; form.appendChild(oInput); var openWindowStyle = "width=430,height=230,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no;fullscreen;"; var actStr = '/Goods/player/PreMusicPlayer.aspx'; rtn = window.open("", "PreMusicPlay", openWindowStyle); form.action = actStr; form.target = 'PreMusicPlay'; if(single){ form.method="get"; } form.submit(); }

출판사 리뷰

게임 프로그래머들의 영원한 베스트셀러 GAME PROGRMMING Gems 시리즈 일곱 번째 책!!

게임 개발자의 필수 참고물인 이 시리즈는 게임 프로그래밍의 기준을 정의하는 데 일조한 새롭고 혁신적인 기법들의 발원지였다. 이번 Game Programming Gems 7 역시 그러한 전통을 이어, 앞서 나가고자 하는 게임 개발자들에게 도구와 영감을 제공한다. 업계 베테랑들과 전문가들이 기고한, 바로 사용할 수 있는 최신의 기법들로 가득한 이 책은 영감과 통찰을 위한 핵심 자원이자 개발자의 도구상자에 추가할만한 시간 절약 방법들의 보고이다.

이 책은 열정적인 개발자들과 의욕적인 신입들의 요구, 게걸스러운 제작 요구사항들, 그리고 혁신적이고 즐거운 게임플레이와 게임 디자인에 대한 기대에 화답한다. 이 책은 수학과 물리, 인공지능과 음향은 물론 스크립팅과 자료주도적 시스템에 이르기까지 게임 개발의 모든 핵심 분야를 반영한 섹션들로 이루어져 있으며, 각 섹션마다 해당 분야 전문가가 선별한 독창적이고 정확하며 유용한 착안의 글들이 실려 있다. 음향 합성이나 인간-게임 상호작용 등 플레이어의 게임 체험에 직접 기여하는 주제를 다룬 글이 있는가 하면, 내부적인 자원 관리를 원활하게 진행하기 위해 객체 시스템을 관계형 데이터베이스에 통합하는 방법을 제시하는 글도 있다. 다른 업계의 경험을 받아들인 글들도 있다. 예를 들어 한 글에서는 아직 게임 업계에 널리 퍼지지는 않았지만 네트워크 관리자들은 흔히 사용하는 도구들을 다중 플레이어 게임 개발에 적용하는 방법을 설명한다.

유용하고도 실용적인 착안들과 기법들로 가득한 이 책으로 열심히 공부해서 더욱 독창적이고 재미있고 만족스러운 게임을 만들어 보시길!

섹션별 주요 내용
o프로그래밍 일반―웹캠 기반 비디오 게임을 위한 광류 응용, 다중 플랫폼 스레드 관리 엔진의 설계와 구현, 함수 지연 호출 시스템, 고급 디버깅 기법
o수학 및 물리―빠른 범용 반직선 질의, 투영 공간을 이용한 기하 계산의 정밀도 향상, 복잡한 충돌을 간단하게 처리하기, 삼각 스플라인
o인공지능―행동방식 복제를 이용해서 흥미로운 에이전트 만들기, AI 알고리즘 코드의 복잡도 다스리기, 목표지향적 계획 병합, A*를 뛰어넘은 IDA*와 주변부 검색
o오디오―GPU 프로그램을 이용한 음향 신호 처리, 차세대 음향 엔진 작성, 실용적인 실시간 음향 효과, 문맥
...