메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

한빛랩스 - 지식에 가능성을 머지하다 / 강의 콘텐츠 무료로 수강하시고 피드백을 남겨주세요. ▶︎

게임 AI를 위한 탐색 알고리즘 입문

트리 탐색과 메타 휴리스틱으로 완성하는 최적화, C++ 기반 예제 코드 제공

한빛미디어

번역서

판매중

  • 저자 : 아오키 에이타
  • 번역 : 서수환
  • 출간 : 2024-03-08
  • 페이지 : 344 쪽
  • ISBN : 9791169212038
  • 물류코드 :11203
  • 초급 초중급 중급 중고급 고급
4.8점 (19명)
좋아요 : 5

게임 AI에 빠질 수 없는 탐색 알고리즘의 이론부터 실전 게임 적용까지

* 실전 AI 게임 구현을 위한 C++ 기반 예제 코드 제공  

 

『게임 AI를 위한 탐색 알고리즘 입문』은 게임 AI 기술을 위한 핵심 요소 중 하나인 ‘탐색’에 대해 다룹니다. 탐색은 조합론적 게임 이론의 게임 트리 탐색과 조합 최적화를 사용한 메타 휴리스틱을 포함하여 지칭하는 용어입니다.


이 책에서는 C++ 개발 환경 준비와 플레이어의 행동을 예측하거나 조합 최적화를 이용하는 등 게임 유형에 따른 1인 게임에 맞춰 적합한 탐색 알고리즘을 설명합니다. 또한 장기나 바둑처럼 교대로 두는 2인 게임, 동시에 두는 2인 게임 등 다음 수를 전혀 예상할 수 없는 게임에 어울리는 탐색 알고리즘도 함께 살펴봅니다. 전반부에는 게임 종류에 어울리는 알고리즘을 소개했다면, 후반부에는 더 좋은 탐색을 위한 알고리즘과 실전에서 어떻게 활용할 수 있는지를 배워봅니다. ‘커넥트 포’ 놀이를 하는 AI를 직접 구현해 보고, 강화시키는 과정을 통해 실전 능력을 키워봅니다.

 

아오키 에이타 저자

아오키 에이타

현재 HEROZ 주식회사에서 게임 AI 개발을 전문으로 하고 있습니다. 프로그래밍 대회에서는 ‘thunder’라는 닉네임으로 활동하며, 매년 열리는 IEEE Conference on Games에서 개최되는 게임 AI 경쟁 대회에서 7회 우승한 경력이 있습니다. 그 중에서 특히 Fighting Game AI Competition에서 4연패를 달성했습니다. 또한, Qiita에는 이 책의 기반이 된 ‘세계 4연패 AI 엔지니어가 제로부터 알려주는 게임 트리 탐색 입문’이라는 글을 기고하는 등 탐색 알고리즘을 널리 알리고자 힘쓰고 있습니다.

서수환 역자

서수환

일본에서 IT 시스템을 설계, 개발하는 엔지니어입니다. 귀찮은 일이 생기면 대신해줄 무언가를 찾다가 없으면 만드는 것이 취미입니다. 또 뭐하며 놀까에 대해 늘 고민하고 있습니다.

 

 

1장 게임과 탐색의 세계 
1.1 게임 AI와 탐색 
__1.1.1 게임에서 말하는 AI와 탐색  
__1.1.2 게임 종류와 탐색 알고리즘 
1.2 게임에서 탐색의 매력 
__1.2.1 개인 게임 개발을 한다면 탐색! 
__1.2.2 대규모 상업 게임 개발에서도 탐색!
__1.2.3 다양한 프로그래밍 대회에서 이기기 위한 비장의 무기

 

2장 개발 환경 준비
2.1 WSL(Windows Subsystem for Linux) 설치 방법
__2.1.1 WSL 동작 확인  
__2.1.2 CPU 가상화 기능 확인  
__2.1.3 바이오스/UEFI에서 가상화 기능 활성화
__2.1.4 배포판 설정
__2.1.5 패키지 업데이트
__2.1.6 C++ 개발 환경 설치하기

 

3장 컨텍스트가 있는 1인 게임에서 사용하고 싶은 탐색 알고리즘 
3.1 예제 게임 소개: 숫자 모으기 미로 게임 
__3.1.1 숫자 모으기 미로 게임 
__3.1.2 숫자 모으기 미로 게임 구현하기
3.2 그리디 알고리즘(탐욕법) 
__3.2.1 그리디 알고리즘의 특징과 동작: 모든 탐색 알고리즘의 기초! 이것만 있으면 싸울 수 있다!
__3.2.2 그리디 알고리즘 구현하기 
3.3 빔 탐색
__3.3.1 빔 탐색의 특징과 동작: 탐색 공간을 파악해라! 경진 대회 상위권에서 자주 등장하는 탐색법!
__3.3.2 빔 탐색 구현하기
COLUMN 빔 탐색 구현 방식 변경
3.4 Chokudai 탐색 
__3.4.1 Chokudai 탐색의 특징과 동작: 다양성을 자동으로 확보! 간편하고 초보자에게 추천!
__3.4.2 Chokudai 탐색 구현하기

4장 컨텍스트가 없는 1인 게임에서 사용하고 싶은 탐색 알고리즘 
4.1 예제 게임 소개: 자동 숫자 모으기 미로 게임 
__4.1.1 숫자 모으기 미로 게임 
__4.1.2 자동 숫자 모으기 미로 구현하기 
4.2 언덕 오르기 탐색  
__4.2.1 언덕 오르기 탐색의 특징과 동작: 착실하게 좋은 답을 탐색한다! 간단하고 안정감 있는 알고리즘!
__4.2.2 언덕 오르기 탐색 구현하기 
4.3 담금질 기법
__4.3.1 담금질 기법의 특징과 동작: 국소 최적해에서 벗어나라! 마라톤 매치로 친숙한 알고리즘!
__4.3.2 담금질 기법 구현하기 
COLUMN 메타 휴리스틱


5장 교대로 두는 2인 게임에서 사용하고 싶은 탐색 알고리즘 
5.1 예제 게임 소개: 교대로 두는 숫자 모으기 미로 게임 
__5.1.1 교대로 두는 숫자 모으기 미로 게임 
__5.1.2 교대로 두는 숫자 모으기 미로 구현하기 
5.2 미니맥스 알고리즘  
__5.2.1 미니맥스 알고리즘의 특징과 동작: 신의 한 수! 
__5.2.2 미니맥스 알고리즘 구현하기
5.3 알파-베타 가지치기
__5.3.1 알파-베타 가지치기의 특징과 동작: 낭비는 용서할 수 없다! 미니맥스 알고리즘 진화!
COLUMN 미니맥스 알고리즘과 알파-베타 가지치기의 관계
__5.3.2 알파-베타 가지치기 구현하기

5.4 반복 심화 탐색
__5.4.1 반복 심화 탐색의 특징과 동작: 낭비할 시간이 없다! 최적의 트리 깊이를 찾자!
__5.4.2 반복 심화 탐색 구현하기
5.5 순수 몬테카를로 탐색 
__5.5.1 순수 몬테카를로 탐색의 특징과 동작: 게임판 평가는 필요없다! 승률이 좋은 수를 선택하자!
COLUMN 몬테카를로 탐색과 라스베가스 탐색
__5.5.2 순수 몬테카를로 탐색 구현하기
5.6 MCTS 몬테카를로 트리 탐색 
__5.6.1 MCTS의 특징과 동작: 적을 얕보지 말라! 강자 대결 시뮬레이션
__5.6.2 MCTS 구현하기
5.7 Thunder 탐색
__5.7.1 Thunder 탐색의 특징과 동작: 필자가 발명! 게임판 평가를 이용해서 유리한 노드를 탐색한다!
__5.7.2 Thunder 탐색 구현하기
COLUMN Thunder 탐색은 어떻게 만들어졌나?


6장 동시에 두는 2인 게임에서 사용하고 싶은 탐색 알고리즘
6.1 예제 게임 소개: 동시에 두는 숫자 모으기 미로 게임
__6.1.1 동시에 두는 숫자 모으기 미로 게임
__6.1.2 동시에 두는 숫자 모으기 미로 구현하기
6.2 교대로 두는 게임용 알고리즘 적용
__6.2.1 순수 몬테카를로 탐색 구현하기
__6.2.2 MCTS 구현하기 
6.3 DUCT(Decoupled Upper Confidence Tree)
__6.3.1 DUCT의 특징과 동작: 동시에 두는 게임이라면 바로 이거!
__6.3.2 DUCT 구현하기


7장 더 좋은 탐색을 하는 기법 
7.1 예제 게임 소개: 벽이 있는 숫자 모으기 미로 게임
__7.1.1 벽이 있는 숫자 모으기 미로 게임
__7.1.2 벽이 있는 숫자 모으기 미로 구현하기
7.2 평가 함수 설계하기
__7.2.1 실제 기록 점수 이외의 후보 점수 추가하기
__7.2.2 실제 기록 점수 이외의 보조 기록 점수를 추가하는 방법 구현하기
7.3 다양성 확보 방침
__7.3.1 동일 게임판 제거하기
__7.3.2 동일 게임판 제거 구현하기
7.4 고속화
__7.4.1 다수의 비트열로 게임판 표현하기
__7.4.2 다수의 비트열로 게임판 표현 구현하기
__7.4.3 단일 비트열로 게임판 표현하기
__7.4.4 단일 비트열을 사용한 게임판 표현 구현하기
__7.4.5 복사 횟수 제어하기
__7.4.6 참조 카운트 방식으로 복사 횟수 제어 구현하기


8장 실제 게임에 응용하기 
8.1 커넥트 포 게임을 플레이하는 AI 구현하기
__8.1.1 커넥트 포 게임
__8.1.2 커넥트 포 구현하기
__8.1.3 게임판 비트보드를 이용해서 고속화하기
__8.1.4 커넥트 포에 비트 연산을 적용해서 구현하기

출판사 리뷰

 

이 책은 게임 AI에 빠질 수 없는 핵심 중 하나인 탐색 알고리즘의 기본 개념을 소개하면서, 게임 유형에 따라 어울리는 탐색 알고리즘을 살펴봅니다. 여러 게임에 적용할 수 있는 알고리즘뿐만 아니라 여러 대회에서 우승했던 저자가 직접 개발한 알고리즘도 함께 알아봅니다. 또한 C++ 기반의 예제 코드는 주석을 통해 친절하게 설명되어 있으며, COLUMN과 POINT 구성을 통해 입문자들도 이해하기 쉽게 구성했습니다. 추가로 실전에서 사용 가능한 템플릿 코드도 추가로 제공하여 게임 AI 개발에 필요한 이론과 노하우를 체계적으로 전달합니다.

 

추천사

 

이 책은 '게임' 인공지능 개발을 위한 책이라고 하지만 저는 이 책을 인공지능을 공부하는 모든 학생과 일반인 분들도 접했으면 좋겠다고 생각했습니다. 전공자가 배우는 인공지능 책은 매우 진부해서 흥미가 생기기 어렵지만, 게임이라면 다릅니다. 
이 책은 읽기 쉬운 소스 코드와 함께 게임을 활용하여 광범위한 AI 지식을 실전에 적용할 수 있도록 명료하게 설명합니다. 그동안 AI 이론에 대해 복잡하고 난해한 설명을 접했다면, 이 책은 우리의 흥미를 자극할 것이라 단언할 수 있습니다.

이강민, 프리랜서 개발자

 

과거 스타크래프트 전성기였던 초등학생 시절, 다수의 컴퓨터를 상대하여 혼자서 몇 대나 이길 수 있는지를 기준으로 등급을 가렸던 기억이 납니다. 초보 플레이어일 때는 한 대만 상대하기에도 벅찼지만, 경험이 쌓이다 보면 인공지능의 전략적 취약점을 발견하게 되고 그 부분을 집중 공략하면 3~4대를 상대해도 어느 정도 우위를 점할 수 있었습니다. 지금의 게임 AI는 과거에 비해 수준이 압도적으로 상승했고, 일부 분야는 오히려 사람이 AI로부터 전술을 배워야 하는 단계가 되었습니다.
아무리 컴퓨터의 계산 능력이 좋다고 하더라도, 모든 경우의 수를 전수조사하는 방법은 결코 효과적일 수 없습니다. 결국 비교적 유망한 경로를 조기에 결정하고 나머지 다른 가능성을 포기하며 실수를 감수하는 냉철한 판단이 요구되며, 이를 탐색 알고리즘에 대한 최적화 문제로 접근할 수 있습니다. 이 책은 게임 인공지능을 위한 탐색 알고리즘의 A to Z를 다루는 유일무이한 책입니다.

박재유, LG전자 선임 연구원

 

프로그래밍을 공부할 때 결국은 자료구조와 알고리즘을 고려하지 않을 수 없습니다. 기본서를 공부한 후 탐색 알고리즘에 깊게 집중하고 싶다면 이 책을 추천합니다. C++ 기반 실습용 예제 코드를 함께 제공하며 독자의 이해를 돕기 위한 저자의 의도가 명확히 드러나는 책입니다. C++ 프로그래밍 알고리즘을 통해 AI 프로그래밍에 입문하고 싶은 학생들에게 강력히 추천합니다.

최고은, 소프트웨어 엔지니어
 


한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

책 "게임 AI를 위한 탐색 알고리즘 입문" 을 리뷰하게 되었다.

제목을 처음 보자 마자 실용적이고 근원적인 접근에 초점이 맞추어져 있을 것이라 예상했고 당연히 그랬다.

넘치는 딥러닝들 책들 속에서 한송이 꽃과 같은 책이지 않을까.

이 실용적이고 근원적인 접근은 게임 제한된 환경에 있어서 필수적이다.

딥러닝이 은탄환은 아니기에.


구체적으로 탐색에 촛점을 두고 저자는 설명한다.

만약 게임 AI에 있어서 큰 그림과 여러 사례가 궁금하다면 AI Game Programming Wisdom 혹은 Game Programming Gems에서 AI 파트를 다루는 부분을 찾아 보기 바란다.

이미 절판되어 쉽게 구매할 수는 없겠지만 가까운 도서관에는 반듯이 있을만한 그런책이다.

무튼 잠깐 삼천포로 빠졌지만 게임에 있어 탐색 AI에 대해 재조명하고 쉽게 설명하고자 노력한다.

취향의 차이가 있을 순 있는데 전체적으로 크고 넓게 조망하고 깊게 다루지 않는 접근 보다 이렇게 한 분야를 두고 깊게 설명하는 책은 귀하다 생각한다.

여러 이유로 반가운 책이었다.

 


 

 

게임 AI를 위한 탐색 알고리즘 입문

    트리 탐색과 메타 휴리스틱으로 완성하는 최적화

    아오키 에이타 지음

    서수환 옮김

 

일반적으로 AI라고 하면 빅데이터, 머신러닝 관련한 자료들을 다루는 책과 다르게

이 책은 게임 상에서의 AI를 다루는데 그 중에서 탐색에 대한 부분을 다루고 있습니다.

 

게임 AI 라고 하더라도 보통 빅데이터 부분과 머신러닝, 관련 부분에 대해 접근을 주로 

할 것이라 생각하였지만 이 책을 학습하다 보면 저자가 얘기 하는 것 처럼 탐색이라는

부분 또한 큰 부분을 차지 하는 것 같습니다.

 

[ 대상 독자 ]_______________________________________________________________________

책에서는 .....

   * 알고리즘에 흥미가 있으신 분

   * 게임 AI 구조에 흥미가 있으신 분

   * AI를 머신러닝 이외의 관점으로 살펴보고 시야를 넓히고 싶으신 분

   * 게임 AI 대회나 휴리스틱 대회에서 입상할 만큼의 실력을 키우고 싶으신 분

   * 대결 게임을 개발하고 싶지만 CPU (컴퓨터가 조작하는 플레이어)를 만드는 방법을

     모르시는 분

 

게임 AI를 위한 탐색 알고리즘 이지만, 여러 분야에 접목 가능 할 것이라 생각되며, AI 가 아니더라도

학습해보면 좋을 것 같습니다.

 

[ 책 구성    ]_______________________________________________________________________

 1 ~ 2장 에서는 게임에서의 AI 와 탐색 알고리즘에 대한 소개와 개요 그리고 실습을 위한 개발 환경 구성에

대해서 설명하고 있습니다.

  1장, 게임과 탐색의 세계

        - 게임에서 AI의 역활을 알아보고 그 중에 탐색이 차지하는 부분과 그 중요성에 대해서 설명 합니다.

  2장, 개발 환경 준비

        - c++ 개발환경 구성하는 방법에 대해서 설명 합니다.

          이 책에서는 WSL (Windows Subsystem for Linux) 를 이용하여 개발 환경 구성하는 방법에 대해서

          설명 합니다.

3 ~ 7 장 에서는 게임 종류에 따른 탐색 알고리즘에 대해서 설명 합니다.

  3장, 컨텍스트가 있는 1인 게임에서 사용하고 싶은 탐색 알고리즘

  4장, 컨텍스트가 없는 1인 게임에서 사용하고 싶은 탐색 알고리즘

  5장, 교대로 두는 2인 게임에서 사용하고 싶은 탐색 알고리즘

  6장, 동시에 두는 2인 게임에서 사용하고 싶은 탐색 알고리즘

  7장, 더 좋은 탐색을 하는 기법

8장 에서는 "커넥트 포" 게임을 간단한 기능으로 AI를 구현해 보면서 실제 게임에 응용하는 것에 대해서

설명 합니다.

 

책 예제 소스 다운로드

https://www.hanbit.co.kr/lib/examFileDown.php?hed_idx=7615

 

이 책은 "숫자 모으기 미로 게임"을 각 장의 학습 방향에 맞게 구현 예제를 통하여 탐색 알고리즘을 설명 하고 있습니다.

3장에서 시작 하여, 각각 특성에 따라 여러 탐색 알고리즘을 접목 시켜 보면서 각 탐색 알고리즘이 어떠한 형태로 적용

되는지 학습 할 수 있습니다.

 

각 알고리즘에 따른 게임이 흘러가는 형태들을 그림으로 보여 주고 그에 따른 소스를 적절하게 구성하여 설명하고 있으며,

필요에 따라서 중요한 부분에 대해 "Point" 블럭을 두어 부연 설명을 해주어 좀 더 쉽게 접근할 수 있도록 노력하고 있습니다.

 

 

 

 

[ 결론        ]_______________________________________________________________________

여느 AI 책과는 다른 책 입니다.

게임 AI 기술 중에서 탐색 알고리즘에 대해서 집중 하고 있으며, 한 가지의 게임에 대해서

각 특성에 따라 적용 가능한 탐색 알고리즘을 알아 보고 기본 적인 탐색 알고리즘에 대한 설명과

구현 예제를 통하여 실제 동작 되는 것을 각 알고리즘을 빌드하고 실행된 결과를 보면서

학습 할 수 있도록 구성된 책 입니다.

심화 학습 까지는 아니지만 각 필요에 따른 탐색 알고리즘을 적용하는 방법을 학습하기에 좋을 것 같으며

실제 구현된 소스를 학습 하면서 응용하고 적용하면서 확장 할 수 있을 것입니다.

탐색이라는 부분은 게임에만 국한 되지는 않을 것 입니다.

그렇기에 게임 분야에 있지 않더라도 충분히 학습하고 여러 탐색 알고리즘에 대해 이러한 것이 있고

어떤 경우에 적용할 수 있다는 정도만 알더라도 향후에 많은 도움이 될 것 같습니다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

 

일반 코테를 위한 알고리즘이라 하면 DP, 그리디, 완전탐색, 구현, 그래프 탐색이 있다. 그리고 좀 더 나아간다면 kmp, 비트마스킹, digit dp, 세그트리 등등이 있는데 이 책에서는 완전 다른 세계의 알고리즘을 알려주어 재미있게 읽을 수 있었다.

 

 

 

 

게임 AI를 위한 탐색 알고리즘 입문에서는 플레이어 수, 컨텍스트 존재 유무, 플레이 진행 순서에 따라 크게 네 종류의 게임으로 구분한다. 이 네 종류의 게임은 다시 세부 조건을 확인해 빔 탐색, Chokudai 탐색, 담금질 기법, 미니맥스 알고리즘, 알파-베타 가지치기, Thunder 탐색, 순수 몬테카를로 탐색, MCTS 몬테카를로 트리 탐색, DUCT(Decoupled Upper Confidence Tree) 등 다양한 알고리즘을 사용해 게이머에게 재미있는 게임을 제공해준다.

 

내가 알고있는 휴리스틱 알고리즘은 A* 알고리즘밖에 없었는데 이 도서를 통해 다양하게 배울 수 있었다.

 

오늘 리뷰할 책은 한빛미디어의 신간 '게임 AI를 위한 탐색 알고리즘 입문'이다. 알고리즘 이야기가 나오면 당연히 개발자(프로그래머)를 대상으로 하는 책이라고 생각을 하는데, 시스템의 이해와 밸런스 기획을 위해서도 게임 기획자에게도 필요한 지식이 담긴 책이라고 생각한다. 나는 기획자이기 때문에 기획자 입장에서 이 책의 리뷰를 쓴다.

파란색 OX 게임(틱택토)을 배경으로 검은 바탕에 깔끔한 디자인의 표지. C++ 기반의 예제 코드를 제공한다고 쓰여있다. 3장~8장에서 사용하는 예제 코드를 홈페이지를 통해 다운로드할 수 있다. 책의 첫 부분은 예제 코드의 다운로드 경로 안내와 함께 명령어 실행법 등을 간략하게 다루고 있다.

" 게임의 즐거움은 어디에서 오는가? "

게임성을 만드는 데 빠질 수 없는 난이도 조절. 너무 어려워서 포기하게 만들지 않고, 그렇다고 너무 쉬워서 시시하게 느끼지 않도록 적당한 긴장감을 유지할 수 있도록 난이도를 유지하는 역할을 게임의 AI가 담당하고, 그런 게임 AI가 사용하는 방법이 바로 이 책에서 말하는 탐색 알고리즘이다.

"왜 이 게임이 재미있는지" 콘텐츠를 분석하는 것이 주니어 기획자의 영역이라면, '어떻게 재미를 느끼게 할 것인지' 시스템으로 논리적으로 설득할 수 있는 것이 시니어 기획자라고 생각한다. 그런 면에서 기획자도 알아두면 유익한 내용들을 담은 책이라고 할 수 있다.

대전 게임의 AI라고 하면 딥러닝으로 널리 알려진 알파고를 떠올릴 수 있는데, 대전 게임 AI는 머신러닝뿐만 아니라 규칙 기반, 탐색 세 종류 기술 요소를 사용한다고 한다. 이 중 규칙 기반은 사람이 직접 만든 규칙에 따라 조건 분기하는 것을 뜻하며, 이 책은 앞의 세 종류의 기술 요소 중 '탐색'에 중점을 두고 설명하는 책이다.

시작은 OX 게임이라고도 불리는 틱택토 게임의 예를 들어서 게임 트리와 탐색의 기본 개념에 대해 설명한다.

게임의 시작부터 끝까지 모든 수를 포함한 게임 트리를 특별히 '완전 게임 트리'라고 부르며, 완전 게임 트리를 분석한 플레이어는 언제나 최선의 수를 선택할 수 있다. 하지만 게임 트리는 게임의 복잡성에 따라 지수 함수적으로 커지기 때문에 대부분의 게임을 완전 트리를 분석하는 건 현실적이지 않다. 그렇기 때문에 게임의 일부만 게임 트리로 표현하고, 한정된 자원으로 우선순위를 정하고 고심해서 좋은 답을 찾는데, 이 기법을 통틀어 '게임 트리 탐색'이라고 부르고 이 책은 대부분 이 '게임 트리 탐색'을 설명한다.

틱택토 같은 게임은 단순하기 때문에 완전 게임 트리가 크게 복잡하지 않고, 그렇다 보니 선공과 후공에 따른 필승 전법이 이미 적나라하게 알려져 있다. 라프코스터의 재미이론에서도 언급하듯 몇 번 플레이를 해보고 나면 이런 평이한 난이도의 게임은 더 이상 사용자에게 즐거움을 주지 못하고 플레이가 계속되지 못한다. 그래서 레벨과 밸런스의 영역은 기획자에게도 어려운 영역이다. 그 적절한 줄타기를 수와 이론적으로 해내야 하고 잘되면 평타인데 못하면 개망이거든.

이 책은 컨텍스트가 있는 1인 게임, 컨텍스트가 없는 1인 게임, 교대로 두는 2인 게임, 동시에 두는 2인 게임. 총 네 종류로 게임을 분류하고 설명한다. 여기서 신입이라면 컨텍스트라는 단어가 다소 생소할 수 있는데, '플레이어의 행동에 따라 상황이 변화하는 것'을 컨텍스트가 있다고 한다. UI/UX 기획자에게 '컨텍스트'란 매우 밀접한 조건이며, 게임 기획자에게도 아주 중요하고 필요한 개념이다.

'컨텍스트'에 대한 이해와 지식이 있는 게임 기획자는 '시스템'에 대한 이해와 지식이 있는 게임 기획자처럼 같은 업무를 할 때 경쟁력을 가질 수 있다. 특히 사용자의 자유도를 어디까지 허용할 것인지, 자유도가 없음에도 유저가 자유도가 있다고 느낄 수 있는 콘텐츠와 시스템을 기획할 때 도움이 된다.

기획자가 왜 탐색을 배워야 할까. 개인 게임 개발을 한다면 서버 구축이나 온라인 실시간 대전 게임을 개발하기는 쉽지 않은데, AI 대결 상대를 만들어 클라이언트만으로 대전 게임을 개발할 수 있다. 뭐 개인 게임 개발을 넘어서 회사에서도 항상 풀 리소스를 투입해서 개발을 할 수 있는 상황이 있는 건 아니기 때문에 활용할 수 있는 플랜을 더 많이 알고 있다면 실무에 더욱 효율적일 수밖에 없다.

책에서는 순서대로 컨텍스트가 있는 1인 게임에서 사용하고 싶은 탐색 알고리즘과 컨텍스트가 없는 1인 게임에서 사용하고 싶은 탐색 알고리즘을 다루고 각 장에서 다양한 탐색 기법을 소개하고 구현 방법을 알려준다. 예제 코드가 제공되기 때문에 어렵지 않게 따라 할 수 있다. (신입 기획자가 보기에는 어렵다. 프로그래머가 보기엔 쉬움.)

그리고 바둑같이 교대로 두는 2인 게임에서 사용하고 싶은 탐색 알고리즘을 다루며 탐색 기법을 소개하고 구현 방법을 알려준다. 조금 아쉬운 점은 이 책의 대상 독자가 '알고리즘에 흥미가 있으신 분'부터 시작해서 '대결 게임을 개발하고 싶지만 CPU를 만드는 방법을 모르시는 분'까지로 시작부터 어느 정도 베이스 지식이 있어야 이해하고 볼 수 있는 책이기 때문인지, 교대로 두는 2인 게임이라고 하면서도 그게 무엇인지 대체적인 예시 이미지 하나 없다는 점이 좀 아쉽다. 그랬다면 기획자들도 좀 더 흥미를 가지고 볼 수 있는 책이 되지 않았을까 하는 아쉬움이 남는다.

교대로 두는 2인 게임의 탐색 알고리즘 다음으로는 동시에 두는 2인 게임의 탐색 알고리즘을 다룬다. 순서가 교대로 돌아온다면 상대방 행동을 확인하고 나서 자신의 행동을 검토할 수 있는데, 상대방과 자신이 동시에 두는 상황이라면 무엇을 고려해야 할까? 그런 면에서 이 책은 기획자에게도 다양한 상황에 대한 시뮬레이션을 돌릴 수 있어서 좋은 책인 것 같다.

둘이서 동시에 두는 탐색 알고리즘을 판 다음에는 더 좋은 탐색을 하는 기법들에 대해 다룬다. 평가 함수 설계나 다양성 확보 방침 등을 여기에서 배울 수 있다. 그리고 마지막 8장에서 실제로 존재하는 게임에 탐색 알고리즘을 적용해서 AI를 강화하는 방법을 실습한다. 8장까지는 안 간다고 해도 기획자 입장에서 대단히 유익한 책이었고, 쫀득한 퍼즐 게임의 밸런스를 만들고 싶은 기획자라면 이 책을 한 번 읽어보기를 추천하고 싶다.

#한빛미디어 #게임AI를위한탐색알고리즘입문 #게임AI알고리즘 #게임탐색알고리즘

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

한빛미디어 <나는 리뷰어다> 활동을 위해 책을 제공받아 작성한 서평입니다.

 



저자의 말에 따르면, 게임 AI 기술 요소는 규칙, 탐색, 머신러닝 으로 분류할 수 있다고 한다.

이 책은 그 중 탐색 알고리즘을 다룬다.

 

책의 예제는 대부분 C++로 작성되어있는데, 개발 환경을 Windows 11에서 WSL로 Ubuntu 20.04로 구축하는 점이 좀 특이한 것 같다.

실제 게임 개발자들이 어떤 시스템 환경에서 개발하는지는 전혀 아는게 없지만, Windows에서 바로 Visual Studio 등으로 C++ 프로그래밍을 하거나, 바로 우분투에서 실행해도 될 텐데 굳이 WSL을 써야하나 싶다.

딥러닝/머신러닝 쪽 개발할때 리눅스를 많이 쓰니까 우분투를 선택했지만 윈도우 유저가 많을거라 예상해서인가?

 

이렇게 개발환경을 복잡하게 해놨으면, Visual Studio Code에서 WSL 환경 접속하는 법까지 있었으면 좋았을 것 같다.

책에서 가르쳐준 정보만이면 터미널 켜서 g++로 컴파일하고, 예제 소스파일은 터미널로 일일이 확인하거나, 윈도우 파일탐색기로 WSL 디렉토리 들어가서 별도의 프로그램으로 읽고 수정해야하는데, 도대체 저자분은 집필할 때 어떻게 작업환경을 구성했는지 궁금하다.

맺음말 보니 처음 집필한 분이라 그러신걸까.

 



책의 구성은 상황에 따라 적용가능한 탐색 알고리즘을 소개한다.

컨텍스트의 유무, 플레이어가 1/2명인지, 2명이면 교대로 둘지, 동시에 둘지.

 

각 장의 주제에 맞게 숫자모으기 미로 게임을 변형하여 설명하며, 그리디, 어닐링, 몬테카를로 등 강화학습을 공부하다보면 자주 보이는 알고리즘들도 다룬다.

 

작년 수업시간에 C++ 배워두고, 안쓰고 있다가 최근 이산구조 과제 때문에 기억을 더듬어가며 가까스로 복구해냈는데, 이 책 예제를 따라해보면서 다음학기 알고리즘 과목 공부하면 당연히 도움이 되지 않을까.

 

근데 이 책에서 다루는 내용으로 과연 정말 재밌는 게임을 만들 수 있을지는 모르겠다. 예제가 거의 미로게임의 변형이라, 독자가 미로게임 개발 전문가가 되기를 바라진 않았을테지만, 조금 더 다양한 게임을 예제로 만들어줬으면 좋았을 것이다

처음부터 끝까지 읽으면서 다 실행시키다보면 지루할 것 같다.

 

그래도 교수님이 학생들 괴롭히려고 내주신 비트마스크로 상태 확인하는거를 여기서 게임판 해시값 갱신하는 예시로 보니까, 공부해 두면 언젠가 한 번 쯤은 쓸 수 있다는 점이 놀라웠다.





이 책을 보며 개발을 하기 위해선 c++에 대한 지식과 윈도우 pc가 반드시 필요 합니다.

맥 사용자는 세팅과의 사투를 할 자신이 있다면 진행 하셔도 무방합니다.

그 외에 책 내용은 그림으로 친절히 알고리즘에 대한 설명을 해주고 예제 코드 진행도 차분히 읽으며 진행 한다면

따라하는데 무리는 없을 것으로 보입니다.

게임 AI는 어떻게 개발 하는지 궁금했는데 어떻게 개발을 하는지 알 수 있었고 정말로 출시를 목표로 할 것이라면

옆에 꼭 두고 개발해야 할 좋은 책인 것 같습니다.

상세한 예제로 쉽게 이해하는 탐색 알고리즘

 

이 책을 선정한 이유는 '게임 AI' 라는 말이 와닿았기 때문이다. 요즘 AI가 유행하길래 신기해서 이번 기회에 알고리즘 공부도 오랜만에 할 겸 한빛미디어 나는 리뷰어다 기회를 통하여 신청하게 되었다.

 

 

이 책은 우선 AI를 만들거나, AI의 원리가 어떻게 되는지에 대한 책은 아니다. 물론 이 책을 신청할 때에도 이미 알고 있었던 내용이고, AI 라는 제목은 독자의 주목을 끌기 위한 부분일 것이다.

이 책은 전적으로 알고리즘을 알려주는 책이며, 특히 게임 이론과 관련된 탐색 알고리즘을 매우 충분한 삽화로 쉽게 이해할 수 있게 하는 책이며, 소스코드 또한 충분하게 제공되어서 이해하기 쉽도록 구성되어있다.

 

 

이 책은 앞서 언급했지만, 게임 이론과 관련된 내용을 주를 이루며, 이러한 게임 이론에 적용할 수 있는 알고리즘을 소개한다. 맨 앞에 위 사진과 같이 어떤 케이스에 어떤 알고리즘을 적용해야 하는지를 한눈에 쉽게 정리하여 더욱 이해하기 좋았다. 

 

 

어떻게 보면 이 책의 가장 큰 장점은 알고리즘을 설명하기 위해 삽화가 굉장히 많다는 점이다. 자칫 소스코드만 제공하면 굉장히 지루하고, 머리가 아플 수도 있을 책이였지만, 이렇게 각 알고리즘마다 그 알고리즘이 어떻게 작동하는지에 대해서 삽화를 굉장히 많이 제공하여 지루하지 않게 알고리즘을 이해할 수 있게 해준다.

 

 

물론 삽화만 많은 것이 아니고 이렇게 C++로 이루어진 코드도 상세하게 제공하고 있어서 더욱 이해를 돕는다.

 

 

이 책은 게임 이론에 적용될 수 있는 탐색 알고리즘과 관련된 내용을 소개해주는 책이다. 게임 이론과 관련된 내용에 대해서 입문하고 싶거나, 게임 이론에 적용할 수 있는 알고리즘 구현에 대해서 더 자세히 알아가려면 이 책을 추천한다.

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

게임, AI, 그리고 알고리즘. 이 세가지가 겹치는 영역에 재밌는 문제들이 많습니다. 이 영역에서 널리 알려진 것 중 하나로 바둑을 플레이 하는 알파고를 예로 들 수 있습니다. 다른 예로는 체스를 플레이 하는 딥블루를 예로 들 수 있습니다. 컴퓨터를 통해 문제를 푼다는 것은 결국 탐색을 한다는 것으로도 이해할 수 있습니다.

 

게임 AI를 위한 탐색 알고리즘 입문에서는 주어진 문제 공간을 이해하고 정의하여 우리가 원하는 답 - 게임에서는 승리 - 을 효율적으로 찾아 내기 위한 기법을 설명하고 있습니다. 저는 이 책에서 알파고에 사용된 Monte Carlo Tree Search (MCTS) 및 저자가 알파 제로에서 영감을 얻은 Thunder 탐색에 대해 설명한 내용을 이해한 후 꽤 큰 감동을 받았습니다.

 

탐색 방법 중 minimax 혹은 Alpha-beta pruning에 대해 이해하고 있다면 어렵지 않게 이 책을 볼 수 있습니다. 최신 게임 AI가 어떻게 동작하는지 그 원리를 이해하고 싶으신 분들이라면 이 책을 꼭 살펴보시면 좋겠습니다.

 

좀 더 자세한 리뷰는 아래 URL로 오시면 확인하실 수 있습니다.
https://altari.io/2024/03/23/Search_Algorithms_for_GameAI.html

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

현재 50대 이하의 사람들 중에 비디오 게임을 모르고 자란 사람이 있을까? 한 번도 안 한 사람이 있을 순 있지만, 비디오 게임이라는 게 있는지도 모르고 자란 사람은 없을 거다. 나 역시 어릴 때부터 접해 왔다. 오락실에서부터 PC, 휴대용 게임기, 게임 콘솔, 그러다 지금은 휴대폰까지, 아니다, 스마트TV까지, 거의 모든 엔터테인먼트 기기에서 게임을 즐길 수 있게 됐다.

 

이런 게임들을 접하면서 사실 항상 궁금했던 건, 저 캐릭터는 어떻게 움직이는 거지? 왜 저런 판단을 내리고 공격하는 걸까? NPC는 정해진 시나리오대로 움직이는 거라 이해하지만, 전투는 그렇지 못할 텐데... 그러다 어느 순간 랜덤한 선택을 해서 정해지지 않은(?) 시나리오로 진행해 다양한 결과를 보여주는 게임까지 나오곤 했다.

 

그러다 지금은? 크고 나서는 오히려 학창 시절보다 더 게임을 못 즐기게 됐지만, 과거에 비하면 엄청나게 다양한 모습을 한 캐릭터가 나오고, 이제는 훨씬 복잡하면서도 단순 대전도 아니고 스타크래프트 정도에서 촉발돼나온 다양한 형태의 대전 게임도 많이 존재한다. 사실 PvP 형태가 아닌 AI와의 대전 게임도 사람 만큼이나 다양하게 대응하다보니 AI 상대로 게임을 이길 수나 있을지 걱정이 될 정도로 발전했다.

 

그렇다고는 해도 가장 기초가 되는 방식이 있을 텐데, 게임 분야 일을 하지 않는 관계로 궁금은 하지만 사실 어떻게 하는지는 모르고 있었다. 간혹 궁금해서 찾아보면 이런 쪽을 설명해주는 자료를 찾긴 쉽지 않았고, 배경지식이 짧으니 자료를 판별하는 것도 쉽지 않은 상황이니 사실상 손놓고 있었다고 보면 된다. 이런 지경이면 이쪽 지식은 게임 회사의 핵심 자원이 아닌가 싶어서, 쉽게 찾을 수 없었던 게 아닌가 싶기도 하고...

 

그런데 근래 AI 관련 산업이 폭발적인 성장을 하면서 오히려 옛날부터 실전 사례로 사용하던 게임AI쪽도 그 영향을 받아 좀더 공개적인 상황이 된 게 아닌가 싶어졌다. 예전보다 게임 산업이 굉장히 많이 커지다보니 참조 가능한 자료로 더 많아졌을 거라 추측할 순 있었지만, 그래도 어느 지점부터 접근해야 할지 난감한 상황이었다. 게임 아카데미 들어가면 좀 더 수월하게 알 수 있지 않을까 싶기도 하지만, 그렇게 도전하긴 어려운 상황이라.

 

"게임 AI를 위한 탐색 알고리즘 입문"이라는 책을 알게 됐다. 요즘 AI쪽 얘기를 하도 많이 하다보니 피로감도 있지만, 제대로 공부해본 적은 없고, LLM을 파야 하나, 뭐 괜찮은 입문서는 없나, 싶으면서도 수학은 여전히 자신이 없어서 어려운 책은 보기도 싫고, 그러다 이 책을 덜컥 얻어 걸렸다.

 

차근차근 읽어가면서 오, 읽을만 한데? 하는 자신감을 얻어갈 때쯤 C++와 관련 필드에서 일하지 않다보니 퇴색된 지식 때문에 좀 난감해졌다. 수학, 확률, 이쪽 관련 알고리즘... 흠, 쉬운 게 없지만, 다행스럽게도 저자가 어려운 말은 많이 안 쓴다. 그나마 다행이다. 학술적인 어조로 진행하지도 않는다. 너무 다행스럽다. 제일 좋은 건 그래프를 곁들인 적당한 설명 뒤에 따라나오는 예제 코드와 그 실행 결과다.

 

지은이의 말에 자신이 대상으로 삼은 사람들을 나열한 내용 중 내가 속한다고 생각되는 부분은 "대결 게임을 개발하고 싶지만 CPU(컴퓨터가 조작하는 플레이어)를 만드는 방법을 모르시는 분"일 거라 생각한다. 당장 개발할 일은 없지만, 죽기 전에 하나쯤 만들어보고 싶은 생각은 있다.

 

예제 코드를 제공해준다. 사실 이건 정말 중요하다. 물론 직접 타이핑 치는 게 제일 좋은 학습법임을 알고는 있지만, 항상 업무든 집안일이든 시간에 쫓기는 입장에서는 이렇게 타이핑 치는 시간조차도 아쉽기 마련이다. 샘플 코드를 제공해준다면, 아무래도 책으로 설명을 읽기만 하고 눈으로 쫓아가기만 하는 것보다는 실제로 돌려보고 손보기도 하면서 익히는 게 훨씬 도움이 되니까 매우 좋다.

 

게임 AI의 핵심은 탐색임을 이해할 수 있게 됐다. 그리고 그런 탐색에서 쓸만한 것들을 많이 제안해준다. 그것도 코드와 그 결과와, 심지어 탐색 알고리즘의 비교 분석까지. 이러니 도움이 안 될 수가 없다. 다만 읽으면서 한 가지 아쉬웠던 것은, 실제 사례로 널리 알려진 게임에서 어떤 탐색 알고리즘을 사용했는지, 그 사례를 좀 더 보여줬으면 어땠을까 싶긴 했다. 하지만 그러기엔 책이 다루는 범위와 주제에 안 맞을 수도 있겠단 생각은 들었지만, 그래도 좀 아쉽다. 이 다음 책은 뭘로 해야 하나 고민스럽기도 하고.

 

나름의 게임 분류법을 통해 그에 적합한 알고리즘 소개까지는 무난하게 간다. 아무래도 가장 기초적인 건 빔 탐색이라 생각되는데, 이를 바탕으로 진행하면서 추가적으로 설명해나가는 알고리즘들이 앞서 언급한 알고리즘의 어떤 면을 개선해줄 수 있는지, 장점과 단점을 적절히 언급해주는 것도 많은 도움이 된다. 머릿속에 정리하려면 시간이 더 필요할 것 같다. 읽으면서 정리하기엔 쏟아져 들어오는 양이 많다.

 

쭉쭉 읽어가면서 너무 오래 전에 하고 안 한지라 C++ 코드에서 한 번 걸려 넘어지긴 했다. 다시 공부 좀 해야겠다 싶은 생각이 든다.

그러다 몬테카를로 탐색과 라스베가스 탐색의 배경에 대해 알게 된 건 또 다른 수확이다. 이게 도박에서 나온 거고, 저 유명한 몬테카를로라는 이름이 발레단 때문에 알게 됐는데, 도박이 유명한 곳인 줄은 처음 알았다.

 

백미라고 생각되는 부분이 두 군데 있는데, 그 중 하나는 Thunder 탐색이다. 본인이 이걸 개발하게 된 배경 설명도 좋았고, 내용도 좋았고, 이런 지식을 널리 공유하게 해준 것도 고맙다. 대단한 사람이다. 다른 하나는 7장 더 좋은 탐색을 하는 기법에서 특히 고속화 부분이다. 사실 어떻게 보면 이건 알고리즘보다는 최적화에 더 적합해보이는 부분인데, 다른 관점에서 보면 조금 과하단 생각이 들기도 하다. 하지만 아마 이 내용을 빼기엔 뭔가 허전했을 것 같긴 하다. 게임 AI의 미덕 중 하나는 비용 절감이다. 충분한 메모리와 시간, CPU 파워 등이 있다면 문제될 게 없겠지만, 뭐가 됐든 제한된 리소스 상에서 최적의 결과를 얻어내야 한다. 그러기 위해서는 비트 연산 이해는 필수다.

 

입문서지만, 한 두 번 읽어서 다 이해할 거라 생각은 들지 않았다. 한 꼭지씩 따서 찬찬히 뜯어보고 충분히 곱씹어 봐야 한다. 확실히 이해해야 적용과 응용이 될 거란 생각이 읽는 내내 떠나지 않았다.

 

이쪽 분야를 아주 조금은 들여다본 것 같다. 내 궁금증이 더 해소되려면 더 많은 게 필요하겠지만, 도입부로서는 딱 좋다. 게임 AI를 공부하기에 더할 나위 없이 훌륭하다.

리눅스 C++ 기반의 탐색 알고리즘이라 파이썬이 판치는 요즘 아주 새롭다는 느낌이다

탐색 알고리즘은 여러가지가 있고 예제나 샘플코드들도 많이 있지만알고리즘의 진행을 프로그램과 비교하여 그림으로 진행과정을 그림으로 세세하게 해석해주는 제법 친절한 책이다.

간단하지만 윈도우에서 리눅스 가상환경구축과 c++컴파일 환경설정방법도 알려주고 있고구구절절한 서론은 없다

바로 가장 간단한 제로섬 게임과 같은 간단한 룰에 적용 가능한 탐색 알고리즘부터 하나씩 하나씩 트리와 그래형식으로 그림을 많이 붙여 자세히 설명해주고 있다.

 

이런 알고리즘 하나만으로 뭔가를 할 수는 없을지 모르지만게임을 만드는 핵신 요소중의 하나인 만큼 게임이나 알고리즘에 관심이 있다면 많은 도움을 받을수 있을거라 생각한다

내용을 쫓아 가며 알고리즘을 분석한고 이해한다는 것이 다소 지루해질수도 있지만, 거의 마지막까지 가다보면 게임이나 추적 알고리즘을 적용하는 프로그램 구성들이 보기보다 단순하지않다는 것을 배울수 있다

단순히 추적만하는 것이 아닌 다양한 상황을 알고리즘에 적용하기위한 잘 보이지않는 방법들도 알려주고 있는것이다.

내용은 화려하지않지만게임을 만들어보겠다고하는이들은 끝까지 한번만이라도 읽어보기를 권한다.

컴퓨터가 없어도 시간때우기에는 무리가 없다.

"한빛미디어 서평단 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

단순히 알고리즘 이론을 설명하는 데 그치지 않고, 다양한 게임 유형에 따라 어떤 알고리즘이 더 적합한지에 대한 설명과 코드.

좀 더 자세한 내용은 아래 블로그에 있습니다.

https://developer-as-job.tistory.com/38

이 책은 게임 AI의 기초부터 심화 내용까지 깊이 있게 다루며, 개발자가 직접 AI를 구현해보는 실습까지 포함하고 있어 이론과 실제의 균형을 매우 잘 잡고 있습니다.

 

1장에서는 게임 AI의 기본 개념을 설명하고, 게임의 종류별로 적용할 수 있는 탐색 알고리즘을 소개합니다. 이는 게임 개발에 입문하는 이들에게 필수적인 지식을 제공합니다.

 

2장은 개발 환경 설정 방법을 자세히 안내하여 독자들이 본격적인 게임 AI 개발을 시작하기 전에 필요한 준비를 할 수 있게 도와줍니다. WSL 설치부터 C++ 개발 환경 구축까지의 과정을 단계별로 설명함으로써 초보자들도 쉽게 따라할 수 있습니다.

 

3장 이후의 장들은 각기 다른 형태의 게임에 적합한 다양한 탐색 알고리즘을 소개하고, 이를 구현하는 방법을 실제 게임 예제를 통해 배웁니다. 그리디 알고리즘부터 미니맥스, 알파-베타 가지치기에 이르기까지 다양한 전략을 통해 독자는 인공지능이 어떻게 문제를 해결하는지 실시간으로 경험할 수 있습니다.

 

독특하게도, 이 책은 특정 알고리즘의 구현뿐만 아니라, 고속화 기법이나 평가 함수 설계와 같은 고급 주제에 대한 내용을 담고있으며, 마지막 장에서는 이 모든 지식을 실제 게임에 적용하는 방법을 보여주며 독자가 학습한 내용을 실전에 활용할 수 있도록 합니다.

 

책의 내용이 매우 체계적으로 구성되어 있으며, 각 장의 시작마다 명확한 학습 목표를 제시하여 독자가 책을 읽는 내내 학습 경로를 잃지 않도록 합니다. 이론 설명에서 실습까지의 전환도 자연스러워 독자가 지식을 실제 기술로 전환하는 데 도움을 줍니다.

 

이 책은 게임 개발자, 인공지능 학습에 관심이 있는 학생, 프로그래밍 대회 준비생 등 다양한 독자에게 유익할 것입니다. 게임 AI에 대한 깊은 이해와 함께, 다양한 탐색 알고리즘을 직접 손으로 코딩해보고 싶은 독자들에게 이 책은 가치 있는 자산이 될 것입니다.

- 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다. -

요즘 워낙 AI가 대세이다 보니 AI가 들어간 분야에 대해 관심을 가지고 보는 편이다. 처음 이책을 접했을 때는 게임에 AI를 접목한 기술에 대해 설명한다고 생각했다. 게임 AI는 실제 1인 게임을 하면서 많이 접해 본, 컴퓨터를 대상으로 같이 게임하는 것으로 생각하면 편할 것 같다. 물론 AI 기술이 워낙 대중적으로 널리 퍼져있기 때문에 머신러닝 기술이 포함되기도 하지만 넓게 본다면 규칙기반, 탐색 등의 기술적인 요소를 모두 포함한 개념으로 보면 된다. 특히 이 책에서는 탐색에 중점을 두고 설명하고 있기 때문에 일반적으로 생각하는 AI와는 조금 거리감이 있는 것 같다. 이 책에서 언급하는 탐색은 조합론적 게임 이론의 게임 트리 탐색과 조합 최적화를 사용한 휴리스틱을 포함한다. 이 중 조합론적 게임 이론에서는 게임의 진행을 유향 그래프로 표현하고, 게임판을 노드, 선택지를 엣지로 표현한 것을 게임트리로 지칭한다.

이런 개념뿐만 아니라 실제 C++을 이용하여 게임개발을 위한 환경 구축을 사전에 진행할 수 있도록 한다. 이를 위해 WSL을 설치하고 필요한 패키지를 설치하는 과정을 소개함으로 별도 서버를 두지 않더라도 자신의 윈도우즈  시스템에서 테스트해 볼 수 있는 환경을 구성할 수 있다. 이후 본격적으로 탐색 알고리즘을 소개한다. 컨텍스트가 있는 1인 게임에서 사용하는 탐색 알고리즘, 컨텍스트가 없는 1인 게임에서 사용하는 탐색 알고리즘, 교대로 두는 2인 게임에서 사용하는 탐색 알고리즘, 동시에 두는 2인 게임에서 사용하는 탐색 알고리즘, 그리고 여태까지 설명된 알고리즘을 기반으로 좀 더 효율적으로 이를 활용할 수 있는 방법을 소개한다. 마지막으로 실제 게임에 응용하기 위한 방법을 설명한다.

각각의 장마다 다양한 검색 알고리즘과 코드를 설명한다. 어떤 방식의 게임이냐에 따라 사용해야 하는 알고리즘이 조금 달라진다는 것을 알수 있으며, 일부 알고리즘은 여러 게임방식에 활용될 수 있다는 것도 알 수 있게 된다. 또한 단순 게임을 진행하는 방식만 설명하는 것이 아니라 스코어를 매기고 승률 계산을 하는 부분까지 세밀한 부분까지 코드로 보여준다. 따라서 게임 개발에 관심이 있다면 다양하게 제시된 코드와 개념을 활용할 수 있지 않을까 생각된다. 물론 아주 복잡한 게임을 소개하는 것은 아니기 때문에 대중적인 게임을 만들만큼의 개념을 제시하지는 않지만 책 제목처럼 입문이라고 생각한다면 게임 개발의 출발점으로 삼기에는 큰 무리가 없는 것 같다.


"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

이 책의 맺음말 내용이 서두에 있으면 더 좋았을 거란 생각을 합니다.
“이 책은 필자가 Quiita에 투고한 '세계 4연패 AI 엔지니어가 제로부터 알려주는 게임 트리 탐색 입문' 글을 바탕으로 내용을 추가 및 수정한 글입니다.”
컴퓨터가 인간을 지능적인 두뇌 게임에서 이기는 일은 요즘 시대에는 더 이상 놀라운 일이 아닙니다. 그러나 IBM의 딥 블루가 체스 세계 챔피언을 이긴 그 순간은, 기계가 인간 지능을 넘어설 수 있다는 가능성을 전 세계에 각인시켰습니다. 딥 블루의 승리는 현대의 AI 기술 발전에 있어 중요한 이정표가 되었습니다.
당시 딥 블루의 기술은 지금 우리가 알고 있는 AI 기술과는 다소 거리가 있었습니다. 복잡한 알고리즘과 거대한 데이터베이스를 통해 가능한 모든 수를 계산하며 다음 수를 예측하는 방식이었습니다. 이는 오늘날의 AI가 자연어 처리, 이미지 인식, 기계 학습 등으로 다양한 분야에서 인간의 능력을 모방하고 뛰어넘으려는 시도와는 대조적입니다. 그러나 딥 블루의 승리는 인공지능이 인간의 지능적 활동에 도전할 수 있다는 사실을 세계에 처음으로 널리 알린 사건이었습니다.
IBM이 체스 세계 챔피언을 이긴 그 순간부터, 인공지능 연구에 대한 관심과 투자가 급격히 증가했습니다. 이는 AI 기술의 발전을 가속화하는 계기가 되었으며, 오늘날 우리가 경험하는 다양한 AI 기반 서비스와 제품들로 이어졌습니다. 딥 블루의 승리는 단순히 체스 게임에서의 이기는 것을 넘어, 인공지능의 미래 발전 가능성을 상징하는 역사적 순간이 되었습니다.
이번에 읽은 책은 한빛미디어의 "게임 AI를 위한 탐색 알고리즘 입문" 입니다.
책의 구성은 간단한 게임을 제작 한 후, 이를 탐색하는 여러가지 알고리즘을 적용하는 것으로 시작...하고 끝납니다. ㅎㅎㅎ
그래서 그 만큼 다양한 알고리즘을 소개하고 있고, 생각하면서 배울 점이 많습니다.
목차에도 나와있지만 "그리디 알고리즘, 빔탐색, 언덕 오르기 탐색, 담금질 기법, 미니맥스 알고리즘, 알파-베타 가지치기, 순수 몬테카를로 탐색" 등 같은 게임이라도 1인 게임, 2인 게임 혹은 동시에 두는 방식에 따라 다양한 알고리즘을 적용할 수 있게 해줍니다.

책에 소개된 게임 자체는 아주 간단한 게임입니다. 언뜻 오셀로나 O,X 게임을 생각할 수 있는데, 이 게임판을 점점 확장시켜서 보다 더 심오한 알고리즘을 적용할 수 있습니다.
다만 평소에 파이썬이 주로 익숙하던 독자에게는 C++로 실습을 해야하는 것이 다소 부담스러울 수 있습니다.
하지만! 코드 자체는 for문과 if 문만 알면 할 수 있도록 상세히 설명되어 있습니다.
그리고 이 책의 설명이 상세한 점이 각 단계별로 시뮬레이션 결과를 보여주게 됩니다.
책은 두껍지만, 설명과 코드 약간, 그리고 설명을 해주는 그림이 많이 채워져 있어서, 부담없이 읽을 수 있습니다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 



초등학교 5학년 즈음 컴퓨터 학원을 다녔는데 태어나서 처음 접했던 언어인 GW-BASIC으로 그림도 그리고 참 재미있게 배웠던 기억이 난다. 특히 토요일에는 게임을 시켜줬는데 생명 1마리로 죽지도 않고 오래 하는 친구들은 얄밉기도 하고 한편 부럽기도 하면서 어떻게 하면 오래 게임을 할 수 있을지 고민 했던 추억이 있다.

오락실 앞에 홍보 문구였던 두뇌 발달 효과?에 대해서는 많은 부분 공감을 하며 아이에게도 아이템 현질 하거나 비싼 아이템 로또 맞으러 다니는 노가다 게임이 아니면 적당한 게임은 암말 안하고 하라고 한다. 보드게임이나 장기 바둑 오목 같은 게임도 시간이 날때 마다 많이 했었다.

한때는 보난자라는 게임에 한참 빠져서 이걸 프로그래밍으로 만들어볼까 라는 생각도 해보았다.

아이들과 함께 하다보면 한 둘이 지쳐서 하지 못할때를 대비해서 PC를 넣어서 해보면 대체도 할수 있고 알고리즘을 넣은 PC와 사람과의 대결이 궁금하기도 했다.

** 게이임은 각 턴마다 플레이어는 효율적인 전략을 세워 협상도 하면서 콩 카드를 교환/심고 수확해 많은 금화를 모으면 승리하는 게임이다.(요런건 어떻게 효율적인 알고리즘을 써서 금화를 잘 모을까 하면서..)

생각을 많이 해야 하는 스토쿠 풀이를 PC에게 시킨다거나, 테트리스나 2048 같은 게임을 알고리즘을 적용하여 푼다고 생각만 해도 즐겁고 짜릿한 경험이 될 것이다. 물론 잘 풀리고 효과가 눈에 띄게 있을 때 성취감을 몇배 더 얻을수 있겠지만 말이다.

 

"게임 AI를 위한 탐색 알고리즘 입문"은 인공지능(AI) 초보자를 위해 도움이 되는 여러 탐색 알고리즘에 대한 설명과 게임 AI 개발에 활용하는 방법에 대해 그림과 코드로 쉽고 명확하게 설명한다.

 

이 책은 전혀 AI에 익숙하지 않은 독자도 쉽게 이해할 수 있도록 핵심 개념과 용어를 명확하게 설명하여 기본 개념부터 실제 게임 AI 구현까지 단계별 학습 과정을 다양한 게임 예시와 그림을 통해 독자의 이해를 돕는다.

책에 소개된 다양한 실용적인 다양한 탐색 알고리즘의 장점과 단점을 명확하게 비교 분석하여 상황에 맞는 알고리즘 선택을 돕고, 각 탐색 알고리즘의 구체적인 구현 방법을 코드 예시와 함께 설명하여 따라 해볼 수 있어 좋았다

더불어 효과적인 평가 함수 설계 기법을 소개하여 탐색 알고리즘의 성능을 향상시키는 방법을 설명하고, 탐색 공간의 다양성을 확보하여 최적의 해를 찾는 방법이나 비트 연산 등을 활용한 고속화 기법을 소개하여 탐색 알고리즘의 효율성을 높이는 방법에 대한 설명도 좋았다.

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

필요한 선수 지식
요구 학력
관련학과 대졸 이상
(자료구조와 알고리즘의 심화 및 응용)
예제 코드 : C++
난이도 : ★★★☆☆
 
책의 구성 중 마음에 들었던 주제
Chapter 05 교대로 두는 2인 게임에서 사용하고 싶은 탐색 알고리즘
미니맥스 알고리즘, 알파-베타 가지치기, 몬테카를로 탐색과 같은 전통적 트리 탐색과 관련된 알고리즘과 필자가 만들었다는 Thunder 탐색 알고리즘을 설명한다.
 
Chapter 07 더 좋은 탐색을 하는 기법
탐색에서 중요한 가중치를 설정하는 법, 탐색의 고속화를 위해 동일한 게임판을 저장하고 빨리 연산하는 법, 비트열을 이용하여 게임판 표현하는 방법을 설명한다.
 
읽고 난 후
추천 지수 : ★★★★☆
기본적으로 트리 탐색과 행렬, 상태 공간 트리와 같은 기초적인 알고리즘에 대한 내용을 잘 모르더라도 뒤의 내용을 이해하기 쉽게 기본 개념들을 간단히 짚어주고 뒤에서도 알고리즘들을 설명하고 마지막에 비교하는 과정을 통해 왜 사용하게 되는지 논리적으로 설명해주는 책
크게 어렵다고 느껴진 내용은 없지만, 입문서인 만큼 초반 부분에 학부 수준의 트리에 대한 설명과 순회, 탐색, 역전파, N-Queen 등의 기초 예제들을 추가했다면 책의 난이도가 조금 더 낮아지지 않았을까 하는 생각이 든다.

 
한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

어린 시절 게임을 즐겼던 사람 중 한명으로서 게임 AI가 어떻게 동작하는지 궁금했었다. 최근 딥러닝에 이어서 LLM(대규모 언어 모델)까지 등장하면서 AI에 대한 관심 및 활용 분야가 넓어졌다.

게임 분야의 개발자가 아니더라도, 게임 분야에 관심 있는 개발자라면 게임 AI에 대한 궁금증이 있을 수 있다. 이 게임의 AI는 어떻게 나를 이기기 위해 움직이는 걸까? 게임 AI를 위한 탐색 알고리즘은 이러한 궁금증에 대한 답변에 대한 열쇠에 접근할 수 있게 도와준다.
 

이 책은 독자들이 기본적인 알고리즘을 알고 있다는 전제하에 1장부터 내용을 시작한다.

1장에서는 게임 AI 탐색 알고리즘에 대해 간략하게 소개하고, 2장에서는 개발 실행 환경 설정에 대해 전달하고, 3장부터 6장까지 게임 종류/각 종류에 대응하는 탐색 알고리즘에 대해 소개하고 마지막 장에서 커넥트 포 AI 구현을 통해 탐색 알고리즘을 심화해서 다룬다.
 

책에서 C++ 예제 코드를 각 챕터마다 제공하고 있어서, C++에 대한 기본적인 지식이 있다면 책의 내용을 이해하는데 도움이 될 것이다.

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 상품명 :
게임 AI를 위한 탐색 알고리즘 입문
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
게임 AI를 위한 탐색 알고리즘 입문
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
게임 AI를 위한 탐색 알고리즘 입문
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실

최근 본 상품1