스타크래프트 시리즈/시스템

1 개요

스타크래프트 게임의 시스템에 관하여 설명하는 문서.

2 자원

  • 미네랄 : 모든 생산 및 연구에 필요한 자원.
  • 베스핀 가스 : 고급 유닛과 건물 생산 및 연구에 필요한 자원.

2.1 보급품

흔히 '인구수'라고 부르는데, 유닛을 굴릴 수 있는 최대 한계치를 나타낸다. 1 한정으로 저그는 지배력, 프로토스는 정신력이라는 단어를 사용하는데 저그의 경우 대군주가 저그 무리를 통솔하는 것을 반영한 것이고 프로토스의 경우 수정탑이 에너지를 공급하는 것을 반영한 것이다. 당연하겠지만 고급 유닛일수록 필요한 보급품이 늘어난다.[1][2]

보급품을 나타내는 아이콘은 스타1에서는 사람/프로토스인/히드라리스크의 실루엣이며, 스타2에서는 보급고, 수정탑, 대군주이다.

3 공격 방식

3.1 스타크래프트 1

  • 일반형
어떤 방어 속성에 상관없이 본 공격력의 100% 모두 들어간다.
대형 속성에게 100% 대미지, 중형 속성에게 75% 대미지, 소형 속성에게 50% 대미지가 들어간다.
소형 속성에게 100% 대미지, 중형 속성에게 50% 대미지, 대형 속성에게 25% 대미지가 들어간다. 테란만 유일하게 가지고 있다.
상대의 방어속성과 방어력에 상관없이 피해가 100% 들어간다.

3.2 스타크래프트 2

진동형/폭발형/일반형 분류가 사라지고 경장갑/중장갑/거대/기계/생체/사이오닉 추가 대미지로 변경되었다. 장갑 형태에 대한 설명은 방어 방식 단락에 후술.

이외에도 보호막 추가 피해라는 것도 있는데, 사실상 프로토스를 견제하기 위해 있는 것이라고 보면 된다.[6] 보호막 추가 피해를 주는 유닛은 땅거미 지뢰분열기 둘 뿐이다.

3.3 공격 속도(공격 쿨타임) 랜덤 조정

모딩 툴로 스타크래프트1 내부를 뜯어보면 유닛들의 공격 속도가 일정 상한선 내(최솟값과 최댓값 사이)에서 랜덤으로 +,-가 되어 적용 된다는 것을 알 수 있다. 실제로 유닛들을 일렬로 세워두고 동시에 공격시켜보면 처음에는 동시에 공격하다가 점점 공격 타이밍이 엇갈리게 된다. 이는 스타크래프트 2에서도 적용된다.

4 방어 방식

4.1 스타크래프트 1

유닛이나 건물이 가지는 고유의 속성. 주로 크기에 따라 나뉘어 지며 이 속성에 따라서 받는 대미지가 달라진다. 쉴드는 방어방식에 관계없이 항상 100%가 적용된다. 벌컨맵에서 집정관이 만만해보이는 이유. 간혹 수송선에 탑승했을때 차지하는 칸의 수로 구별하는 유저가 있는데 이 방법은 예외가 있어서 유용한 방법은 아니다.[7] 총 4가지가 있지만 주로 쓰이는건 3가지다.

  • 소형 (Small)
폭발형 공격의 50%, 진동형 공격의 100%, 일반형 공격의 100% 대미지를 받는다.
  • 테란 : SCV, 마린, 파이어벳, 메딕, 고스트
  • 저그 : 라바, 저글링, 브루들링, 인페스티드 테란, 뮤탈리스크, 스컬지
  • 프로토스 : 프로브, 질럿, 하이템플러, 다크템플러, 옵저버
  • 기타 : 중립 크리터
  • 중형 (Medium)
폭발형 공격의 75%, 진동형 공격의 50%, 일반형 공격의 100% 대미지를 받는다. 이 속성을 가진 유닛은 소수이다.
  • 테란 : 벌쳐
  • 저그 : 히드라리스크, 러커, 디파일러, 저그 에그,
  • 프로토스 : 커세어
  • 대형 (Large)
폭발형 공격의 100%, 진동형 공격의 25%, 일반형 공격의 100% 대미지를 받는다.
  • 모든 구조물
  • 테란 : 시즈 탱크, 골리앗, 레이스, 드랍쉽, 사이언스 베슬, 배틀크루저, 발키리
  • 저그 : 가디언, 디바우러, 울트라리스크, 오버로드
  • 프로토스 : 드라군, 아콘, 다크 아콘, 셔틀, 리버, 스카웃, 캐리어, 아비터
  • 독립적 크기 (Independent)
폭발형, 일반형, 진동형 상관없이 1회 공격시 무조건 0.5의 대미지를 받는다.[8] 일반 유닛이 아닌 미네랄, 베스핀가스, 유즈맵에서 볼 수 있는 미네랄 조각, 가스 조각, 데이타 디스크, 우라즈 크리스탈, 칼리스 크리스탈, 카다린 크리스탈, psi emitter, flag 등이 이 속성을 가진다. 다만 이 속성을 지닌 유닛들 대부분이 타격 불가 대상이라 이 속성에 대해서는 유즈맵이 아니라면 체감할 일이 별로 없다.

4.2 스타크래프트 2

깊게 파고가면 생체, 기계, 사이오닉 등도 있지만[9] 실질적으로 쓰이는 방어 특성은 아래 셋이다.

  • 경장갑

주로 보병 계열 유닛(해병, 광전사, 저글링 등)이 여기에 속하며, 경장갑 추가 대미지가 붙어 있는 공격에 치명적이다.

  • 중장갑

주로 메카닉이나 갑충 계열 유닛(불곰, 추적자, 바퀴 등)이 여기에 속하며, 중장갑 추가 대미지가 붙어 있는 공격에 치명적이다.

  • 무장갑

드물게 경장갑, 중장갑 중 어느 쪽도 아닌 유닛(유령, 집정관, 여왕, 맹독충, 궤멸충)이 있는데 이들은 당연히 어떤 쪽으로든 추가 대미지를 입지 않는다. 다만 경장갑/중장갑 구분이 아닌 특수한 속성의 공격에는 추가 대미지를 입을 수 있다.

5 피해 계산법

폭발형 공격 형태인 히드라리스크가 소형유닛인 마린을 공격하는 상황을 생각해 보자. 이때 히드라리스크는 마린에게 몇의 대미지를 줄 수 있을까?

물론 둘다 기본상태일때는 10 x 50% = 5 가 되어서 5의 대미지를 줄 수 있다. 이때 마린의 방어력이 업그레이드 되어서 0이 아닌 2가 되는 상황이라면은 어떻게 될까?? 대충 생각해서 10 x 0.5 - 2 = 3 해서 3이 들어간다고 생각하는 유저도 있겠지만 실제로는 (10 - 2) x 50% = 4 해서 4의 대미지가 들어가게 된다. 즉 본 공격력에서 공격받는 유닛의 방어력을 뺀 후 거기서 공격형식, 방어형식에 따라서 몇 퍼센트가 곱해져서 대미지가 들어가게 된다. 맵에디터로 수정할시 폭발형 반감인 소형유닛에다가 체력을 핵대미지가 비율로 들어가는 750보다 1작은 749로 설정하고 방어력을 설정가능 최대치인 255로 적용하면 749÷(0.5*(500-255))=6.1142...으로 핵을 6번맞고도 살수가 있다!(물론 밀리에선 2번이 최대이다.) 그리고 질럿은 소형유닛이라는 이유로 베틀크루저의 야마토포 한방에 죽지 않는다!!

반면에 스타2에서는 추가 대미지만 있기 때문에 그냥 덧셈[10]만 하면 된다. 유의할 것은 공업시 추가 대미지는 따로 계산된다는 점이다.

  • 예) 공 2업 사도 -> 방1업 해병 : {(10+2)+(12+2)} - 1 = 25

5.1 스플래시 대미지

스타크래프트에서는 피격지점과의 거리에 따라 받는 대미지가 달라진다. 스플래시 공격의 대미지는 반경1 안쪽에서는 100%로 들어가고 반경2 의 안쪽에서는 50%, 반경3 의 안쪽에서는 25%로 들어간다. 아래의 표는 픽셀을 기준으로 쓰여져 있으며 32픽셀이 한칸이다.

유닛반경1반경2반경3
파이어뱃152025
시즈 탱크102540
스캐럽204060
스파이더 마인5075100
인페스티드 테란204060
아콘31530
러커202020
커세어550100
발키리550100
사이오닉 스톰484848
핵미사일128192256
이레디에이트646464

출처

디파일러(베타)102030

스플래시로 대미지를 주는 경우 공격 및 방어 형식에 따른 대미지 계산법을 따르지 않고 먼저 퍼센트 비율로 대미지를 깎고 그 다음에 방어력이 적용된다. 예를 들어 시즈탱크가 방 3업된 마린에게 50% 스플 뎀지를 주는 공격을 할 경우 대미지는 ((70/2)-3)/2로 계산되어 16이 나오게 된다. 또 25% 스플 범위에 있을 경우 ((70/4)-3)/2로 계산되어 7.25가 나오게 된다.

많은 사람들이 스타크래프트에서는 대미지가 0.5씩 계산된다고 알고 있는데, 이는 사실이 아니다. 스타에서는 유닛의 체력과 에너지, 실드 등을 모두 실제 보이는 값의 256배로 저장[11]하기 때문에, 실제로 처리할 수 있는 대미지의 최소값은 256분의 1인 0.00390625가 된다. 따라서 대미지를 계산했을 때 4.25나 3.75 등의 값이 나오면 웬만한 경우 대미지가 그대로 박힌다. 물론 게임 내에서는 체력은 소수점 올림, 실드와 에너지는 소수점 내림으로 보여주므로 이러한 사실을 체감하기 힘들다.

10년이 넘은 게임임에도 불구하고 이렇게 잘못 알려진 것은 공격시 입히는 대미지가 최소 0.5로 고정되어 있기 때문이다. 실제로 공격받는 유닛의 방어력이 공격하는 유닛의 공격력 보다 높을 경우 무조건 0.5의 대미지가 들어가게 된다. 마찬가지로 유즈맵에서 공격력이 0으로 설정되어 있는 유닛의 경우에도 실제 0이 아니라 0.5의 대미지가 들어가는 것을 확인할 수 있다. 비슷한 예로 디펜시브 매트릭스는 모든 대미지를 0이 아닌 0.5로 줄이며, 에디터로 생성 가능한 일부 특수 유닛은 대미지를 무조건 0.5씩 받는다.

5.2 언덕, 특수 오브젝트에서

언덕 위에 있는 유닛을 낮은 지형에 있는 유닛이 공격할 경우 그 공격은 25% 확률로 빗나간다. 또한 특수한 일부 오브젝트들 바로 밑에 있을 경우도 그러한데 그 오브젝트의 예로 큰 나무라든지, 돌아가는 파라솔(?) 비슷하게 생긴 것들이 있다.

스타크래프트 2에서는 빗나갈 확률이 사라졌다. 대신 시야를 확보하기 전까지 언덕을 볼 수 없다.

6 유닛 이동 속도

6.1 계산법

스타크래프트 유닛의 이동속도는 flingy.dat 과 iscript.bin 파일에 정보가 기록되어 있는데 전자의 경우 공중유닛 전부와 일부 지상유닛, 후자의 경우 지상유닛의 정보가 들어있다. iscript.bin의 경우 1게임 프레임당 움직이는 픽셀수를 표현해주고 flingy.dat의 경우 1게임 프레임당 움직이는 평균 픽셀수의 256배 된 수치에서 소수점 이하 올림해서 표시된다.

그래서 flingy.dat의 레이쓰, 뮤탈리스크 수치인 1707을 그대로 믿기가 어렵다. 확실한건 1706초과 1707이하의 수치일 것이다. 만약 1707일 경우 아래의 그리드/초 정보가 3.750732421875 가 나오게 된다. 하지만 이 수치가 너무 길어서 스타2처럼 깔끔하게 3.75이라고 가정하고 표현을 했다.

그리고 iscript.bin에서 저글링을 찾아 보면 1게임 프레임이 지날때 마다 각각 2-8-9-5-6-7-2 픽셀만큼 이동하고 이걸 평균내면 1게임 프레임당 39/7 픽셀만큼 이동하게 된다. 총 7 프레임 동안 이동한 픽셀수가 달라서 저글링은 이동할때 용수철 처럼 빨라졌다 느려졌다 하는 움직임을 보여준다.

아무튼 이 두 파일을 분석하면 유닛들의 1게임프레임당 움직이는 평균 픽셀수를 알 수 있다..

6.2 평균 픽셀/게임프레임

아래표는 유닛들의 1게임프레임당 평균 이동 픽셀을 의미한다. 1게임 프레임은 게임 내에서의 시간 단위로 게임속도 보통에서는 15프레임이 1초, 매우빠름에서는 24프레임이 1초가 되며 1단계식 게임 설정이 달라질때 마다 3프레임만큼 증가하거나 감소한다.

SCV5프로브5드론5
마린4질럿4오버로드0.8333.. (5/6)
마린(스팀)6질럿 (업)6오버로드 (업)3.3333.. (10/3)
파이어벳4드래군5.25저글링5.571429.. (39/7)
파이어벳(스팀)6하이템플러3.3333.. (10/3)저글링 (업)8.35714.. (58.5/7)
고스트4다크템플러5히드라리스크3.714286.. (26/7)
메딕4아콘5히드라리스크 (업)5.571429.. (39/7)
벌쳐6.6666.. (20/3)[12][13]다크아콘5러커6
벌쳐 (업)10셔틀4.4444.. (40/9)뮤탈리스크6.6666.. (20/3)
탱크4셔틀 (업)6.6666.. (20/3)스컬지6.6666.. (20/3)
골리앗4.7리버1.7777.. (16/9)6.6666.. (20/3)
레이쓰6.6666.. (20/3)옵저버3.3333.. (10/3)브루들링6.0540.. (336/55.5) [14]
드랍쉽5.4666.. (82/15)옵저버 (업)5가디언2.5
사이언스베슬5스카우트5디바우러5
배틀크루져2.5스카우트(업)6.6666.. (20/3)울트라리스크5.4
발키리6.6캐리어3.3333.. (10/3)울트라리스크(업)8.1
스파이더 마인16아비터5디파일러4
건물이동1.6666.. (5/3)커세어6.6666.. (20/3)라바2
인터셉터13.3333.. (40/3)인페스티드테란6
스캐럽16

6.3 그리드/초 (스타2식 이동속도)

위의 픽셀/게임프레임을 그리드/초로 바꾸기 위해서는 일단 게임속도 보통에서 15프레임이 1초, 32픽셀이 1그리드 이니 위 수치에서 x15/32를 해주면 된다. 이렇게 하면 일꾼의 경우 2.34375, 마린과 질럿은 1.875가 되는데 각각 스타2에서의 2.8125와 2.25와 비교해 보면 20%정도 느린값이 나온다. 아마도 스타1의 경우 보통에서 매우 빠름까지 3번이나 속도를 올릴수 있는데 스타2의 경우 2번밖에 속도를 올릴수 밖에 없어서 이를 보정하기 위해서 두 게임 모두 게임속도 설정이 보통일때 스타2가 스타1보다 20%정도 빠르게 설정한것 같기도 하다.. 아무튼 스타2의 유닛들에게 맞추면 비교하기 편하기 때문에 스타2식에 맞추어 보정해 주는게 편할것 같다.

기준 : 스타2식의 이동속도 표기 또는 게임속도 설정 Fast (Normal에 비해 20% 빠름)

참고로 각 게임속도 설정간의 속도 비는 다음과 같다.
#s-8

주로 2.25~2.8125까지의 속도를 보통이라고 보며 2.25 미만을 느리다고, 2.8125 이상을 빠르다고 본다.

SCV2.8125프로브2.8125드론2.8125
마린2.25질럿2.25오버로드0.46875
마린(스팀)3.375질럿 (업)3.375오버로드 (업)1.875
파이어벳2.25드래군2.953125저글링3.133929..
파이어벳(스팀)3.375하이템플러1.875저글링 (업)4.574814768..??[15]
고스트2.25다크템플러2.8125[16]히드라리스크2.089286..
메딕2.25아콘2.8125히드라리스크 (업)3.133929..
벌처3.75다크아콘2.8125러커3.375
벌처 (속업)5.625셔틀2.5뮤탈리스크3.75
탱크2.25셔틀 (속업)3.75스컬지3.75
골리앗2.64375리버13.75
레이쓰3.75옵저버1.875브루들링3.405405..
드랍쉽3.075옵저버 (속업)2.8125가디언1.40625
사이언스베슬2.8125스카웃2.8125디바우러2.8125
배틀크루저1.40625스카웃(속업)3.75울트라리스크3.0375
발키리3.7125캐리어1.875울트라리스크(발업)4.55625
스파이더 마인9아비터2.8125디파일러2.25
건물이동0.9375커세어3.75라바1.125
  인터셉터7.5인페스티드테란3.375
스캐럽9  

7 카메라 각도(시점)

스타1에서는 카메라 시점이 프론트 뷰에 가까운 35도 기준이였던것과 달리,
스타2에서는 탑뷰에 가까운 56도가 기본이 된다.

그래서 스타2에선 공중 유닛한테 사이오닉 스톰 같은 기술을 먹일 때는 유닛보다 살짝 밑에 써주는 게 더 좋다.

8 게임 속도

스타1에서는 nomal-보통(초당 15프레임)을 기준으로 하며, 싱글플레이시 초기 속도는 fast-빠름(초당 18프레임)으로 설정되어 있다.
속도가 올라가고 내려갈 때마다 3프레임씩 변한다.

속도SlowestSlowerSlowNormalFastFasterFastest
프레임(배속)6(x0.4)9(x0.6)12(x0.8)15(x1)18(x1.2)21(x1.4)24(x1.6)

스타2에서는 보통을 기준으로 하며, 초기 속도는 보통(x1)이다

속도아주 느림느림보통빠름아주 빠름
배속x0.6x0.8x1x1.2x1.4

9 유닛 반경(충돌 크기, 판정 범위)

9.1 스타크래프트1

단위는 픽셀이며, 모딩툴[17]로 열어보면 중점을 기준으로 상하좌우(Left,Right, Up, Down)의 충돌범위를 다르게 정할 수 있다.
또한 소수점을 지원하지 않는다. 그래서 기존 유닛이나 건물들의 충돌범위의 경우 '왼쪽 충돌범위는 15인데 오른쪽 충돌범위는 16'같은 수치로 되어있는 경우가 다반사라 이런 상황[18]도 발생한다.
입구 막기를 할 때 서플라이 디폿 아래에 배럭을 지으면 입구가 막히지만 서플라이 디폿 위에 배럭을 지으면 입구가 막히지 않는 이유도 서플라이배럭의 위와 아래의 충돌범위가 서로 다르기 때문이다.

9.2 스타크래프트2

스타2의 경우는 3D이기 때문에 상하좌우의 수치를 따로 정하지 않고 한 가지의 수치로 결정한다.
갤럭시 맵 에디터의 데이터 - 유닛 탭으로 가면 볼 수 있다.
'Movement: CUnit_InnerRadius' 항목은 유닛과 건물의 충돌범위이고,
'Movement: CUnit_Radius' 항목은 유닛과 유닛간의 충돌범위이다.
상호작용 범위라고 설명되어있는걸 보면 아닐 수도 있다.

정확한 정보는 추가바람
  1. 일반적으로 일꾼(건설로봇/탐사정/일벌레)는 1이며, 가장 보급품을 많이 요구하는 탈다림 모선은 무려 10이나 된다. 반면에 저글링갈귀는 0.5(소수점 이하 올림)이며, 협동전 자가라 한정으로 일벌레의 필요 보급품이 0.5가 된다. 소환 유닛은 보급품이 0인 대신 일정 시간이 지나면 자동으로 죽게 된다. 예외로 애벌레대군주/감시 군주가 있는데 애벌레는 유닛 생산, 대군주/감시 군주는 보급품 최대치를 올리는 역할 때문에 자체적으로 차지하는 보급품이 없는 것.
  2. 보급품이 0.5인 유닛은 생성시 동시에 2마리가 나온다. 그렇다고 반응로를 단다고 해병의 보급품이 0.5로 줄어드는 건 절대 아니다
  3. 15레벨 한정. 15레벨 이전에는 다른 사령관과 동일하다.
  4. 궤도 사령부의 보급고 투하 능력 사용시
  5. 협동전 자가라협동전 노바 한정으로 최대 100
  6. 섬멸전에서는 프로토스 빼고는 보호막을 쓰는 유닛과 건물이 전무하다. 캠페인과 협동전까지 합쳐도 자날 전투순양함, 가브리엘 토시, 일부 혼종 유닛이 전부.
  7. 대표적으로 수송칸은 중형인데 방어 방식은 소형인 광전사와 수송칸은 대형인데 방어 방식은 중형인 가시지옥이 있다.
  8. 스톰에는 틱당 0.5씩 줄지만 플레이그에는 정상적으로 피가 빠진다.
  9. 생체 추댐을 주는 유닛은 집정관유령 둘뿐이다. 포자 촉수는? 유닛이 아니니 논외
  10. 뺄셈도 결국에는 덧셈이다.
  11. 체력은 32비트, 실드와 에너지는 16비트로 저장한다. 예를 들어 저그의 체력 회복은 일정 시간마다 1씩 오르는 것이 아니라 매 프레임마다 4/256씩 오르는 것이다. 추가로 쉴드회복은 7/256, 마나회복은 8/256 이다.
  12. 아마 flingy.dat에 정보가 있는것 같은데 이 정보로만 따지면 레이쓰, 뮤탈리스크와 동급이다. 팀리퀴드에서도 동급이라고 되어있다. 실제 실험 결과가 레이쓰, 뮤탈리스크보다 느린 이유는 이동시 8방향에 맞춰 방향을 약간씩 전환하는 도중에 딜레이가 생기기 때문이고 일직선으로 정확하게 이동할 시에는 같다.
  13. http://wiki.teamliquid.net/starcraft/Unit_Movement_Speed
  14. 왜이렇게 기이한 수치가 나왔냐 하면 브루들링은 이동할때 죽 이동만 하는것이 아니라 중간중간마다 정지하는 구간이 있는데 이 구간의 게임프레임이 최저 3에서 최고 9까지 랜덤하기 지정된다. 즉 이동-이동-정지-이동-정지-이동-이동-이동-정지 구간을 계속 반복한다. 이때 이동 구간에서는 7프레임동안 각 8픽셀씩 이동하는데 정지 구간에서는 최저 3에서 최고 9프레임동안 랜덤하게 지정되면서 이동하지 않는다. 이것을 평균해 보니 336/55.5가 되었다.
  15. 위의 정보를 알수 없어서 실험적으로 얻은 수치이다.
  16. 영웅 속성의 다크템플러는 2.25 다.
  17. DatEdit
  18. 게이트웨이의 좌우 충돌범위가 다른 것이 아니라 파일런의 건물 소환 가능 범위가 좌측과 우측이 다르기 때문