17
스타크래프트의 인공지능 성능 향상을 위한 프로그래밍 방법 Programming Method for Improving Performance of Artificial Intelligence on StarCraft 이상호, 허준영, 조유근 (서울대학교 컴퓨터공학부) 홍지만 (광운대학교 컴퓨터공학부) 발표자: 이상호 ([email protected] )

스타크래프트의 인공지능 성능 향상을 위한 프로그래밍 방법cfs9.tistory.com/upload_control/download.blog?fhandle... · 2015-01-22 · A.I. Programming on StarCraft

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 스타크래프트의 인공지능 성능 향상을 위한 프로그래밍 방법cfs9.tistory.com/upload_control/download.blog?fhandle... · 2015-01-22 · A.I. Programming on StarCraft

스타크래프트의

인공지능

성능

향상을

위한 프로그래밍

방법

Programming Method for Improving Performance of Artificial

Intelligence on StarCraft

이상호, 허준영, 조유근

(서울대학교

컴퓨터공학부)홍지만

(광운대학교

컴퓨터공학부)

발표자: 이상호

([email protected])

Page 2: 스타크래프트의 인공지능 성능 향상을 위한 프로그래밍 방법cfs9.tistory.com/upload_control/download.blog?fhandle... · 2015-01-22 · A.I. Programming on StarCraft

Contents

IntroductionRelated WorkArtificial Intelligence Programming on StarCraft

Game SystemProgramming MethodsModified & Improved Artificial Intelligence on StarCraft

Performance EvaluationConclusions and Future Works

Page 3: 스타크래프트의 인공지능 성능 향상을 위한 프로그래밍 방법cfs9.tistory.com/upload_control/download.blog?fhandle... · 2015-01-22 · A.I. Programming on StarCraft

Introduction

‘스타크래프트’의 등장1998년 4월, “Blizzard Entertainment”

‘스타크래프트’의 중요성게임 시장에 큰 변화를 가져옴E-Sports의 발전에 큰 영향을 줌몇 년째 최상의 인기 유지안정적인 사용자 집단 유지상당한 고용 창출 효과…

‘스타크래프트’의 문제점?발전하는 사용자들의 수준에 미치지 못하는 시스템/인공지능발전하지 않는 시스템으로 인한 퇴출 가능성 존재

Page 4: 스타크래프트의 인공지능 성능 향상을 위한 프로그래밍 방법cfs9.tistory.com/upload_control/download.blog?fhandle... · 2015-01-22 · A.I. Programming on StarCraft

Related Work

‘스타크래프트’의 인공지능 프로그래밍 관련 연구ScAIEdit(StarCraft A.I. Editing Tool):

인공지능 스크립트를 바이너리 파일로 변환해 주는 도구

WinMPQ(MPQ Archiving Tool):*.MPQ 파일의 압축을 풀거나 압축을 수행해주는 도구

Brood War A.I. Project:기존의 인공지능 성능 개선 목적의 연구 (Insane A.I.)

‘스타크래프트’의 전략전술 관련 연구http://pgr21.com/

다양한 사용자들에 의한 여러 가지 전략전술 연구

http://gzprotoss.com/프로토스 종족의 전략전술과 관련한 포럼

Page 5: 스타크래프트의 인공지능 성능 향상을 위한 프로그래밍 방법cfs9.tistory.com/upload_control/download.blog?fhandle... · 2015-01-22 · A.I. Programming on StarCraft

A.I. Programming on StarCraft - Game System (1)게임 개요:

세 가지의 다른 종족들(테란, 저그, 프로토스)간의 우주 전쟁실시간 전략 시뮬레이션(Real-time Strategy Simulation) 게임

기본 구성:전장(Field):

게임을 수행하는 공간

자원(Resources):고정적인 미네랄 및 가스 자원 존재이 자원을 사용하여 유닛, 건물 생산 및 특수기술을 연구할 수 있음

유닛(Units): 자원 채취, 건물 짓기공격 및 방어

건물(Buildings):유닛 생산마법 및 특수기술 연구공격 및 방어

마법 및 특수기술(Magical or Technical Skills):유닛들 혹은 건물들에 부여되는 여러 종류의 기술

Page 6: 스타크래프트의 인공지능 성능 향상을 위한 프로그래밍 방법cfs9.tistory.com/upload_control/download.blog?fhandle... · 2015-01-22 · A.I. Programming on StarCraft

A.I. Programming on StarCraft - Game System (2)게임 방법:실시간으로 작업 명령을 내리고, 이를 통하여 상대방과의 전투를 수행상대방보다 효율적인 전략전술을 사용해야 전투에서 승리할 수 있음

예> 초반 마린(Marine) 공격을 감행할 경우,마린을 생산하기 위하여 배럭스(Barracks)를 지어야 한다.여러 기의 마린을 생산하려면 서플라이 데포(Supply Depot)를 지어야 한다.위의 유닛 생산 및 건물 짓기에는 일정 자원이 필요하다.SCV를 통하여 자원을 채취한다.초반 공격은 빠른 시간 내에 이루어져야 한다.빠른 시간 내로 마린을 생산하기 위해서는 자원 수급이 원활해야 한다.자원 수급의 속도를 높이기 위해서는 SCV를 생산해 주어야 한다.SCV의 생산 또한 자원을 소모하므로, 적절한 수를 생산해 주어야 한다.…위의 모든 것을 효과적으로 하려면 어떻게 하겠는가????

이러한 것은 최적화 된 ‘빌드 오더’를 사용함으로써 해결할 수 있다. ☺

Page 7: 스타크래프트의 인공지능 성능 향상을 위한 프로그래밍 방법cfs9.tistory.com/upload_control/download.blog?fhandle... · 2015-01-22 · A.I. Programming on StarCraft

A.I. Programming on StarCraft - Game System (3)게임에서의 인공지능 (개선 되어야 할 인공지능):빌드 오더

목적에 맞는 최적화 된 방법의 사용

공격 유닛들의 구성공격 대상 및 방법에 따른 공격 유닛들의 효율적 구성

공격 및 방어 시점효과적인 공격 및 방어 시점의 선택

유닛 컨트롤유닛의 특성을 활용한 효율적인 유닛 공격 및 이동(회피기동) 명령 제어

전투 진형효율적인 전투를 위한 진형

지형 활용언덕 및 구조물 등의 지형을 활용

Page 8: 스타크래프트의 인공지능 성능 향상을 위한 프로그래밍 방법cfs9.tistory.com/upload_control/download.blog?fhandle... · 2015-01-22 · A.I. Programming on StarCraft

A.I. Programming on StarCraft - Programming Methods (1)

스크립트 프로그래밍을 통하여인공지능 수정 가능

문법 및 명령어:

Page 9: 스타크래프트의 인공지능 성능 향상을 위한 프로그래밍 방법cfs9.tistory.com/upload_control/download.blog?fhandle... · 2015-01-22 · A.I. Programming on StarCraft

A.I. Programming on StarCraft - Programming Methods (2)

Page 10: 스타크래프트의 인공지능 성능 향상을 위한 프로그래밍 방법cfs9.tistory.com/upload_control/download.blog?fhandle... · 2015-01-22 · A.I. Programming on StarCraft

A.I. Programming on StarCraft - Programming Methods (3)

Page 11: 스타크래프트의 인공지능 성능 향상을 위한 프로그래밍 방법cfs9.tistory.com/upload_control/download.blog?fhandle... · 2015-01-22 · A.I. Programming on StarCraft

A.I. Programming on StarCraft - Programming Methods (4)

Page 12: 스타크래프트의 인공지능 성능 향상을 위한 프로그래밍 방법cfs9.tistory.com/upload_control/download.blog?fhandle... · 2015-01-22 · A.I. Programming on StarCraft

A.I. Programming on StarCraft - Modified and Improved A.I. (1)제안한 프로그래밍 방법을 통한 인공지능의 수정 및 개선개선 목표:

기존 프로토스 인공지능의 성능 개선

기존 인공지능의 문제점:단순 주사위 굴리기(랜덤) 식의 빌드 오더 선택비효율적인 빌드 오더공격 유닛 생산의 비효율성공격 유닛 구성에 있어서의 비효율성공격 및 방어 시점의 비 적합성

인공지능의 수정 및 개선 내용:일부 프로게이머 및 고급 사용자들에 의해 제안된 빌드 오더 사용상대방의 종족에 따른 맞춤형 빌드 오더 선택자원 수급 효율 극대화 (적절한 일꾼 유닛 수 확보)공격 유닛의 효율적 구성보다 적절한 공격 및 방어 시점의 선택

Page 13: 스타크래프트의 인공지능 성능 향상을 위한 프로그래밍 방법cfs9.tistory.com/upload_control/download.blog?fhandle... · 2015-01-22 · A.I. Programming on StarCraft

Performance Evaluation - Setup실험 환경사용한 게임 버전:

스타크래프트-브루드워 1.13e사용한 맵:

신 개마고원 2.1 (http://www.ongamenet.com)사용한 인공지능:

프로토스: 제안한 프로그래밍 기법을 사용하여 개선한 것테란, 저그: 기존의 인공지능

실험 방법:Top vs Bottom 으로 컴퓨터 간의 전투를 가능케 하고, 옵저버 모드로 관람

실험 내용수정한 프로토스 1 VS 기존의 테란 1수정한 프로토스 1 VS 기존의 테란 2수정한 프로토스 1 VS 기존의 저그 1수정한 프로토스 1 VS 기존의 저그 2

Page 14: 스타크래프트의 인공지능 성능 향상을 위한 프로그래밍 방법cfs9.tistory.com/upload_control/download.blog?fhandle... · 2015-01-22 · A.I. Programming on StarCraft

Performance Evaluation - Results (1)프로토스 대 테란 (1 대 1 대결)

프로토스 대 테란 (1 대 2 대결)

프로토스 테란

평균

게임

시간 24분

13초

전적 9승

1패 1승

9패

자원

채취

량 26401.04 18295.60

프로토스 테란 + 테란

평균

게임

시간 35분

11초

전적 4승

6패 6승

4패

자원

채취

량 33960.46 53859.16

Page 15: 스타크래프트의 인공지능 성능 향상을 위한 프로그래밍 방법cfs9.tistory.com/upload_control/download.blog?fhandle... · 2015-01-22 · A.I. Programming on StarCraft

Performance Evaluation - Results (2) (** Not in this paper)

프로토스 대 저그 (1 대 1 대결)

프로토스 대 저그 (1 대 2 대결)

프로토스 저그

평균

게임

시간 약

20분

전적 9승

1패 1승

9패

자원

채취

량 약

23000 약

14000

프로토스 저그 + 저그

평균

게임

시간 약

30분

전적 6승

4패 4승

6패

자원

채취

량 약

32000 약

40000

Page 16: 스타크래프트의 인공지능 성능 향상을 위한 프로그래밍 방법cfs9.tistory.com/upload_control/download.blog?fhandle... · 2015-01-22 · A.I. Programming on StarCraft

Conclusions and Future Work

‘스타크래프트’의 인공지능 성능 개선을 위한 프로그래밍 방법 제안ScAIEdit, WinMPQ 도구 사용여러 가지 예제를 통한 프로그래밍 방법 제안기존 인공지능의 개선가능성 타진

제안한 방법을 바탕으로 기존 인공지능의 수정프로토스 인공지능을 수정함

실험을 통한 성능 평가수정한 프로토스 인공지능과 기존의 테란 및 저그 인공지능과의 대결 실험

실험 결과기존 인공지능들에 비하여 상당히 뛰어남을 보임

앞으로의 연구 및 개선다양한 부분에서의 인공지능 업그레이드 시도테란 및 저그의 인공지능의 성능 개선 시도Blizzard Entertainment 사에 ver.1.14 패치 제작 요청

Page 17: 스타크래프트의 인공지능 성능 향상을 위한 프로그래밍 방법cfs9.tistory.com/upload_control/download.blog?fhandle... · 2015-01-22 · A.I. Programming on StarCraft

Thank you! ☺