PGR21.com
Date 2008/09/11 01:50:01
Name 상호씨
File #1 protoss_vs_zerg.jpg (40.6 KB), Download : 213
File #2 protoss_vs_terran.jpg (32.6 KB), Download : 144
Link #1 http://antiroot.tistory.com/19
Link #2 http://antiroot.tistory.com/31
Subject 스타크래프트 컴퓨터 인공지능 프로그래밍 방법을 다뤄볼까요?




** 먼저, 위에 보이는 캡쳐 화면은, 실제로 수정된 컴퓨터 인공지능으로 동작하는 프로토스입니다.
    (병력을 상당히 많이 (?) 보유하고 있죠.)
------------------------------------------------------
안녕하세요?

가입한 지는 한 2년 넘은 것 같은데, 답글 한 개 정도 달아본 것 빼고는, 첫 글입니다. ^^;;

(자음 이모티콘을 못 쓰게 되어있던가요? 흠흠)

아무튼, 과거에 (약 3년 전 부터,) 스타크래프트의 컴퓨터 인공지능을 바꿔보고자 노력해온 내용을 PGR21에 공개할까 합니다.

가끔 시간 날 때, 게임이 지겨울 때, 띄엄 띄엄 연구하다보니, 연구 내용도 빈약하긴 하지만요.

예전, BWAI PROJECT (BroodWar AI Patch Project), 혹은 향상된 AI 라고 해서 배포된 인공지능 패치를 아실 것입니다.

이것도 인공지능 향상 관련 연구의 하나입니다. (비록 치트 코드를 써서 자원을 무한대로 사용하긴 하지만요.)
----------------------------------------------------

이제, 본론으로 들어가죠.

배틀넷을 가끔 접속해서 게임을 하던 저는, 어느날 부턴가 배틀넷 공방 양민 수준이 된 저의 실력을 깨닫고는, 게임을 열심히 해봐야 따라잡기는 힘들다는 생각을 하게 됩니다.
(한 때는, 프로게이머 친구도 있었고, 대회 우승도 했었지만요;; 1.03 버전의 오리지널 시절이죠 그게;; )

그래서, 생각을 바꿔서, 컴퓨터의 인공지능을 개선시키기로 마음을 먹습니다.

먼저, BWAI PROJECT 관련 문서를 찾아본 결과, 스타크래프트 게임 시스템에서 '컴퓨터 인공지능'을 수정할 수 있음을 알게 됩니다.

이것은, Patch_rt.mpq 파일 내에 존재하는 aiscript.bin 파일을 수정함으로써 가능합니다.

자세한 설명은, 제가 예전에 발표했던 여러 논문들에 자세히 나와있는데, 이것은 제 블로그 (링크 참조) 를 참조해 보시면 되겠습니다.
- http://antiroot.tistory.com 혹은, 본 글의 링크 1, 2번을 참조하세요.

수정 가능한 인공지능의 수준은, 전략 & 전술 중, '전략' 부분 입니다.

예를 들면, 1) 빌드 오더, 2) 공격 & 수비 시점, 3) 실시간 전략 선택 정도가 되겠군요.

'전술' 에 해당되는 부분인, 1) 유닛 컨트롤, 2) 지형 활용, 3) 건물 배치 등은 수정하기 어려운 형태로, 스타크래프트 게임 시스템 내부에 감춰져 있는 상태입니다. (물론, 이것도 크래킹에 성공하면, 수정할 수는 있겠죠?)

어쨌든, 수정해 봤습니다.

빌드 오더를 프로그래밍 하는 방법은 블로그에 잘 써놨으니, 한번 참고해 보세요. 재미있을겁니다.

수정된 컴퓨터 인공지능 (수정된 프로토스) vs. 기존 컴퓨터 인공지능 (기존 테란) 을 실험한 결과,

수정된 컴퓨터 1 vs. 기존 컴퓨터 1의 싸움은 거의 90% 중후반의 확률로 수정된 컴퓨터가 이깁니다.

수정된 컴퓨터 1 vs. 기존 컴퓨터 2의 싸움은 거의 4~50% 의 확률로 수정된 컴퓨터가 이깁니다. (1 대 2 싸움이 비등비등 하죠)

이를, '렌체스터 공식'을 적용해서 평가해 보면, 수정된 컴퓨터는 기존 컴퓨터에 비해 4배정도 성능이 뛰어납니다.
(렌체스터 공식은, 병력과 공격력의 관계가 제곱 관계라는 것입니다.)


현재까지, 약 4편의 논문이 발표된 바 있으니, 시간 되는대로 블로그, 혹은 이곳에 정리해서 올려보겠습니다.

관심 있으신 분은 제 블로그에 있는 글을 자세히 읽어보시기 바랍니다. ^^

(너무 성의 없이 포스팅을 해놔서, 좀 다듬어야 할 필요가 있는데, 조만간 하겠습니다.)

/* 멀티라인 주석을 남발하는 copyleft yi_sang */

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
와후-만세
08/09/11 18:53
수정 아이콘
와, 정말 대단합니다. 컴퓨터의 인공지능이 향상된다면 그보다 즐거운 일이 없겠군요.
좋은 결과 내시기를 기대합니다!
08/09/12 10:30
수정 아이콘
이 인공지능에다 aiw3프로그램였나요? 하여튼 insane 모드처럼 5분마다 자원 2000씩 주면 꽤나 할만할 것 같습니다.
A certain romance
08/09/12 14:46
수정 아이콘
자원주는건 별로 안좋아 보입니다.
인간만큼 강한 컴퓨터랑 붙는게 매력이 아니라
인간처럼 정찰하고 인간처럼 전략전술을 쓰는 컴퓨터랑 붙는게 매력이죠.
상호씨
08/09/12 19:57
수정 아이콘
와후-만세// 좋은 결과를 내고 싶습니다만, 제가 골수까지 테란 유저인지라, 플토는 어떻게 해보겠는데, 저그는 정말 못해먹겠더군요. 저그 빌드오더 트리좀 사뿐하게 그려주실 수 있는 분이 필요해요. ^^

특히, 저그는 해처리 - 오버로드 - 드론 숫자를 잘 맞춰야 유닛이 팍팍팍 잘 나올텐데, 그걸 잘 못하겠더라구요. 테크 타기는 저그가 젤 쉬워보이는데.;;;

저그 종족에 대해서 도와주실 분을 찾습니다! ^^

생각 있으신 분은 제 블로그에 있는 참고 문헌들 보시면 도움이 될 것 같습니다.

필요하다면, 제가 자세한 프로그래밍 방법 설명을 글로 올릴 수도 있구요. ^^
상호씨
08/09/12 20:05
수정 아이콘
뻘이// 저는 그 자원 2000 씩 주는 것이 별로 좋아 보이지 않아서, 이걸 하게 되었습니다.

지금 어느 정도 까지 되냐면,

완전 지상형 맵에서 (헌터나 신 개마고원), 상대방 (컴퓨터던 테란이던) 테크트리 쌓아가는 것, 혹은 유닛 뽑는 상황에 따라, 방어 및 공격, 그리고 테크트리의 빌드 오더를 결정합니다.

예> 상대방이 저그이고, 4드론 내지는 9드론을 한다. (4, 5, 6, 7, 8, 9 드론)
- 스포닝 풀이 빨리 완성될 것이고, 이는 인공지능 스크립트의 명령어 (enemyowns_jump spawning_pool label1) 로 알 수 있다.
- 스포닝 풀이 빨리 완성된 사실을 알았다면, 벙커를 짓고 마린을 넣는다.
(컴퓨터 테란은 마이크로 컨트롤이 안되므로, 매크로 컨트롤?인 벙커로 방어해야 하겠죠.)
(컴퓨터 저그도 마이크로 컨트롤을 못 하므로, 아마 벙커를 먼저 부시려고 할 것입니다. ^^)

예> 상대방이 플토이고, 초반에 테크 건물을 안 올리고 더블 넥서스를 시도한다.
- 캐논을 지었다면, 공격 명령을 내리지 않고, 빠른 테크를 탄다.
(테란이라면, 투팩을 바로 갈 수 있겠죠)
- 캐논이 없다면, (게이트웨이도 없다면), 내가 가진 공격 유닛으로 선제 공격을 시도한다.
(테란이라면, 초반 마린 2~3기 정도 보내면 되겠죠. 어짜피 컴터대 컴터 싸움이니 컨트롤의 대상이 되지 않는 일꾼은 싸움을 하기 어렵습니다.)

뭐 이정도입니다.
- 업그레이드, 확장, 기타 등등도 가능하긴 하죠.

공중 공격 유닛에 대한 프로그래밍은 아직 되어있지는 않습니다.

개선의 여지가 많은데, 저 혼자 하기가 좀 벅차군요.

누군가 저그 종족에 대해 도와 주시면, 서로 간에 테란 vs 저그 인공지능 대결도 해볼 수 있을 것 같은데요. ^^
실루엣게임
08/09/12 21:58
수정 아이콘
그 몬티홀같은 미네랄로 막혀있는 지형에서 확장이나 공격을 못하고 뱅뱅 돌던문제.. 수정이 되었...을까요 (..)
와후-만세
08/09/13 00:46
수정 아이콘
저그(...)는 일단 정형화된 빌드오더가 없어서... 정말 까다롭겠습니다.
상호씨
08/09/13 01:14
수정 아이콘
미네랄로 막힌 지형은 해보지 못했지만, 아마 뱅뱅 돌지 않을까 하네요.
상호씨
08/09/13 01:19
수정 아이콘
일단, 이 토론 게시판에 올린 사연은 다음과 같습니다.

1) 인공지능 성능 향상을 위해 인공지능 프로그래밍 대회를 열어보면 어떻겠느냐는 것입니다.
- 자바 프로그래밍으로, 탱크의 인공지능 프로그래밍 대회가 있죠? 로보코드라고.. 이는 IBM에서 스폰서를 하는 거라 대회 참여가 활발하죠.
- 일단, 인공지능 프로그래밍 대회를 PGR21내에 있는 사람에서 부터 시작해보면 어떨까 합니다.
- 프로그래밍 방법을 이해하는 것은 매우 쉽습니다. 스타크래프트의 빌드 오더를 명령어 화 해놓은 것일 뿐이니까요.

2) 저그 인공지능 성능 개선을 도와주실 분을 찾습니다.
- 앞의 1)번에 써놓은것 처럼 프로그래밍 대회를 열어도 좋지요. 그럼 저그 종족을 선택하는 사람도 있을테니깐요.

일단, 다른 분들의 의견을 들어보고 싶습니다.
답글을 달아주세요!!~~
꿀호떡a
08/09/13 02:10
수정 아이콘
재밌겠는데요 :)~ 추진해보시면 어떨까요?
바보탱이
08/09/14 13:50
수정 아이콘
호기심에 한번해봤는데 생각보다 문법은 간단하더군요 재미있어요~
근데 문법 좀 더 자세하게 나와있는 메뉴얼 같은건 없나요?
노가다로 일일히 하려니까 조금 힘드네요
08/09/14 14:32
수정 아이콘
오 재미있을 것 같네요. 한번 해보고 싶은데 혹시 패치파일 받아볼수 없을까요.
즐거운하루
08/09/15 13:15
수정 아이콘
컴퓨터 vs 컴퓨터의 대결을 옵저버로서 관찰이라 마치 예전 카이스트 드라마에서 나오던 로봇 축구를 보는 듯한 기분일 거 같네요.
마술사얀
08/09/15 21:12
수정 아이콘
질문이 있는데요.. Patch_rt.mpq 파일을 WinMPG 1.64 로 열어보았는데.
파일 이름이 모두 unknown 으로 나와요.
BrooDat.mpq 를 열어보면 제대로 나오는데. 뭐가 문제인지 모르겠네요..
Dementia-
08/09/15 22:03
수정 아이콘
컴퓨터는 뮤탈 컨트롤을 할 수가 없는 관계로 저그는 좀 어렵겠군요.
상호씨
08/09/16 02:03
수정 아이콘
꿀호떡/ 넵, 조만간 추진해 보겠습니다.
상호씨
08/09/16 02:03
수정 아이콘
바보탱이/ 제가 작업했던, 여러 소스코드와 주석 등을 살펴보시는게... 일단 메일 주세요.
상호씨
08/09/16 02:05
수정 아이콘
axon/ 패치파일은, 블로그에 답글 달아주시면, 일괄 메일로 보내드릴게요.

즐거운하루/ 네, 그런 기분입니다. 로봇 축구도 한때 다뤘었는데, 딱 그기분이 들더라구요. 하하하.
상호씨
08/09/16 02:10
수정 아이콘
마술사얀/ unknown 으로 나오나요? 그럴 때는, 잘 열리는 예전 버전의 Patch_rt.mpq 를 열어서, 거기서 인공지능 수정 후, 버전을 1.15.3 으로 패치하는 방법이 있습니다. 이렇게 하면, 이후에 WinMPQ 를 써서 압축을 풀면, 스크립트파일을 볼 수 있을겁니다.
위의 방식이 어렵다면, 기존 unknown 들에 scripts\aiscripts.bin 을 추가로 탑재시키면, 수정된 인공지능으로 동작합니다.

Dementia-/ 뭐, 컴퓨터는 어택땅 시, 프로토스가 가장 유리한 듯도 싶습니다.
08/09/16 16:18
수정 아이콘
인공지능 싸움하면 가장 쎈것이 초반에 일꾼 한마리 빼서 상대방 본진 공격하고 튀기... 일꾼 다 따라 나오죠 -_-;;
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
1758 [개신교 계층] 일본이 선교의 불모지인 이유에 대한 생각 [316] RPG Launcher19214 12/04/29 19214
1753 pgr에서의 정치글에 관하여 (댓글에 나타난 의견들 종합하여추가) [41] 김연아이유리10697 12/04/12 10697
1752 투표 무조건적으로 해야 옳은가??? [79] 꼬미량13811 12/04/11 13811
1750 '빨갱이'란 표현, PGR에서 어떻게 취급될 것인가? [67] jjohny=Kuma11771 12/04/07 11771
1749 스포츠 편중 현상 - 조직적인 음모는 존재하는가? [164] 항즐이17127 12/04/06 17127
1744 소녀시대는 정녕 김연아가 될 수 없는가 [67] 다음세기17355 12/02/25 17355
1743 작은 하마 이야기와 관련해서 내용의 수위와 돌려쓰는 언어에 대해서 어떻게 생각하십니까? [58] ギロロ[G66]12790 12/02/24 12790
1742 공무원 혹은 준 공무원 신분인 사람의 현직 대통령에 대한 비난&비하 발언은 자유로운가? [26] 레몬커피12577 12/02/12 12577
1740 이명박 대통령의 '게임은 공해다' 발언, 어떻게 생각하십니까? [62] 막강테란13682 12/02/05 13682
1739 입시 제도 개혁에 관해.. [93] 율리우스 카이사르10892 12/02/01 10892
1738 필립모리스마저 담배값 오르네요. KT&G도 담배값 오를까요?? [43] 웨브신11377 12/01/31 11377
1736 다문화 사회. 어떻게 생각하시나요? [31] 울랄라세션11117 12/01/24 11117
1735 현 스마트폰 사용실태에 대한 저의 생각. 여러분은 어떻게 생각하시나요? [21] Right11932 12/01/24 11932
1732 fta와 한우 아사 문제 [42] 동동동3310488 12/01/14 10488
1730 한게임 또는 넷마블 포커게임에 승부조작이 있다. vs 없다. [44] 純粹理性23871 11/12/28 23871
1728 남북 통일 vs 중국의 북한 흡수 [30] Yesterdays wishes13209 11/12/26 13209
1727 치욕의 역사: 조선은 자립할 수 있었을까? [49] LenaParkLove13606 11/12/17 13606
1724 대한민국 대통령은 경제(성장/하락)에 주도적인 영향력을 행사하는가. [32] 凡人11543 11/12/02 11543
1723 상습적 분란유도 유저를 어떻게 대해야 하는가? [61] iuy213924 11/12/01 13924
1722 한미 FTA 반대 근거와 현 야당의 자세에 대해서 [31] Yesterdays wishes10201 11/11/25 10201
1721 지하철 요금의 현실화,,얼마가 적당하다고 생각하시나요? [35] 부끄러운줄알아야지11905 11/11/24 11905
1720 일본 방사능에 대한 당신의 견해 [29] 왕까부리10152 11/11/23 10152
1717 소율아빠가 육아 문제를 여러분에게 묻습니다. [29] BULA8981 11/11/17 8981
목록 이전 다음
댓글

+ : 최근 6시간내에 달린 댓글
+ : 최근 12시간내에 달린 댓글
맨 위로