스타봇/스타봇 강의 및 개발

스타크래프트 봇 강의 준비편

오잎 클로버 2021. 12. 16. 13:40
728x90

시험이 끝났기에 예정대로 스타봇 개발을 약간 강의 방식으로 글을 쓰도록 하겠습니다.

 

기존에 있던 것들은 전부 보호 처리하였습니다. 

혹시라도 읽고 싶은 분들이 계신다면 아래에 전부 있으니, 

참고해주시길 바랍니다.

더보기

 

 

그래서 처음부터 다시 약간 강의라면 강의 방식으로 자바를 조금이라도 아시는 분들을 위해 개발을 하였습니다.

복잡한 로직들은 왠만해서는 배제하였습니다.

 

이번 편은 제목처럼 스타봇을 개발을 하기 위해서는 어떤 것이 필요하고, 어떤 지식이 요구되는 지에 대한 설명, 그리고

초기 준비 단계를 설명하는 것으로 마무리할 것입니다.

 

먼저 이글은 스타크래프트를 플레이해보지않으신 분들은 이해하기 어려울 수 있습니다.

또, 스타크래프트 2 가 아닌 StarCraft Brood War 용 봇임을 미리 알립니다.

개발 언어는 C++이 아닌 Java임 역시 미리 알립니다.

이 점 양해 부탁드립니다.

 

 

스타크래프트 봇 (StarCraft Bot),

스타크래프트를 활용하여 개발하는 인공지능

...이라고 말할 수 있습니다.

 

제가 생각하였을 때에는 '스타크래프트 봇 = 사람만큼 플레이 가능하다. ' 고 생각하기에

'사람이 할 수 있다면 봇 역시 수행 가능하다.' 고 생각합니다.

 

기초적인 기능들인 '미네랄 채취', '건물 건설', '공격', '정찰', '유닛 생산' 뿐만 아니라

'가스 채취', '심시티', '정찰 방해', '자원 견제', '유닛 컨트롤', '전략 판단' 등과 같은 복잡한 고급 기능들 역시

수행할 수 있어야합니다.

 

 

스타크래프트를 개발하기 위해서는 필수 요소가 크게 3가지가 있습니다.

1) 스타크래프트

2) 스타크래프트의 배경 지식

3) 스타크래프트 봇 개발용 API 및 에디터 

 

먼저 스타크래프트를 개발하기 위해서는 당연하겠지만, 스타크래프트가 필요합니다.

그렇기에 아래 링크를 통해 스타크래프트를 설치해주세요.

http://www.cs.mun.ca/~dchurchill/startcraft/scbw_bwapi440.zip

용량이 거의 100MB이기 때문에 설치하면서 다른 것들 역시 같이 다운로드를 받습니다.

 

그리고 이 스타크래프트의 전/후처리를 이어주는 데 사용되는 API인 BWAPI를 설치합니다.

아래 링크 참고해서 현재 제일 최신 버전인 4.4.0 버전을 다운로드 해주세요.

https://github.com/bwapi/bwapi/releases/tag/v4.4.0

셋업 파일을 다운로드하시면 됩니다.

아마 스타크래프트 보다 BWAPI가 먼저 설치 완료가 될지 싶은 데요.

 

BWAPI_Setup.exe를 실행시켜

셋업 프로그램을 실행시키면 위와 같은 창이 뜬다.

I accept the agreement를 체크하시고 Next 버튼을 누릅니다.

 

 

대충 아무대나 위치를 설정하시고 Next 버튼을 누릅니다.

그냥 Full Installation 하셔도 놓치거나 하는 거 없으니 그냥 Next

그러면 다운로드가 진행됩니다.

 

그리고 에디터를 설치합니다.

저 같은 경우에는 인텔리제이를 사용합니다.

아래 링크에서 다운로드 받으시면 됩니다.

https://www.jetbrains.com/ko-kr/idea/download/#section=windows

 

위치는 기본으로 해주는 위치로 하시거나 아니면 알아서 변경해주세요.
여기서 .groovy, .kt, .kts 빼고 다 체크하신다음 Next 해주세요.

인텔리제이가 설치되는 동안 스타크래프트가 다 설치가 되었을 겁니다.

인텔리제이가 다 설치가 되시면 리부트(재시작) 하신다음 

 

스타크래프트 파일을 압축을 풀어줍니다.

 

그리고

ChaosLauncher를 실행합니다.

카오스 런처는 BWAPI 설치하셨던 위치에

../BWAPI/Chaoslauncher/ 에 있습니다.

 

 

Chaoslauncher - MutliInstance.exe 을 관리자 실행으로 실행해주세요.

그러면 스타크래프트 위치가 지정되지않았다는 메시지가 아마 뜰 겁니다.

 

 

그러면 Installpath 에서 스타크래프트 파일을 찾아 설정한 뒤, Diagnose 를 눌러 다시 실행해줍니다.

 

APMAlert는 현재 APM이 나오고, APM이 낮으면 붉은 색 텍스트로 바뀝니다.

BWAPI 4.4.0 Injector [RELEASE]가 보통 사용할 설정입니다.

DEBUG는 디버깅으로 잘 사용하지 않을 겁니다.

Chaosplugin 는 봇 개발보다는 봇 vs 플레이어 가 진행할 때 플레이어가 보통 설정합니다. (윈도우 키 막기, Caps Lock 끄기 등등)

등등 여러 많은 기능들이 있지만

위 그림처럼만 세팅하고 Start 하면 아래와 같은 화면 나올 겁니다.

Single Player -> Expansion -> Ok -> Play Custom -> 맵 설정 후 -> Ok

하시면 위와 같이 나올 겁니다.

(아마 Starter 로 나오실 텐데, 저같은 경우에는 Hodori로 하였습니다.)

 

 

인텔리제이가 설치 완료 되었다면

https://www.oracle.com/kr/java/technologies/javase/javase8u211-later-archive-downloads.html

에 들어가서 jdk (저같은 경우에는 jdk-8u291-windows-i586.exe 를 사용하고 있습니다)

JDK 설치 후, 인텔리제이를 실행하셔서

NEW PROJECT 로

 

중 Gradle 로 선택하시고

위 처럼 설치한 jdk로 설정하여줍니다. 그다음 Next를 하고

Name은 프로젝트명 (ArtifactId 하고 동일)

Location은 프로젝트 위치

GroupId는 도메인 거꾸로 (예시] workshop6349.tistory.com -> com.tistory.workshop6349)

Version은 버전입니다.

FINISH를 누르셔서 프로젝트를 생성합니다.

 

프로젝트 초기 세팅이 로딩이 조금 걸리기 때문에

그때동안 할게 없으시면 SSCAIT나 COG, AIIDE 등 스타크래프트 봇 대회 들을 보시면서 앞으로 이런것들을 개발할 수도 있구나 라고만 생각하시면 됩니다.

 

세팅이 완료가 되면

build.gradle 에서

대충 위처럼 되어있긴 할텐데

dependencies 에는 'com.github.JavaBWAPI:JBWAPI:1.5.1' 이라는 것은 아마 없으실 겁니다.

 

저희는 맨처음에 말했듯이 C++이 아닌 Java를 사용하여 개발할 것이기 때문에

JBWAPI 이라는 라이브러리가 추가로 필요합니다.

위 그림처럼 적어주신 뒤, gradle reload (단축키: shift + o)를 합니다.

 

지금까지 세팅하는 데 오류가 나지않았다면 제대로 설정한 것입니다.

다음 글부터는 본격적으로 개발을 하는 글입니다.

 

이상입니다.