스타크래프트Ⅱ 5

스타크래프트 2 봇 개발 일지-3(Ocraft)

지난 번에 건설 작업 후 놀고 있는 일꾼에게 다시 명령을 내리는 것을 했었습니다. 이번에는 배럭 건설 및 마린 생산, 그리고 최종적으로 공격이다. 필수 메소드 private int countUnitType(Units unitType) { return observation().getUnits(Alliance.SELF, UnitInPool.isUnit(unitType)).size(); } 위 메소드는 해당 유닛 종류가 몇 기나 있는 지 반환해주는 메소드이다. 병영 건설 private void tryBuildBarracks() { if (countUnitType(Units.TERRAN_SUPPLY_DEPOT) < 1) { return; } if (countUnitType(Units.TERRAN_BARRACKS..

스타크래프트 2 봇 개발 일지-2(Ocraft)

지난 번에는 SCV 건설, 그리고 보급고 건설을 하였습니다. 이번에는 건설 직후, SCV가 노는 경우, 다시 작업에 착수하기 위한 코드를 작성할 것입니다. 일꾼 관리 스타크래프트2 같은 경우, 게임시작과 동시에 미네랄로 자동으로 보내주지만 그이후부터는 플레이어가 알아서 조절을 해야합니다. 그렇기때문에 건물 건설 등과 같은 미네랄 채취 외에 작업이 주어진 후에는 수동으로 다시 채취하도록 해야합니다. 보통 건물이 다 지어지면 자동으로 shift + 미네랄 우클릭을 해서 건물이 다 지어진 후 즉시 미네랄 채취 명령합니다. 이와 같이 개발하기 위해 제일 가까운 미네랄 하나를 찾아서 반환하여 놀고 있는 SCV에게 다시 미네랄을 채취하도록 합니다. private Optional findNearestMineralPa..

스타크래프트 2 봇 개발 일지-1(Ocraft)

지난 번에는 기본적으로 스타크래프트2 봇을 테스트를 해보았습니다. 이번에는 일꾼 생산 및 보급고 건설을 해볼 겁니다. 일단 일꾼 생산 같은 경우에는 onUnitIdle 메소드를 오버라이딩하여 일하는 유닛들을 가져옵니다. UnitInPool 이라는 클래스가 어떤 클래스인지 그리고 어떤 방식으로 진행이 되어가는 지 잘 파악하지 못하였기때문에 원리를 제가 이해한 방식대로 한다면 UnitPool에 저장되고, UnitInPool에 인스턴스화된 것들을 가지고 오는 것 같습니다. SCV 생산 @Override public void onUnitIdle(UnitInPool unitInPool) { Unit unit = unitInPool.unit(); // 아직도 이해 못함 원리를 switch ((Units) unit...

스타크래프트 2 봇 개발 일지-1(Ocraft)

좋은 새해 아침입니다. 새해는 아침을 보기 위해 날을 새고 친구들과 디코 통화를 했습니다. 덕분에 카페인에 절여진 기분이 듭니다. 스타크래프트 2 봇을 개발 일지를 작성하기 전 확인해주세요! 먼저 언어는 C++로 할려고 했지만 아직 C++를 자세히 몰라서 JVM언어인 Java, Kotlin, Python으로 할 예정입니다. C++는 나중에 기회가 된다면 시도해보도록 하겠습니다. (죄송합니다. (>人<;)) Jvm 같은 경우에는 Ocraft-s2client라는 블리자드의 공식 api인 s2client-api를 자바로 Wrapper 처리한 api를 사용합니다. Python 같은 경우에는 구글의 deepmind팀의 api인 pysc2를 사용합니다. 일단 2가지 방식 둘 다 게시할 계획이기에 Ocraft-s2c..

스타크래프트 2 봇 개발 일지-0

스타크래프트 봇 개발을 마무리 짓고 스타크래프트2 봇으로 다시 돌아왔습니다. 압생트 봇 글을 보신 분들은 알겠지만 Python을 사용해서 개발을 하였습니다. 이제부터 작성할 글인 스타크래프트2 봇 개발 일지는 파이썬 외에도 자유롭게 스타크래프트2 봇 개발과 관련된 글들을 올리는 개발 일지입니다. 겨울 방학 기간(2022-01-01 ~ 2022-02-01) 동안 하루에서 이틀 사이마다 제가 개발을 하며 맞추친 버그, 오류, 그리고 구현한 기능, 해결 등등 스타크래프트2 봇과 관련해서는 무엇이든지 올릴 계획입니다. 현재 스타크래프트 봇 동아리가 터진 이시점에서 정보가 부족한 스타1 보다는 스타2로 넘어갈도 생각 중에 있어 혹여나 스타크래프트2로 하게 된다면 좋은 글로 남기를 바랍니다. 그리고 개발 일지를 하..