서브메뉴

본문

AI Game Programming Wisdom
AI Game Programming Wisdom
저자 : 스티브 레이븐
출판사 : 정보문화사
출판년 : 2005
정가 : 32000, ISBN : 8956742510

책소개


최첨단 게임 AI를 다루는 시리즈의 두 번째 책으로 새로운 요령과 기법, 알고리즘, 아키텍처, 원리들로 가득 차 있다. 모든 글들을 업계 전문가들이 새로 쓴 이 책은 첫 번째 책과 마찬가지로, 상용 게임을 위한 고급 게임 AI를 구축하는 데 대한 실질적인 조언을 제공하고, 유망한 최첨단의 기법들을 소개하는 데에도 충분한 지면을 할애했다.

또한 향후 10년의 게임 AI에 영향을 미치고 그 방향을 주도할 발전들과 발견들, 성과들을 총망라한다. 다양한 국가, 다양한 게임 AI 분야의 전문가들이 필진으로 참여했다. AI의 주요 분야들을 포괄하는 12개의 섹션들로 구성되어 있으며, 음성인식과 대화에 대한 새로운 섹션이 추가되었다. 또한 다양한 게임 장르들을 다루며, 찾아보기에는 첫 번째 책에 있는 항목들에 대한 색인도 포함되어 있어서 첫 번째 책을 참고하면서 공부하기에 편하다.

[부록CD]
- 본문을 보충하는 소스 코드와 데모 수록
- 추가적인 튜토리얼들과 웹 자료, 보충 기사, 원색화보 이미지들

목차


Section 1 일반적인 지혜

1.1 널리 쓰이는 게임 AI 기법들
A* 길찾기
명령 계통구조
추측항법
창발적 행동
무리짓기
대형
영향력 분포도
세부수준 AI
관리자 과제 부여
장애물 회피
스크립팅
상태기계
스택 기반 상태기계
포섭 아키텍처
지형 분석
트리거 시스템
감사의 말
참고자료

1.2 유망한 게임 AI 기법들
베이즈망
칠판 아키텍처
의사결정 트리 학습
걸러진 무작위성
퍼지 논리
유전 알고리즘
N 그램 통계적 예측
신경망
퍼셉트론
계획수립
플레이어 모형화
생성 시스템
강화 학습
명성 시스템
똑똑한 지형
음성인식과 텍스트 기반 음성합성
약점 수정 학습
감사의 말
참고자료

1.3 인공지능의 새로운 패러다임들
자연 지능
구식 인공지능
새로운 인공지능
신경망과 유전 알고리즘
기준계 문제
적응성
환경 체현
형태기능적
피동 역학
기호 토대 문제(서얼의 중국어 방)
감각-근육 협동
생태적 균형
자기조직화
결론
참고자료

1.4 인공저능: 고의적인 실수의 예술
몇 가지 요령들
플레이 테스팅
몇 가지 사례
결론
참고자료

1.5 아케이드 AI라고 바보 같을 필요는 없다
기법 1: 더 똑똑하게 보이게 한다
기법 2: 더 똑똑하게 행동하게 한다
기법 3: 실제로 더 똑똑하게 만든다
결론
참고자료

1.6 난수의 통계학
확률론
이산 대 연속
난수 발생
통계적 방법들
rand()의 품질
특정 값이 더 자주 나오게: 비균일 난수
결론
참고자료

1.7 AI 의사결정과 게임 로직을 위한 난수 거르기
동전 던지기: 난수의 문제점
무작위성의 겉보기
주로 쓰이는 무작위성 형태들
체감 무작위성 만들기
소스 코드 사용에 대해
걸러진 난수 클래스의 용례
무작위성의 품질
결론
참고자료


Section 2 길찾기와 이동

2.1 검색공간 표현
검색공간의 고려사항들
정규 격자
모퉁이 그래프
웨이포인트 그래프
원 기반 웨이포인트 그래프
공간 채움 영역
네비게이션 메시
국소 길찾기와의 상호작용
계통적 표현들
결론
참고자료

2.2 미리 계산된 네비게이션 집합 계통구조를 이용한 값싼 길찾기
미리 계산된 길찾기의 기초: 전이표
계통적 접근
계통구조 만들기
계통적 길찾기 방법
네비게이션 집합 계통구조의 응용
메모리 최적화
결론
참고자료

2.3 경로 참조표 - 작은 것이 아름답다
경로 참조 행렬
색인 방식의 더 작은 경로 참조 행렬
영역 기반 경로 참조표
지형 분할
참조 알고리즘
지형 표현 구축
설계 - 영역 당 정보
설계 - 포탈 경로 정보
설계-성능
동적 지형을 위한 부분 갱신
결론
참고자료

2.4 네비게이션 시스템 개관
정의
추상화 수준
네비게이션 인터페이스
이동을 위한 AI 패러다임들
구현
시스템 구축
결론
참고자료

2.5 뛰기, 오르기, 그리고 전술적 추론: 네비게이션 시스템을 최대한 활용하기
예제 네비게이션 시스템
AI 아키텍처 고려사항들
고수준 지점 선택 및 길찾기
저수준 애니메이션과 방향 조정
네비게이션 지점
네비게이션 간선
결론
참고자료

2.6 플레이어를 그럴듯한 방식으로 추적하기
다양한 행동들
접근방식
응용
확장
결론
참고자료

2.7 움직이는 장애물과 위험물 피하기
문제
반발 벡터
반발력 크기
비켜서기
불가능한 반발
진동 방지
충돌 다루기
결론
감사의 글
참고자료

2.8 PID 제어기를 이용한 지능적인 방향 조종
PID 제어기란
PID 제어기 응용
PID 제어기의 또 다른 용도들
더 읽을거리
결론
감사의 글
참고자료

2.9 지능적 카메라 시스템 작성을 위한 AI 접근방식 한 가지
요구사항
카메라 시스템 아키텍처
조타 행동
시야를 가리지 않게
매끄러운 움직임
카메라 전환
사용자 입력
카메라 사건들
스크립팅
이후 작업
결론
참고자료


Section 3 집단 이동, 전술, 계획수립

3.1 자율적 캐릭터 행동을 인간 개념들로 제한하기
창발적 게임플레이
혼돈의 제어
스스로에 질문을 던지는 캐릭터
추가적인 요인들
참고자료

3.2 협력 행동을 위한 간단한 기법들
"흩어져!"
"비켜!"
"엎드려 쏴!"
"무슨 일이야?"
의도를 명확히
결론
참고자료

3.3 FPS의 팀 멤버 AI
적절한 위치 선정
적절한 이동
적절한 행동
플레이어 지원
플레이어가 가장 중요하다
구현
CD-ROM의 데모
결론
참고자료

3.4 목표 지향적인 행위 계획을 게임에 적용
용어 정의
GOAP의 이점들
구현 상의 고려사항들
결론
참고자료

3.5 동적인 세계 안에서의 계통적 계획수립
계획이 필요한 이유
전통적인 계획수립
계통적 계획수립
계획수립 에이전트의 협동
결론
참고자료

3.6 합성 과제를 이용한 목표 지향적 행동
목표 지향적 행동이란
합성 과제의 기초
합성 과제의 구현
합성 과제 구현 사례
결론
참고자료


Section 4 AI 애니메이션 제어

4.1 단순화된 애니메이션 선택
문제
입력과 출력
애니메이션 에이전트
행동
에이전트 행동 디버깅
이론과 실제
결론
참고자료

4.2 착탈식 애니메이션
프로그래머는 프로그래밍을
착탈식 애니메이션 시퀀스
능력들의 예
외부 매개변수
편집 도구
결론
참고자료

4.3 NPC를 위한 지능적인 이동 애니메이션
조타 행동
애니메이션 시스템
중간 계층
이동 시스템
이동 애니메이션 행동
애니메이션 제어기
주의점
이후 개선방안
결론
참고자료


Section 5 상태기계

5.1 게임 FSM 총정리
유한상태기계의 기초
FSM의 정의
FSM을 게임에 통합
기본 FSM의 확장
FSM의 디버깅
요약
결론
참고자료

5.2 스택 기반 유한상태기계
되짚기
상태 스택
결론
참고자료

5.3 자료 주도적 유한상태기계 구현
유한상태기계의 구조
조건 및 전이 클래스
FSM 상태 클래스(TFSMState)
유한상태기계 클래스(TFSM)
TFSM 클래스 사용법
개선
결론
참고자료

5.4 디자이너를 위한 유한상태기계 스크립팅 언어
설계 상의 고려사항들
문법
구현
행동 기억
예제 코드
결론
참고자료


Section 6 아키텍처

6.1 캐릭터 기반 게임을 위한 포섭 아키텍처
로봇공학의 뿌리
게임에서의 포섭 아키텍처
계층의 예
계층 당 다중 모듈
계획수립과 팀워크
결론
참고자료

6.2 인공생명을 위한 아키텍처
벌레는 똑똑하다
계산 신경행동학과 신경망
분산 제어 원칙
패턴 발생
곤충 AI의 구성요소
몇 가지 예
걷기 구현
인공 바퀴벌레
결론
참고자료

6.3 AI 자원 선택을 위한 유연한 꼬리표 시스템
AI 오디오 시스템
꼬리표 어휘 구축
AI 자원에 꼬리표 붙이기
꼬리표 질의 수행
꼬리표 질의의 구축
애니메이션 꼬리표
의사결정 트리의 구축
결론
감사의 글
참고자료

6.4 동기 부여 그래프: 복잡한 행동 시뮬레이션을 위한 새로운 아키텍처
의사결정 시스템 - 기호주의 AI 대 환경 안에 놓인 에이전트
동기 부여 그래프
응용: FPS 봇의 동기 부여 그래프
결론
참고자료

6.5 Conflict: Desert Storm에 쓰인 에이전트 처리 최소화 기법
멀리 있는 적을 멈춘다
적 교체
적 생성 지점
항상 플레이어에 가까이
진단
결론
참고자료


Section 7 FPS, RTS, 전략 AI

7.1 공간 데이터베이스를 이용한 실행 시점 공간 분석
공간 데이터베이스
개방성 계층
영역 점유도 계층
영역 수색 계층
사선 계층
조명 수준 계층
3차원 환경에 적용하는 문제
최적화
결론
참고자료

7.2 Master of Orion 3에 쓰인 정성 지형 분석
배경
구축 요소 - 자유 공간과 회랑
지형 분석
새 식민지 선택
결과
경계 인식을 넘어서 - 회랑과 자유 공간의 또 다른 용도
결론
참고자료

7.3 턴 방식 AI 고유의 난제들
불평등한 시간
자동화된 의사결정
예측가능성
치팅
경쟁적 균형
결론
참고자료

7.4 전략 게임을 위한 무작위 맵 생성
문제 정의
해결책 개요
테스트 응용 프로그램
스크립트
플레이어 배치
덩어리에 대해
높이 맵에 대해
자원 배치
결론
참고자료

7.5 전략 게임을 위한 수송 유닛 AI
문제 정의
해결책 개요
유한상태기계
탑승 유닛 FSM
수송 유닛 FSM
싣기
내리기
결론
참고자료

7.6 RTS 게임을 위한 벽 건설
문제 정의
알고리즘
기타 문제들
결론
참고자료

7.7 신경망과 영향력 분포도를 이용한 전략적 의사결정
영향력 분포도
가중합을 통한 적합도 계산
신경망을 통한 적합도 계산
계산 복잡도
영향력 분포도에 신경망을 사용하는 방법
결론
참고자료

7.8 다층구조 AI와 RTS 게임을 위한 지형 분석
몇 가지 기본적인 구현들
맵: 분석과 길찾기
종합
결론
참고자료

7.9 다층 AI 프레임웍의 설계
다층 프레임웍의 개요
상황적 프로젝트
다층 프레임웍의 클래스 구조
핵심 AI 프레임웍의 구현
MTAIF와 다중 스레딩
병법을 통한 전략 지능 확장
여러 장르에 적용
데모와 소스 코드
결론
참고자료


Section 8 레이싱과 스포츠 AI

8.1 곤충 지능을 이용한 경주용 자동차 제어
인공적인 의도성
기본적인 자료 추상: 경주로 공간
경주로 공간 변환의 구현
Downforce AI 시스템 개요
경로 따르기 계층
전술 주행 계층
세밀한 충돌 회피 계층
운전 보조 계층
기본 아키텍처의 확장
결론
참고자료

8.2 빠르고 효율적인 주행선 근사
레이싱 게임의 주행선
최소 곡률선
결론
참고자료

8.3 시뮬레이션 게임 생존 비법
시뮬레이션 AI
설계와 구현
비정상적 행동에 대한 디버깅 전략
AI를 플레이어가 볼 수 있게 한다
결론
참고자료

8.4 스포츠와 전략 게임의 추측항법
추측항법의 기원
추측항법 공식들
스포츠 게임의 추측항법
군사 시뮬레이션의 추측항법
온라인 게임의 추측항법
목표 추론
오차 보정
결론
참고자료

8.5 스포츠 AI 아키텍처 구축
에이전트 계획
팀 관리
에이전트 AI
에이전트 구동 시스템
결론
참고자료


Section 9 스크립팅

9.1 스크립트 실행 최적화
패턴을 이용한 스크립트 옵코드의 사후 최적화
비분기 불변 스크립트의 최적화
분기식 스크립트의 최적화
분기식 스크립트를 비분기 스크립트로 변환
수행 목록의 실행 시점 평가
결론
참고자료

9.2 고급 스크립트 디버깅
디버깅 정보의 교환
디버깅 지원을 위한 도구 파이프라인 개선
결론
참고자료

9.3 스크립트 언어에 오류 보고 기능을 추가
간단한 예제 언어 Simple
yyerror()를 이용한 오류 보고
구체적인 오류 식별
추가적인 정보
결론
참고자료

9.4 디자이너에게 권력을: Excel 기반 스프레드시트를 통한 퍼지 논리 행동 정의
퍼지 집합 이론
Visual Basic for Applications
결론
참고자료

9.5 지능적인 카메라 제어를 위한 모듈식 카메라 아키텍처
전통적인 카메라 아키텍처
모듈식 아키텍처
AI 기법들을 적용
구성요소들
개선 방안
재사용과 공유
결론
참고자료


Section 10 학습

10.1 적응성 게임을 위한 플레이어 모형
플레이어 모형의 정의
간단한 구현
모형 갱신
AI에서 모형을 사용
계통적 플레이어 모형
또 다른 모형 갱신 방법
플레이어 모형의 또 다른 용도들
결론
참고자료

10.2 지난 경험을 근거로 의사결정 트리 만들기
의사결정 트리의 기초
의사결정 트리 학습
Black & White에서 ID3의 역할
연속적인 값들에 대한 확장
예제 코드
결론
참고자료

10.3 패턴 인식 방법들의 이해
패턴 인식과 의사결정
기능적 접근
방법론적 접근
결론
참고자료

10.4 강화 학습을 이용한 AI 제어 문제 해결
게임의 강화 학습
예제 응용 프로그램: AI 자동차 제어
언제 강화 학습을 사용해야 하는가?
강화 학습의 기초
문제의 분할
강화 학습에 필요한 상태 정보 결정
상태-행동 쌍과 보상의 연관
적절한 시기에 보상과 징벌을 제공
학습을 제어하는 매개변수들
결론
참고자료

10.5 기계 학습의 한계 극복
분석
게임에서 학습이 쓰인 사례들
학습의 한계
지식을 제대로 표현하는 것이 중요하다
좀더 명확하게 보기
새 지식의 저장
새 지식의 사용
결론
참고자료


Section 11 유전 알고리즘과 신경망

11.1 게임을 위한 신경망 구축
신경망 개요
기반구조
인공 뉴런
훈련
신경망의 종류
설계 결정 사항들
게임에 신경망을 응용
결론
참고자료

11.2 게임을 위한 진화 알고리즘 구축
진화 알고리즘
가능성 있는 해들의 표현
시스템 초기화
적합 함수로 해들을 평가
자식 선택
다음 세대 만들기
교배의 구현
돌연변이의 구현
매개변수 조율
진화 알고리즘을 게임에 적용하는 방법
결론
참고자료

11.3 적응성 AI의 실제 사례
Advanced Protection
카오스의 인공지능
전략 검색공간
결과
결론
개선 방안
참고자료

11.4 더 나은 유전 알고리즘 만들기
정예주의
적합도 조정 기법들
토너먼트 선택
일반 교배 연산자
생태적 지위 기법들
실수 부호화 유전 알고리즘
Michalewicz 방법
단순화된 Michalewicz 방법
결론
GA 레이서 데모 프로그램과 소스
참고자료

11.5 고급 유전 프로그래밍: 생물학에서 얻은 새로운 교훈
유전 프로그래밍의 원칙들
생물학의 새로운 교훈들
문법적 진화
공진화: 빨간 여왕 가설
결론
참고자료

11.6 유전 알고리즘에서 성장의 중요성
진화의 위력
유전 알고리즘
매개변수화
성장
중립망
종 형성과 공진화
환경
결론
참고자료


Section 12 음성인식과 대화

12.1 SAPI: 음성인식 입문
게임의 음성 기술들
SapiTutorial
준비
SAPI 초기화
SAPI 이벤트 처리
SapiTutorial을 좀더 자세히
음성합성
SAPI 종료
결론
인터넷 자료
참고자료

12.2 SAPI: 기초의 확장
Go Fish!
문법에 대해 자세히
와일드카드와 받아쓰기
프로그램에서 SAPI 음성을 변경
기타 SAPI 메시지들
SAPI 사용자 인터페이스 표시
결론
참고자료

12.3 대화형 에이전트: 플레이와 NPC 사이의 자연스러운 대화 만들기
대화형 에이전트
대화형 에이전트 만들기
결론
참고자료

찾아보기