서브메뉴

본문

인공지능 게임 프로그래밍 실전 가이드
인공지능 게임 프로그래밍 실전 가이드
저자 : Alex J. Champandard
출판사 : 에이콘출판
출판년 : 2004
정가 : 38000, ISBN : 8989975522

책소개


최근에는 게임 개발에 대한 관심이 증가하면서 관련 서적들도 많이 출간되고 있다. 특히 그래픽 분야뿐 아니라 인공지능, 물리 시뮬레이션 등 주제의 폭이 넓어지고 있다는 사실은 주목할 만하다.

인공지능은 게임 캐릭터(NPC)의 행동을 보다 영리하고 흥미롭게 만들어주는 역할을 한다. 그런데 지금까지 주로 게임에 사용됐던 인공지능은 실제 인공지능 분야에서 개발된 기술과는 별 상관이 없었고, 대개 스크립트와 AI 길찾기 등의 한정된 기술에만 의존해왔다. 물론 이들 기술만 가지고도 충분히 영리해 보이는 캐릭터를 만들 수 있다. 하지만 기본적으로 스크립트는 캐릭터의 행동을 고정된 반응으로 제한하며, 게임 디자이너의 많은 시행착오와 작업 시간을 필요로 한다.

이 책은 인공 신경망, 의사결정 트리, 유한상태 기계, 강화 학습 등 인공지능 분야의 여러 기술을 활용하여 캐릭터의 사실성과 지적 능력을 한 단계 높이는 동시에, 혁신적인 게임 디자인 및 프로그래밍 방법론을 제안한다. 특히 캐릭터 인공지능의 실험을 위해 상용게임인 Quake 2 환경을 사용하고, 오픈 소스 인공지능 엔진인 FEAR를 기반으로 한다는 점은 여타의 게임 인공지능 서적과 차별화되는 매력이다. 또한 기본적인 이동 기술로 시작해서 높은 수준의 전략 학습 능력을 부여하기까지의 과정이 체계적이고 일관성 있게 전개된다.

- 전통적인 AI 기법 뿐만 아니라 최신 AI 기법도 자세히 알려준다.
- 새로운 AI 기법을 적용하여 사실적이고 영리한 행동양식을 갖춘 캐릭터를 만드는 방법. 오픈 소스 AI 엔진인 FEAR에 통합되는 소스코드와 데모를 제공한다.
- 데쓰매치 캐릭터의 능력을 한 단계씩 발전시켜나가는 과정. 전체 AI 아키텍처 안에 새로운 AI 컴포넌트를 하나씩 만들어 통합한다.
- 강력한 AI 개발을 지원하는 최신 개발 방법론. 다음 세대의 게임 캐릭터를 만들기 위해서라면 필요조건이라 할 수 있는 개발 방식이다.

목차


<목차>
서문

1장 컴퓨터 게임의 AI
AI의 개요- 기계 지능
- 지능의 정의
- 과학의 한 분야로서의 AI
컴퓨터 게임과 AI
게임 AI의 현재 상태 - 기술적 혁신
- 디자인의 혁신
게임 디자이너 vs. AI - 걸림돌
- 두 종류의 게임
- 어떤 충돌이 존재하는가?
게임 프로그래밍에서의 AI


2장 지능의 설계
개발자의 관점 - 전통적 접근방식
- 통합과 설계
- 가이드라인
- 논의
현대적 접근방식
게임에서의 애니멋
독립개체
학습
필요한 배경지식
프로그래밍
컴퓨터 과학
수학
소프트웨어 공학
게임 엔진 아키텍처
AI 개발 절차
개요
반복
요약


3장 반응형 접근방식
정의
정의에 따른 반응형 기법
실전에서의 반응형 기법
계획형 행동 vs. 행동형 행동
목표 지향 계획
게임에서의 계획형 행동
반응형 행동으로의 대체
게임 개발에서의 반응형 기법
일반적인 게임 AI에서의 장점
애니멋을 사용할 때의 장점
아키텍처
컴포넌트
구조
분해
중재
예제
요약


4장 FEAR: 실험을 위한 플랫폼
기술적인 개요
명세
프레임웍
개발 단계
세계 인터페이스
모듈
인터페이스
데이터 로딩
의존성
유연한 아키텍처
애니멋의 제작
아키텍처의 기술
소스코드 생성
게임을 위한 준비 과정
요약


5장 게임 세계에서의 이동
환경과 공간
부분과 그것의 합
공간의 정의
게임 세계의 유형
차원
이산적인 공간 vs. 연속적인 공간
이동의 처리
가정
테스트 환경
요약


6장 이동 능력
이동의 예술
게임 봇의 이동 방식
애니멋의 자율적인 이동
이동의 평가 기준
케이스 스터디
요약


7장 분석과 이해
AI 시스템의 일반적인 구성
분석 단계
가정
제약
지침
이해 단계
평가 기준과 기대 결과
문제의 정의
일반적인 조언
요약


8장 이동의 형식적 기술
이동에 대한 기존의 접근 방식
가능한 선택 사항들
컨텍스트
행위
감지
설계 원칙
명세
인터페이스
골격 코드
요약


9장 명세와 지식표현
형식적 명세의 개요
함수의 관점에서 바라본 AI
명세의 목적
지식표현
지식표현의 여러 형태
심볼
객체-속성-값
프레임
의미 네트워크
자기 검증의 필요성
명세 절차
스케치
형식화
점검
논의
요약


10장 장애물 회피를 위한 속도변환 행동양식
인공생명 개요
가정
쫒아가기와 달아나기
그 밖의 행동들
알고리즘
첫번째 알고리즘
개선된 알고리즘
개선 방식
평가
장점
단점
요약


11장 규칙 기반 시스템
배경지식
RBS의 구성요소
작업 메모리
기반규칙
인터프리터
지식 획득과 표현
지식 획득
지식 표현
논의
장점
단점
게임 개발자의 접근방식
RBS에 적합한 문제
요약


12장 규칙 기반 시스템을 이용한 이동의 구현
케이스 스터디
구체화
RBS를 사용할 것인가?
정방향 연쇄 vs. 역방향 연쇄
규칙을 단순화하는 몇 가지 팁
RBS 모듈 설계
초기화
인터페이스
구현
자료구조
인터프리터
애플리케이션
작업 메모리
기반규칙
센서와 이펙터
평가
요약


13장 전투 설정
무기
근접 무기
원거리 무기
무기의 요구조건
환경 조건
훈련 공간
요약


14장 플레이어의 슈팅 기술
전투의 기술
접근전
원거리 전투
게임 기술
쪼개놓자!
전투의 흐름
슈팅의 기준
케이스 스터디
요약


15장 슈팅의 형식적인 분석
배경지식
가능한 옵션
컨텍스트
감지 능력
액션
체계화
결정에 관련된 요인
가정
명세
인터페이스
골격 코드
요약


16장 물리를 이용한 예측
기초
물리적 상태
수치 적분
교차점 계산
행동 예측
시뮬레이션 알고리즘
실험
평가
요약


17장 퍼셉트론
퍼셉트론의 역사
Rosenblatt의 퍼셉트론
Widrow와 Hoff의 아달린
생물학적 영감
모델 개관
시뮬레이션
전체 합
활성화
대략적인 알고리즘
최적화에 대한 소개
단순무식한 최적화
수치적 최적화
스티피스트 디슨트
지역 최소값
운동량의 추가
시뮬레이티드 어닐링
퍼셉트론 가중치의 최적화
델타 규칙
수학적 증명
학습 절차
데이터 집합
학습 알고리즘
개략적인 해설
시각적 해석
요약


18장 조준 오차 다루기
운동량과 마찰
명시적 모델
선형 근사
방법
평가
오차 다루기
역함수
구현
평가
요약


19장 다중 계층 퍼셉트론
퍼셉트론의 역사
소개
구조
활성화 함수
활성화 함수의 종류
시뮬레이션
생물학적 신경망
뉴런

요약
학습 알고리즘
역방향 전달
백프롭 알고리즘
퀵프롭 알고리즘
알프롭 알고리즘
실제적 쟁점
일반화
테스트와 검증
점진적 방식 vs. 일괄적 방식
점진적 학습
논의
장점
단점
요약


20장 목표 지점의 선택
케이스 스터디
이론적 설명
모듈 설계
초기화
인터페이스
구현
자료구조
시뮬레이션과 학습
어플리케이션
알고리즘
로켓 추적
노이즈 처리
입.출력
학습 절차
평가
요약


21장 문제의 이해
블랙박스로서의 문제 이해
직관적인 이해
소프트웨어의 명세
이론적 분석
기반 지식
사용량 분석
변수와 공분산
효과적인 도메인
기본적 이해
문제의 특성
문제의 속성
문제 다듬기
단순화
나누어 정복하기
방법론
실험에 의한 특성 추출
데이터 분석
요약


22장 전투 조건
무기의 속성
무기의 활용성
적과의 거리
전투의 진행 상황
플레이어와 적의 상태
환경 배치
무기 경쟁
플레이어의 기술
학습 공간
요약


23장 무기의 선택
무기 선택 의사결정
무기 효용성을 예측하는 이론
선택 방법
적합도 계산의 두 가지 방식
연역추론
경험
절충형 접근방식
무기 선택의 평가기준
명확성
정당성
케이스 스터디
요약


24장 무기 선택 인터페이스
가능한 옵션들
컨텍스트
감지
액션
체계화
결정 기준
가정
명세
인터페이스
골격 코드
요약


25장 스크립트를 이용한 전략 결정
스크립트 기초
스크립트 언어
스크립트 환경
컴포넌트 통합
스크립트 모듈
스크립트를 이용한 무기 선택의 구현
개요
무기 속성
투표 시스템
환경 특성을 고려한 투표 결과
시간적 제약
평가
요약


26장 분류 트리와 회귀 트리
의사결정 트리의 구조
데이터 샘플
의사결정 트리
조건 노드
리프 노드
분류와 회귀
의사결정 트리의 학습
재귀적 분할 기법 개요
데이터 집합의 분할
학습 절차
데이터 집합의 관리
가지치기
배깅과 부스팅
논의
요약


27장 무기 적합도의 학습
네 가지 접근방식
적절한 무기의 학습
무기 적합도의 학습
무기 속성의 학습
투표 시스템의 학습
체계화
방법론
논의
모듈 설계
초기화
인터페이스
구현
자료구조
예측
어플리케이션
환경 특성의 해석
전투 에피소드의 관찰
적합도 계산
사실성을 높이기 위한 의도적 오류
평가
요약


28장 솔루션의 이해
솔루션의 복잡도
정보 이론과 AI
최소 복잡도
이론과 실제
탐색 공간
내부 표현
예제
탐색 공간의 특성
솔루션을 찾는 여러 가지 접근방식
전문가의 솔루션
전문가의 도움
샅샅이 뒤지는 방식
무작위 탐색
절충형 방식
요약


29장 분석과 명세
게임 세계의 객체
아이템
이동 장치
테스트 환경
행동양식의 개선
사람의 방식
평가 기준
케이스 스터디
명세
동작
인벤토리
시각
물리적 상태
요약


30장 퍼지 논리
집합 논리의 확장
원리
퍼지 집합
집합 이론
퍼지 변경자
퍼지 표현방식
퍼지 변수와 값
언어적 변수
퍼지화
역퍼지화
퍼지 논리
연산자
언어적 표현
퍼지 논리에 대한 반대
퍼지 제어와 의사결정
작업 메모리
지식 기반
퍼지 인터프리터
알고리즘
논의
요약


31장 퍼지 시스템을 이용한 이동 행동의 개선
퍼지 변수와 포함 함수
액션
감지
퍼지 규칙
문 사용
사다리 사용
플랫폼 사용
모듈 설계
초기화
인터페이스
평가
요약


32장 유전 알고리즘
생물학적 진화
진화 이론
생물학적 재생산
영감
유전학과 표현 방식
게놈과 유전형
피놈과 표현형
변환
유전 알고리즘
개체 집단
초기화
평가
선택
교배
변이
교체
유전 연산자와 진화 정책
초기화
교배
변이
선택
교체
고급 주제
이른 수렴
느린 수렴
파라미터, 파라미터, 파라미터
적용 분야에 대한 지식
논의
요약


33장 학습하는 분류자 시스템
분류자의 표현 방식
선행절과 결과절
추가 속성
분류자 시스템의 개요
아키텍처
센서 입력과 일치하는 분류자의 선택
새로운 분류자의 생성
분류자의 제거
예측
액션 선택
강화
논의
요약


34장 유전 알고리즘을 이용한 적응형 방어 전략
액션 시퀀스의 표현 방식
액션과 파라미터
액션 시퀀스
유전 연산자
무작위 생성
교배
변이
유전 알고리즘 개요
유전 알고리즘 모듈 설계
유전 알고리즘의 역할
인터페이스
적합도 계산
로켓 점프
폭파 회피
어플리케이션
평가
요약


35장 학습하는 AI의 설계
학습의 목적
왜 학습하는가?
무엇을 학습하는가?
학습의 접근방식
온라인 학습과 오프라인 학습
두 가지 기본적인 기법
다양한 학습 컴포넌트
감독 학습
강화 학습
진화 학습
무감독 학습
비교
행동 학습의 방법론
훈련
모방
시행착오
구체화
비교
요약


36장 감정을 가진 캐릭터
인간 진화 과정에서 나타난 감정
감정의 생물학적 모델
감정에서 인공지능까지
사람과 기계의 상호작용
게임에서의 감정
요약


37장 감각, 감정, 느낌
감각
지각에 의한 감각
인식에 의한 감각
감정
기분
느낌
감정 전달을 위한 인터페이스
설계 원칙
체계화
명세
게임에서 감정의 전달
기존 센서와 액션의 활용
센서
새로운 인터페이스
감정 표현의 예
요약


38장 유한상태 기계
형식적 정의
유한상태 오토마타
밀리 머신
무어 머신
표현 방식과 시뮬레이션
전이 배열
유향 그래프
문법
제어 로직
절차적 방식
절차적 유한상태 기계의 잠재적 문제점
절차적 제어의 해법
최적화
논의
장점
단점
요약


39장 유한상태 기계를 이용한 감정 모델링
인공 감정의 설계
1차적 감정
자극과 감각
행동 반응
유한상태 모듈의 개발
데이터 교환
유한상태 오토마타
유한상태 기계
인터페이스
구현
유한상태 기계로 감정 만들기
감정 처리를 위한 유한상태 기계
감각 처리를 위한 유한상태 오토마타
통합
평가
요약


40장 비결정적 상태 기계
개요
퍼지 상태 기계
정의
표현
시뮬레이션
논의
비결정적 상태 기계
정의
표현
알고리즘
논의
확률적 상태 기계
정의
알고리즘
논의
요약


41장 계층적 상태 기계
개요
계층구조
중첩된 상태
중첩된 유한상태 기계
혼성 계산 모델
계층 간 상호작용
마스터와 슬레이브
스택 기반
레벨 오브 디테일
상호작용 구조의 일반화
논의
장점
단점
요약


42장 감정 시스템
계층적 아키텍처
느낌의 모델링
관계에 대한 기억
느낌의 인식
개선된 감각
다양화된 자극
감각의 조합
퍼지 오토마타의 시뮬레이션
감정의 축적
매너리즘을 이용한 감정 표현
기분의 계층구조
평가
요약


43장 창발성
창발성의 정의
창발성에 관한 논의
창발성의 종류
창발적 행동양식
보다 영리한 환경, 보다 단순한 행동양식
행동 유도
인지와 전파
창발적 기능
요약


44장 전략적 의사결정
게임 상황
영향을 주는 요인들
의사결정에서 고려하는 특성들
개인적 목표
전략적 행동
애니멋과 의사결정
훈련 공간
요약


45장 전술적 지능의 구현
전략적 행동의 제작
기존 기술의 재활용
기본 행동
포섭 구조
확장된 유한상태 기계
계층적 접근방식
구현과 최적화
포섭 구조의 적용
평가
요약


46장 강화학습
강화 이론의 정의
게임 내 상황
강화 모델
행동 정책
최적에 대한 정의
마르코프 의사결정 과정
기본 요소
값 함수
강화 문제의 종류
탐색 vs. 이용
학습 도구
강화 학습 알고리즘
동적 프로그래밍 기법
몬테 카를로 기법
시간 차이 학습
고급 주제
근사자
계층
논의
장점
단점
요약


47장 반응형 전략의 학습
제어에 따른 분해
적응형 수집 행동
액션
상태
보상 신호
학습 정책
이동 모델링
액션
상태
보상 신호
학습 정책
슈팅 스타일의 학습
액션
보상 신호
학습 정책
다른 능력들
평가
요약


48장 행동의 적응
무엇이 문제인가?
학습이 이뤄지지 않는다
제어가 불가능하다
최적의 결과가 아니다
비사실적이다
견고한 소프트웨어 공학
신뢰성 있는 프로그래밍
테스트와 디버깅
AI 공학
견고한 설계
모델링
적합도와 보상
아키텍처
방법론
요약


49장 게임 AI 공학의 원칙
아키텍처
AI 모듈
능력
행동양식
중재
구현
네이티브 코드
스크립트
데이터 구동
기술과 그 활용도
문제 해결
순차적 제어
패턴 인식
시퀀스 인식
학습과 피드백 메커니즘
요약


50장 다음 단계를 향하여
오직 연습뿐
열려있는 도전
게임 AI 전문가 포럼
세계 모델
계획형 기법

참고자료
찾아보기
CD 설치 가이드
새로운 방식의 게임 AI