스타크래프트의인공지능성능향상을위한프로그래밍방법 Programming Method for Improving Performance of Artificial Intelligence on StarCraft 이상호, 허준영, 조유근 ( 서울대학교컴퓨터공학부 ) 홍지만 ( 광운대학교컴퓨터공학부 ) 발표자 : 이상호 (shyi@ssrnet.snu.ac.kr)
Contents Introduction Related Work Artificial Intelligence Programming on StarCraft Game System Programming Methods Modified & Improved Artificial Intelligence on StarCraft Performance Evaluation Conclusions and Future Works
Introduction 스타크래프트 의등장 1998 년 4 월, Blizzard Entertainment 스타크래프트 의중요성 게임시장에큰변화를가져옴 E-Sports 의발전에큰영향을줌 몇년째최상의인기유지 안정적인사용자집단유지 상당한고용창출효과 스타크래프트 의문제점? 발전하는사용자들의수준에미치지못하는시스템 / 인공지능 발전하지않는시스템으로인한퇴출가능성존재
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/ 프로토스종족의전략전술과관련한포럼
A.I. Programming on StarCraft - Game System (1) 게임개요 : 세가지의다른종족들 ( 테란, 저그, 프로토스 ) 간의우주전쟁 실시간전략시뮬레이션 (Real-time Strategy Simulation) 게임 기본구성 : 전장 (Field): 게임을수행하는공간 자원 (Resources): 고정적인미네랄및가스자원존재 이자원을사용하여유닛, 건물생산및특수기술을연구할수있음 유닛 (Units): 자원채취, 건물짓기 공격및방어 건물 (Buildings): 유닛생산 마법및특수기술연구 공격및방어 마법및특수기술 (Magical or Technical Skills): 유닛들혹은건물들에부여되는여러종류의기술
A.I. Programming on StarCraft - Game System (2) 게임방법 : 실시간으로작업명령을내리고, 이를통하여상대방과의전투를수행 상대방보다효율적인전략전술을사용해야전투에서승리할수있음 예 > 초반마린 (Marine) 공격을감행할경우, 마린을생산하기위하여배럭스 (Barracks) 를지어야한다. 여러기의마린을생산하려면서플라이데포 (Supply Depot) 를지어야한다. 위의유닛생산및건물짓기에는일정자원이필요하다. SCV 를통하여자원을채취한다. 초반공격은빠른시간내에이루어져야한다. 빠른시간내로마린을생산하기위해서는자원수급이원활해야한다. 자원수급의속도를높이기위해서는 SCV 를생산해주어야한다. SCV 의생산또한자원을소모하므로, 적절한수를생산해주어야한다. 위의모든것을효과적으로하려면어떻게하겠는가???? 이러한것은최적화된 빌드오더 를사용함으로써해결할수있다.
A.I. Programming on StarCraft - Game System (3) 게임에서의인공지능 ( 개선되어야할인공지능 ): 빌드오더 목적에맞는최적화된방법의사용 공격유닛들의구성 공격대상및방법에따른공격유닛들의효율적구성 공격및방어시점 효과적인공격및방어시점의선택 유닛컨트롤 유닛의특성을활용한효율적인유닛공격및이동 ( 회피기동 ) 명령제어 전투진형 효율적인전투를위한진형 지형활용 언덕및구조물등의지형을활용
A.I. Programming on StarCraft - Programming Methods (1) 스크립트프로그래밍을통하여인공지능수정가능 문법및명령어 :
A.I. Programming on StarCraft - Programming Methods (2)
A.I. Programming on StarCraft - Programming Methods (3)
A.I. Programming on StarCraft - Programming Methods (4)
A.I. Programming on StarCraft - Modified and Improved A.I. (1) 제안한프로그래밍방법을통한인공지능의수정및개선 개선목표 : 기존프로토스인공지능의성능개선 기존인공지능의문제점 : 단순주사위굴리기 ( 랜덤 ) 식의빌드오더선택 비효율적인빌드오더 공격유닛생산의비효율성 공격유닛구성에있어서의비효율성 공격및방어시점의비적합성 인공지능의수정및개선내용 : 일부프로게이머및고급사용자들에의해제안된빌드오더사용 상대방의종족에따른맞춤형빌드오더선택 자원수급효율극대화 ( 적절한일꾼유닛수확보 ) 공격유닛의효율적구성 보다적절한공격및방어시점의선택
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
Performance Evaluation -Results (1) 프로토스대테란 (1 대 1 대결 ) 프로토스테란 평균게임시간 24 분 13 초 전적 9승 1패 1승 9패 자원채취량 26401.04 18295.60 프로토스대테란 (1 대 2 대결 ) 프로토스테란 + 테란 평균게임시간 35 분 11 초 전적 4승 6패 6승 4패 자원채취량 33960.46 53859.16
Performance Evaluation - Results (2) (** Not in this paper) 프로토스대저그 (1 대 1 대결 ) 프로토스저그 평균게임시간 약 20 분 전적 9승 1패 1승 9패 자원채취량 약 23000 약 14000 프로토스대저그 (1 대 2 대결 ) 프로토스저그 + 저그 평균게임시간 약 30 분 전적 6승 4패 4승 6패 자원채취량 약 32000 약 40000
Conclusions and Future Work 스타크래프트 의인공지능성능개선을위한프로그래밍방법제안 ScAIEdit, WinMPQ 도구사용 여러가지예제를통한프로그래밍방법제안 기존인공지능의개선가능성타진 제안한방법을바탕으로기존인공지능의수정 프로토스인공지능을수정함 실험을통한성능평가 수정한프로토스인공지능과기존의테란및저그인공지능과의대결실험 실험결과 기존인공지능들에비하여상당히뛰어남을보임 앞으로의연구및개선 다양한부분에서의인공지능업그레이드시도 테란및저그의인공지능의성능개선시도 Blizzard Entertainment 사에 ver.1.14 패치제작요청
Thank you!