Top

실전 게임 기초 AI 프로그래밍 [예제로 쉽게 배우는 게임 인공지능 프로그래밍]

  • 원서명Practical Game AI Programming: Create game AI and implement cutting edge AI algorithms from scratch (ISBN 9781787122819)
  • 지은이미카엘 다그라사(Micael DaGraça)
  • 옮긴이금기진
  • ISBN : 9791161751672
  • 30,000원
  • 2018년 08월 31일 펴냄
  • 페이퍼백 | 368쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 게임 개발 프로그래밍

책 소개

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.

본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
요약

예제를 통해 다양한 게임 장르의 기본 AI를 알아보고, AI 캐릭터가 마주할 수 있는 각 상황의 가능성과 확률을 이용해서 어떻게 제작해야 하는지 알아본다. 또한 AI 캐릭터가 배경과 어떻게 상호작용해야 하는지도 배우며, 기초적인 애니메이션 구현법도 살펴본다. 세타 알고리즘(Theta algorithms) 등을 이용해 현실적이면서도 최적의 경로를 찾는 방법도 배우며, 한 화면에 수많은 캐릭터가 있을 때 AI가 어떻게 행동해야 하는지도 알아본다.

이 책에서 다루는 내용

█ 장르마다 적절한 AI를 생성하는 기본 방법
█ AI의 행동에 영향을 끼치는 요소를 예측하고 대응하는 방법
█ 스마트 존과 이벤트 발생을 사용해서 AI 캐릭터와 배경 사이의 상호작용을 계획하는 방법
█ 두 애니메이션을 연결할 때 끊어서 재생하지 않고 자연스럽게 연결해서 재생하는 방법
█ 세타 알고리즘을 사용해 짧고 현실적인 경로를 찾는 방법
█ 목적지에 도착하거나 난관에 봉착했을 때 AI를 미리 예측하는 방법

이 책의 대상 독자

한 번쯤 C#으로 게임을 만들어 본 개발자 중 더 나아가 자동으로 동작하는 AI, 군중, 적군, 아군을 더 구체적으로 구현하고 싶은 독자를 위한 책이다.

이 책의 구성

1장, ‘다양한 문제에 적절하게 대응하기’에서는 비디오 게임 산업과 게임 AI를 간단히 소개한다.
2장, ‘가능기반과 확률기반 표’에서는 AI 캐릭터를 위해 각 표를 생성하고 사용하는 방법을 알아본다.
3장, ‘프로덕션 시스템’에서는 AI 캐릭터가 목표를 달성하기 위해 필요한 규칙을 생성하는 방법을 공부한다.
4장, ‘배경과 AI’에서는 게임 속 캐릭터와 주위 배경과의 상호작용을 구현하는 방법을 소개한다.
5장, ‘애니메이션 동작’에서는 게임 속 애니메이션을 효과적으로 적용하는 방법을 소개한다.
6장, ‘내비게이션 방법과 길찾기’에서는 AI가 실시간으로 최적의 경로를 찾는 방법을 연구한다.
7장, ‘고급 길찾기’에서는 세타 알고리즘을 이용해 최단 경로와 현실적인 경로를 찾는 방법을 알아본다.
8장, ‘군중 상호작용’에서는 한 장면에 수많은 캐릭터가 있을 때 AI가 어떻게 행동해야 하는지를 공부한다.
9장, ‘AI 계획과 충돌 방지’에서는 원하는 장소에 도착하거나 문제를 맞이할 것을 미리 예측하고, 그런 상황을 다루는 방법을 알아본다.
10장, ‘감지 능력’에서는 스텔스 장르의 핵심 기술인 인지 시스템을 자세히 알아본다.

상세 이미지

저자/역자 소개

지은이의 말

게임을 개발한다는 것은 상상만으로 완전히 새로운 세계를 창조한다는 점에서 굉장히 열정적인 과정이다. 마치 신과 같은 존재가 돼 우리가 만든 세계에서 AI 캐릭터가 살도록 하니까 말이다. 캐릭터가 행동하는 방식부터 그들이 이루는 사회에 이르기까지 온전히 우리의 상상에 달려있으며, 아주 친절하고 호의적인 캐릭터부터 현존할 수 있는 최악의 캐릭터까지 마음대로 만들 수 있다. 가능성은 끝이 없다. 이 무한한 가능성이 항상 새로운 게임이 나올 수 있는 원천이다. 장르를 불문하고 게임 세계와 그 속의 캐릭터는 우리 창조 과정의 핵심이다. 이것들이 우리의 게임을 우리만의 독특한 것으로 만든다. 이 책은 여러분이 온전히 여러분만의 상상을 바탕으로 게임을 만들고, 그 무엇에도 구속되지 말아야 한다는 생각으로 쓴 책이다. 이 책은 인공지능 캐릭터를 만드는 데 필요한 필수 기반을 다질 수 있는 내용을 담고 있다. 이 책을 다 읽고 책에서 다룬 내용을 이용하면 여러분이 상상한 AI 캐릭터를 완벽하게 구현할 수 있다.

지은이 소개

미카엘 다그라사(Micael DaGraça)

포르투갈의 포르투에 살고 있는 게임 디자이너이자 AR 개발자다. 많은 게임 스튜디오에서 다양한 인디 게임과 앱을 만들어 왔다.
자라는 동안 많은 게임을 접했고 항상 게임에 대한 열정을 품고 있었다. 결국에는 게임 개발을 직접 배우기로 결심했다. 코딩이나 3D 애니메이션의 배경 지식 없이 무작정 시작한 개발은 간단한 게임을 시작으로 계속해서 경험을 쌓아 더 나은 게임으로 발전했다. 게임이 작동하고 게임플레이가 성숙하면서 제대로 된 게임을 출시하기로 결심하고, 오랜 친구와 함께 일하기 시작했다. 게임이 계획한 대로 잘 작동하도록 기술을 담당했고, 친구는 아트를 담당했다. 드디어 게임을 출시하고 다른 인디 게임 개발자들로부터 긍정적인 피드백을 받기에 이른다. 결국 게임을 통해 매출을 창출하면서, 원하던 게임 디자이너의 꿈을 현실로 이룰 수 있었다.
최근에는 다른 스튜디오의 개발자들이 갖고 있는 게임 아이디어의 구현을 도우며, 한편으로는 건강과 웰빙에 관련된 게임과 다양한 앱을 개발하고 있다. 이제는 개인 프로젝트에 투자할 시간이 별로 없지만, 틈나는 대로 다른 동료들과 함께 다양한 게임을 조금씩 만들고 있다.

옮긴이의 말

알파고와 이세돌의 바둑 대결이 많은 사람의 주목을 받았었다. 그러나 알파고가 어떤 방법으로 바둑에 가장 뛰어난 사람들을 이겼는지 아는 사람은 많지 않다. 이처럼 인공지능은 우리에게 친숙한 단어이면서 동시에 구체적인 의미를 가늠하기 어려운 단어이기도 하다. 이 책이 알파고 또는 그와 비슷한 인공지능의 고급 정보를 담고 있는 것은 아니다. 이 책은 컴퓨터 프로그래밍의 기초 지식은 있지만, 아직 인공지능 영역을 접하지 못한 개발자가 입문하기에 좋은 책이다. 'GTA(Grand Theft Auto)' 시리즈, '어쌔신 크리드', 심즈', '피파', '타워디펜스' 등 거의 모든 게임 장르의 대표 게임들을 예로 들어서 게이머라면 누구나 한 번쯤 접해봤을 상황을 소개하고, 그것을 어떻게 구현하는지 알기 쉽게 설명했다. 특정 장르에 한정하지 않고 다양하게 조금씩 섭렵할 수 있는 뷔페 같은 책이라고 할 수 있다. 책을 다 읽고 얻은 지식은 평소 여러분이 생각했던 게임 아이디어를 구체적으로 구현하는 데 좋은 조미료로 사용할 수 있을 것이다.

옮긴이 소개

금기진

뉴욕 주립대학교 스토니브룩에서 컴퓨터 공학을 전공한 뒤, 캘리포니아의 Visual Concepts에서 약 10년간 콘솔용 스포츠 게임인 'NBA', 'MLB', 'NHL 2K' 시리즈 개발에 참여했다. 현재는 'NBA 2K19' 개발에 참여하고 있다. 컴퓨터 프로그래머처럼 특수 기술을 다루는 사람일수록 컴퓨터와 관련 없는 다양한 경험이 삶에 꼭 필요하다고 믿고 있으며, 합창, 요가, 사진 등으로 그러한 경험을 채워 나가고 있다.

목차

목차

  • 1장. 다양한 문제에 적절하게 대응하기
    • 게임 AI의 역사와 해결책
    • 비디오 게임 속의 적 AI
    • 간단한, 똑똑한, 그리고 인간 같은 AI
    • 시각적, 청각적 인식
    • 요약
  • 2장. 가능기반 표와 확률기반 표
    • 게임 상태
    • 가능기반 표
      • 가능기반 표 사용법
      • 가능기반 표 준비하기(FPS)
      • 가능기반 표 생성법(FPS)
    • 상태 정의하기
      • 방어적 상태
      • 적극적 상태
      • 가능기반 표 결론
    • 확률기반 표
      • 확률기반 표 사용법
      • 다음 단계
    • 요약
  • 3장. 프로덕션 시스템
    • 자동 유한 상태 기계
      • 확률 계산
    • 유틸리티 기반 함수
    • 다이나믹 게임 AI 밸런스
    • 요약
  • 4장. 배경과 AI
    • 시각적 상호작용
    • 기본 배경 상호작용
      • 배경 오브젝트 움직이기
      • 방해하는 배경 오브젝트
      • 배경을 여러 지역으로 세분화하기
    • 고급 배경 상호작용
      • 불안정한 지형에 적응하기
      • 레이캐스트를 이용한 의사 결정
    • 요약
  • 5장. 애니메이션 동작
    • 2D 애니메이션 대 3D 애니메이션
      • 2D 애니메이션 - 스프라이트
      • 3D 애니메이션 - 뼈 구조체
    • 애니메이션 상태 기계
    • 부드러운 전환
    • 요약
  • 6장. 내비게이션 방법과 길찾기
    • 내비게이션 동작
      • 새 방향 선택하기
      • 벽을 피해서 걷기
    • 지점과 지점 사이의 이동
      • 타워 디펜스 장르
      • 레이싱 장르
      • MOBA 장르
    • 요약
  • 7장. 고급 길찾기
    • 기본 길찾기와 고급 길찾기의 차이점
    • A* 탐색 알고리즘
      • 작동 원리
      • A* 알고리즘의 단점
    • 요약
  • 8장. 군중 상호작용
    • 군중 상호작용이란
    • 비디오 게임 속 군중 상호작용
      • 어쌔신 크리드
      • Grand Theft Auto(GTA)
      • 심즈
      • 피파, 프로 에볼루션 사커
    • 군중 상호작용 계획하기
      • 그룹 전투
      • 커뮤니케이션(관심 영역)
      • 커뮤니케이션(다른 AI 캐릭터와 소통하기)
      • 팀 스포츠
    • 군중 충돌 방지
    • 요약
  • 9장. AI 계획과 충돌 방지
    • 탐색
      • 공격적 탐색
      • 적의 행동 예측하기
      • 충돌 회피
    • 요약
  • 10장. 감지 능력
    • 스텔스 장르
    • 전략이란
    • 감지 능력이란
    • 시각 감지 능력 구현하기
      • 기본 시각 감지
      • 고급 시각 감지
    • 요약

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

[p.37, 코드 아래에서 7번째 줄]

if( (Health >= 20 && triggerL == true) || (Health >= 20 && triggerM
== true ) )
->
if(Health<= 100 && triggerR == true || Health<= 20)