얼마 안 있어 새로운 스타리그가 시작이 됩니다. 차기 시즌에는 현 프로리그 후기리그의 맵을 2개, 그리고 새로운 컨셉의 신규맵이 2개가 들어갈 예정입니다.
온게임넷은 항상 거의 매 시즌이 들어갈 때 맵에디터와 스타 전반에 대한 연구를 통해 새로운 맵의 요소와 새로운 컨셉의 맵을 가장 먼저 시도했습니다. 좁은 입구, 중립건물의 활용, 윗입구와 구릉지 지형, 중립웹과 중립스웜의 활용 등이 저희의 성과이며, OMAT이 스타크래프트 리그에 던진 화두들이기도 합니다.
이번 시즌 역시 새로운 컨셉의 신규맵이 2개 있을 예정이고, 그 중 하나는 앞으로 말씀드릴 연구결과를 바탕으로 한 것입니다.
1. 판정
어느 지점, 혹은 어느 건물 사이를 어느 유닛이 지나갈 수 있느냐 없느냐, 어느 지점은 2층이고 어느 지점은 1층이 되는 기준은 무엇인가, 건물 건설이 가능하고 불가능하고를 결정하는 기준은 무엇인가, 유닛의 시야는 무엇을 기준으로 하게 되는가, 등등등. 이 모든 판정에는 객관적 기준이 있습니다.
이 것을 이해하기 위해서는, 스타의 맵 타일 시스템을 알 필요가 있습니다. 현대적 프로그래밍 이론에 등장하는 '객체'의 개념을 빌어 자세하게 설명드리려면 몇 회에 걸쳐 글을 써야 하겠습니다만, 요점만 말씀드리자면 전반적인 스타크래프트는 3개의 단위의 지배를 받습니다. (단위의 이름은 제가 임의로 붙였습니다..)
1) 픽셀 : 말 그대로 점입니다. 게임 화면을 그대로 캡쳐했을 때 점 하나. 스타는 640X480 게임이기 때문에 640X480개의 픽셀이 있다고 보시면 됩니다.
2) 도트 : 픽셀이 64개, 8X8로 모인 단위입니다.
3) 타일 : 도트가 4X4, 즉 픽셀이 32X32로 모인 단위입니다.
아시다시피, 타일은 건물짓는데 기준이 되는 '한 칸'입니다. 예를 들어 파일런은 타일 기준으로 2X2 크기이고, 커맨드 센터는 4X3 크기인 식이죠. 그리고 타일은 맵에디터의 기준이 되는 단위이기도 합니다. 일반적으로 로템이나 파이썬 등의 128X128 맵은 이 타일을 기준으로 가로로 128, 세로로 128개 크기라는 뜻입니다.
그렇다면 이 3개의 단위는 판정과 어떤 관계가 있을까요?
1) 유닛의 크기 : 픽셀 단위로 세팅되어 있습니다.
2) 건물의 크기 : 건물의 건설 자체는 타일단위입니다만, 실제 유닛의 이동과 관련이 있는 크기는 픽셀 단위 입니다.
3) 맵 상의 유닛이동 가능/불가타일 : 도트 단위로 판정이 됩니다.
4) 맵 상의 건물건설 가능/불가타일 : 타일 단위로 판정이 됩니다.
5) 1/2층 판정 : 타일 단위로 판정이 됩니다.
실제로 스타를 인스톨 하면 생기는 stardat.mpq와 broodat.mpq라는 거대한 파일 안에, 스타의 모든 것(그래픽, 사운드, 세팅 등)이 들어가 있습니다. 그래서 이 정보를 바꾸면 옛날에 유행하던 건담크래프트처럼 MOD를 만들 수 있는 것이죠. 그리고 저 파일 안을 들여다 보면, 저 유닛과 건물의 크기, 유닛이동 가능성 등에 대한 데이터가 미리 들어 가 있습니다. 즉, 어딘가에 '이 타일은 1층이다, 이 타일은 3층이다'와 같은 정보가 들어 가 있는 것입니다.
2. 유닛의 이동
이제, '유닛의 이동'이라는 면에 한정지어 생각해 봅니다.
어떤 유닛이 특정 건물 사이, 혹은 건물과 지형 사이를 통과할 수 있는가 하는 문제는 입구막기와 직결됩니다.
그런데 다행히도, 유닛과 건물의 크기 모두 직사각형으로 되어 있다는 사실이 밝혀져 있습니다.
그리고 더욱 다행히도, 위에 썼듯이 유닛의 이동 가능성은 도트 단위로 판정이 됩니다.
다음 그림을 봅니다.
시즌 초 '백마고지'맵의 수정 관련 포모스 기사의 그림입니다.
사실 위 사진은 상당히 확대한 것이고, 위에 있는 정사각형 격자들이 타일입니다.
그리고 그림 상에서 까맣게 표시되어 있는 부분은 유닛이 지나갈 수 없는 공간입니다.
자 그렇다면, 자연스럽게 이런 의문이 듭니다.
저 사진에서 배럭과 벽 사이로 어느 유닛이 지나갈 수 있을까?
이런 궁금증을 해결하기 위해서는, 두 가지를 알면 됩니다.
1) 궁금한 유닛의 크기
2) 배럭 오른쪽의 공간의 크기
먼저, 유닛의 크기는 pgr에 해당 글이 있습니다. (그리고 실제 제가 다시 확인해 본 바로는 정확합니다.)
(모든 지상 중립동물의 크기는 32X32 입니다.)
출처 :
https://pgrer.net/zboard4/zboard.php?id=free2&no=32078
그래서 이 글과 같은 재미있는 일이 생기게 됩니다.
https://pgrer.net/zboard4/zboard.php?id=humor&no=42015
질럿은 마린보다 크다고 알려져 있지만, 그건 가로 뿐입니다. 세로는 오히려 질럿이 1픽셀 작기 때문에, 건물로 막았을 때 그 틈이 19픽셀이었을 경우에는, 질럿은 통과하고 마린은 통과 못하는 지형이 생기게 됩니다.
또 이런 일도 있습니다.
https://pgrer.net/zboard4/zboard.php?id=ACE&no=684
이 글과 해당 경기에서의 해설의 혼란 역시, 질럿이 키가 작기 때문에 생긴 일입니다.
자 그렇다면, 건물의 크기는 어떨까요? 처음에는, 제가 인용한 위의 글과 비슷하게 다음 그림과 같은 방법을 쓰려고 했습니다.
배럭스는 처음에 32픽셀만큼 떨어져 있다가 1픽셀씩 땅에 가까워 집니다. 그리고 탱크의 크기가 32니까, 어느 배럭스까지 갔다가 막히는지를 알면, 배럭스의 왼쪽/오른쪽/위/아래에 각각 어느 만큼의 공간이 있는지를 알아낼 수 있습니다.
이렇게 해서, 배럭스는 왼쪽에 16, 오른쪽에 7, 위에 8, 아래에 15픽셀만큼 공간이 있다는 사실을 알아냅니다! 아아, 이건 정말 노가다였습니다. 그렇기 때문에 다른 건물에 대해서는 하지 않았습니다.
그리고 실제 실험 대신에, stardat.mpq 파일의 압축을 풀어서 그 안에 있는 값을 그냥 읽었습니다. 다음은 그 값입니다. (잘 안보이시면 클릭해주세요!)
위 데이터를 응용하려면 다음과 같이 하면 됩니다.
배럭이 왼쪽, 서플라이가 오른쪽으로 갔을 때, 그 사이를 통과 가능한 유닛은?
배럭-서플라이 구조라면, (배럭의 오른쪽 공간)+(서플라이의 왼쪽 공간)=17 만큼의 공간이 있습니다.
그렇기 때문에 가로 크기가 17 이하인 유닛들 만이 그 사이를 통과 가능합니다.
사실 위의 표를 알아낸 것이 작년 9월 말 쯤이고, 그 이후에 온게임넷 맵제작팀의 모 제작자가 이 표를 이용해서 재미있는 컨셉의 맵을 하나 만들었습니다. 알아낸 사실을 신규맵 일정과 맞추어 공개하려다 보니 이제야 공개하게 된 것 죄송하게 생각합니다. 어떤 컨셉의 맵일지 기대해 주시구요, 저는 물러가겠습니다.
- Forgotten_ 드림.