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

한빛출판네트워크

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

IT/모바일

게임 AI와 탐색: 탐색 알고리즘의 매력

한빛미디어

|

2024-03-15

|

by 아오키 에이타

6,701

<게임 AI와 탐색: 게임 속 AI의 역할과 게임 종류에 따른 탐색 알고리즘>에서 플레이어 수, 컨텍스트 존재 유무, 플레이 진행 순서 등에 따라 크게 네 종류로 게임을 분류했는데요. 분류된 게임은 다시 세부 조건을 확인해 다양한 알고리즘을 사용해 게이머에게 더욱 재미있는 게임을 제공한다고 전했었죠. 이번에는 게임 AI에는 빠질 수 없는 ‘탐색의 매력’을 탐구해보고자 합니다. 

✅직접 게임 개발을 한다면 탐색!

게임 AI나 탐색과 같은 생소한 이야기가 어떤 의미가 있는지 모르겠다는 분도 계실 듯 합니다. 탐색을 배우는 건 무척이나 매력적인 일이므로 안심하세요. 알기 쉬운 예를 들자면 게임을 직접 개발할 때도 탐색을 활용할 수 있습니다.

 

스마트폰에서 플레이하는 대전형 게임을 개발한다고 생각해 봅시다. 대전형 게임은 플레이어가 1명이라면 성립하지 않으므로 다른 플레이어가 필요합니다. 대다수 스마트폰 게임은 서버를 두고 온라인 대결이 가능한 방식을 도입합니다. 하지만 직접 만든 서버 또는 렌탈 서버 어느 쪽이든 오랫동안 운용하려면 계속해서 비용이 들기 마련입니다. 기술적으로도 서버 구성 방법이나 네트워크, 보안 같은 다양한 기술을 배워야 하므로 개인이 취미로 하기에는 조금 버거울 수 있습니다.

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

 

그런데 대결 상대가 AI라면 온라인 서버 없이도 오프라인으로 충분히 서로 대결한다는 즐거움은 그대로 유지한 채 게임을 개발할 수 있죠.  위의 그림은 제가 개발한 대전형 퍼즐 게임입니다. AI보다 먼저 색상이나 모양 중 하나를 4개 연달아 배치하면 승리하는 게임입니다.

 

 탐색 기법은 탐색 범위나 탐색 횟수 같은 파라미터에 따라 강약을 조절할 수도 있습니다. 이런 조절을 잘하면 점점 상대방이 강해지는 연출이 가능하죠. 모든 플레이어가 게임에 익숙한 것은 아니므로 초보 플레이어라면 평가치를 반대로 해서 일부러 져주는 봐주기 게임을 하고, 능숙한 플레이어를 상대한다면 최강의 패를 선보이는 등 레벨 조절도 자유롭습니다.

✅ 대규모 상업 게임 개발에서도 탐색!

취미로 만든  게임에 온라인 대결 기능을 구현하려면 기술적 또는 금전적인 면에서 조금 어렵습니다. 한편, 기업이 개발하는 대규모 게임은 온라인 대결 기능이 충실한 경우가 많고 온라인 대결의 수요도 증가하고 있습니다.

 

앞에서 오프라인 게임의 탐색 알고리즘이 어떤 매력이 있는지 설명했는데 온라인 대결 게임에서도 탐색 알고리즘이 중요한 역할을 담당합니다. 예를 들어 순위권에 드는 플레이어(사람)에 도전하는 최강 AI를 준비해서 뜨거운 대결을 연출할 수도 있고, 매칭이 잘 안되는 플레이어라면 사람 대신에 참가해서 게임을 진행하기도 합니다.

 

온라인 게임은 서버에서 필요한 계산을 하는데, 최강 AI를 준비하려면 서버의 가용 가능한 힘을 한계까지 뽑아내기 위해서 탐색 알고리즘이 필요합니다. 꼭 최강은 아니더라도 어느 정도 강한 수준으로 다수의 플레이어를 상대해야 하는 AI라면, 한 사람당 사용할 수 있는 계산 자원이 줄어들기 때문에 역시나 효율적인 탐색이 필요합니다.

 

그리고 꼭 대결 상대가 아니라도 탐색한 결과를 바탕으로 플레이어에게 조언하는 등 사용하기에 따라 무궁무진한 용도가 있습니다.

✅ 다양한 프로그래밍 대회에서 이기기 위한 비장의 무기

최근에 알고리즘을 활용해서 문제를 풀고 그 정확도와 빠르기를 겨루는 경진 대회인 앳코더AtCoder 나, 데이터 분석으로 예측 모델 성능을 겨루는 캐글Kaggle 같은 대회를 중심으로 프로그래밍 경진 대회가 활발하게 열리고 있습니다.

 

이러한 경진 대회와 비슷하게 게임 AI를 개발해서 실력을 겨루는 경진 대회 사이트로 코딩게임CodinGame이 있습니다. 

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

CodinGame 사이트 속 퍼즐 게임. 

주어진 문제를 코딩으로 풀어내는 방식으로, 코딩과 게임을 접목해 즐겁게 코딩 연습이 가능하다.
 

CodinGame은 2012년에 설립된 프랑스 기업이 운영하고 약 300만명의 사용자가 등록된 사이트입니다. 영어나 프랑스어만 지원하지만 다른 국가 참가자도 많고 자신이 개발한 AI가 대결을 반복하는 모습을 볼 수 있어서 수많은 사용자가 존재합니다. 책 <게임 AI를 위한 탐색 알고리즘 입문>에서 다루는 알고리즘은 모두 코딩 게임에서도 사용할 수 있으며 곧바로 실전에 투입 가능합니다.

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

▲CodinGame에는 혼자 연습하는 1인용 코딩 퍼즐(SOLO)과 

여럿이 코딩으로 대결하며 게임을 진행하는 Multi 모드가 있다.

 

앳코더에서도 휴리스틱 경진 대회가 열립니다. 이 대회는 최적해를 구하기 어려운 문제에 대해 가능한 최상의 해답을 찾을 수 있는지 겨룹니다. 앳코더의 일반적인 경진 대회에 비해서 요구되는 알고리즘 종류가 적어서 경진 대회에 익숙하지 않은 분도 쉽게 즐길 수 있는 점이 특징입니다. 

 

책 <게임 AI를 위한 탐색 알고리즘 입문>에서 다루는 알고리즘을 배우면 휴리스틱 경진 대회를 겨룰 수 있는 최소한의 무기를 손에 넣을 수 있습니다. 앳코더 경진 대회에 참가한 적은 있지만 휴리스틱 경진 대회는 아직 도전해 본 적이 없다면 이번 기회에 휴리스틱 경진 대회에 도전해 보는 것은 어떨까요?

 


위 내용은 게임 AI를 위한 탐색 알고리즘 입문에서 발췌하여 정리하였습니다.

 

게임 AI 기술 요소는 크게 규칙, 탐색, 머신러닝으로 나뉘며 머신러닝만으로는 먼 미래의 상황을 정확히 읽어내기 어렵습니다. 특히 탐색 기술이 없었다면 강력한 AI는 탄생하지 못했을 겁니다. 물론 실무에서 주어진 요구 사항이나 제한 사항을 해결하기 위해서도 사용되죠. 이러한 탐색 기술의 중요성과 매력은 아래 도서에서 더욱 자세히 확인할 수 있습니다.

게임 AI를 위한 탐색 알고리즘_도서 이미지

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

댓글 입력
자료실

최근 본 상품0