DGSW-StarcraftClub-CivilWar 4

스타크래프트 봇 동아리, 내전용 봇 개발 (#6)

이제부터 작업할 기능들은 꼭 필요한 기능들은 아니지만 있으면 쓸만한 기능들 중 하나인 '카이팅'을 구현해보고자 한다. 카이팅이란? '공격과 공격 사이에는 텀이 생긴다'는 게임 시스템을 이용한 것이다. 어차피 연타한다고 공격이 더 빨리 나가는 것도 아니니, 그 텀을 다음 공격을 하기 좋게, 상대의 공격을 회피하기 위해 이동하는 데 쓰는 것. 즉, 공격, 공격, 공격...이 아니라 공격, 이동, 공격, 이동...식으로 조종하는 것을 의미한다. 저그 유닛 가운데 카이팅을 할 만한 유닛은 두 가지뿐이다. '히드라리스크'와 '뮤탈리스크'인데, 그중 이번에 해볼 유닛은 '히드라리스크'이다. 먼저 코드부터 확인하자면 private void hydraKite(Unit unit, Unit target) { if (uni..

스타봇 2021.07.14

스타크래프트 봇 동아리, 내전용 봇 개발 (#4)

스타크래프트를 복잡하게 생각하지 않고 단순하게 생각하자면 공·수 게임이다. 공격과 수비를 번갈아가며 플레이를 하는 게임이다. 저자가 생각한 바로는 상대방이 빠른 러쉬를 한다면 그에 맞대응하기위해 저글링으로 방어를 하고 어느정도 병력이 쌓이면 공격을 간다라는 것은 스타크래프트를 해본 플레이어라면 모두가 아는 사실일 것 이다. 또, 대부분의 유닛을 집결시키는 곳은 앞마당 혹은 본진 길목이다. 봇 역시 길목에 배치를 시키되, 조건을 하나 추가하자면 앞마당을 먹었다면 앞마당 길목로 집결시키고, 본진뿐이라면 본진 길목으로 집결시킨다. 이를 구현하고자 기존 코드를 뜯어고쳤다. // 공격 모드가 아닐 때에는 전투유닛들을 아군 진영 길목에 집결시켜서 방어 if (!isFullScaleAttackStarted) { Ch..

스타봇 2021.07.12

스타크래프트 봇 동아리, 내전용 봇 개발 (#2)

스타크래프트에서 무엇보다도 가장 중요한 것은 '정찰'이다. 정찰을 통해 현재 적의 전략, 그리고 적의 위치등을 파악을 하기위해서는 정찰이 필수이다. BasicBot에도 충분히 정찰 기능이 존재하나 추가적으로 더 효율적인 정찰 기능을 추가하고자 오버로드 첫 정찰과 드론의 정찰을 업그레이드하고자한다. 저그는 게임 시작시, 오버로드 1기를 주어 빠르게 정찰을 시작할 수 있다. 하지만 오버로드의 속도가 매우 느리기에 스포닝풀을 올리고 나서도 기지를 겨우 하나 돌 정도로 느리다. 그러기에 스포닝풀이 지어졌는 데도 적군 기지를 찾지 못하였다면 드론을 정찰을 보내고자한다. 먼저 GameCommander에서 onStart메소드에서 오버로드 찾아 정찰기로 지정한다. for (Unit unit : MyBotModule.B..

스타봇 2021.07.12

스타크래프트 봇 동아리, 내전용 봇 개발 (#1)

방학동안 종족에 상관없이 스타크래프트 봇을 완성하여 내전할 예정이라는 공고가 내려와 개발을 시작하기로 했다. 방학기간은 7/16 ~ 8/14 하지만 미리 개발을 한다고 하여 나쁠 것은 없기에 먼저 봇을 개발하고자한다. 또, 내전 1등 상품도 있기에 흥미가 생겼다. 저자의 주종족인 저그(Z)로 개발하려고 한다. 앞으로 작성할 스타크래프트 봇 일지들은 카테고리 '스타봇'에 넣을 예정이다. 알고리즘 경진대회 공식 깃헙에서 제공한 소스인 BasicBot을 사용하여 제작을 할 것이다. 언어는 자바로 할것이다. 최소 기본 AI는 이길 수 있도록 개발할 예정이며, 최대 목표는 준우승이다. 에디터는 인텔리제이를 사용할 것이다. 미리 코드나 전략이 새나갈 수 있기에 8월 15일이후에 블로그에 공개될 예정이다. 시작 20..

스타봇 2021.07.12