떠도는 수치 바로잡기 — 소스와 대조한 13가지

오픈프론트 공략 자료에 흔히 도는 값과 게임 소스코드의 실제 값을 나란히 놓았습니다. 도시가 올려주는 병력 상한, 무역 수입 공식, 지대공 미사일 재장전 시간 등.

SOURCE-VERIFIED · df9114ee 핵심 업데이트 2026-07-30 13분

결론부터

  • 도시 +25,000 과 +250,000 은 둘 다 맞습니다. 화면 표기가 내부값의 1/10이라 생기는 단위 차이입니다
  • 무역 수입은 거리에 비례하지 않습니다. 시그모이드라 가까운 항구는 근사식보다 훨씬 적게 법니다
  • 게임 안 도움말도 일부 낡았습니다. 지대공 미사일 재장전을 7.5초라고 적어두었지만 실제는 9초입니다

제일 먼저 알아둘 것은 화면의 병력과 소스의 병력이 10배 다르다는 점입니다. 도시 한 레벨이 올려주는 상한을 두고 +25,000 과 +250,000 이 함께 도는 이유가 이것이고, 둘 다 맞습니다. 동맹 지속 시간은 기본 5분입니다(방장이 1~15분으로 바꿀 수 있고, 10분은 기본값이 아닙니다).

아래는 커뮤니티에 도는 값을 게임 저장소와 하나씩 대조한 것입니다. 틀린 쪽을 지적하려는 문서가 아니라 어느 값을 믿어야 하는지 정리한 문서입니다.

특정 사이트를 지목하지 않습니다. 오래된 버전에서는 맞았던 값도 있고, 지금은 고쳐졌을 수도 있습니다. 중요한 건 현재 코드가 무엇이라고 말하는가입니다.

기준: _meta.commit 에 적힌 커밋. 페이지 하단과 우측 패널에 표시됩니다.

1. 도시가 올려주는 병력 상한 — 둘 다 맞습니다

흔히 도는 값소스 코드
레벨당 +25,000레벨당 +250,000

⚠️ 이건 오류가 아니라 단위 차이입니다. 두 값이 같은 것을 서로 다른 자리에서 읽은 결과라, 어느 쪽도 틀리지 않았습니다.

게임 화면에 뜨는 병력은 내부값을 10으로 나눈 값입니다 — 클라이언트의 renderTroops 가 renderNumber(troops / 10) 입니다. 그래서 도시를 한 레벨 올리면 화면의 병력 상한이 +25.0K 만큼 오릅니다. 소스 코드의 상수는 250_000 입니다.

화면을 보고 적으면 25,000, 코드를 보고 적으면 250,000 — 같은 것을 가리키는 두 표기입니다.

이 사이트는 공식이 전부 내부값 기준이라 내부값을 씁니다. 화면과 맞춰볼 때는 0을 하나 빼세요. → 화면에서 거리 재는 법

어느 쪽 표기를 쓰든 결론은 같습니다 — 1,000타일을 가진 상태에서 도시 한 채는 땅 5,175타일과 맞먹습니다. 골드 우선순위가 통째로 바뀝니다.

→ 도시 몇 개 지어야 하나

2. 무역 수입이 거리에 비례한다

흔히 도는 값실제
기본값 + 계수 × 거리 형태의 선형·준선형 식시그모이드
75,000 / (1 + e^(−0.03 × (거리 − 300))) + 50 × 거리

이 사이트가 보는 저장소는 얕은 복제(최근 커밋 몇 개) 라서, 옛 버전에 다른 식이 있었는지는 확인할 수 없습니다. 위 판단은 현재 커밋 기준입니다.

항구 간 거리 (타일)실제 수입 (골드)흔한 근사식 (골드)
1005,185약 33,800
20013,557약 60,900
30052,500약 88,900

가까운 거리에서 6배 넘게 과대평가됩니다. 항구를 붙여 지어도 어느 정도 번다고 착각하게 만드는 값입니다.

→ 항구 어디에 지어야 하나

3. 타일이 인구를 선형으로 준다

흔히 도는 값실제
타일당 고정 인구 (예: 3명)2 × (타일^0.6 × 1000 + 50,000) 명

지수 0.6이 핵심입니다. 땅은 늘릴수록 효율이 떨어지는데, 선형이라고 믿으면 확장을 계속하는 게 항상 이득으로 보입니다. 실제로는 어느 시점부터 도시가 압도적으로 유리해집니다.

보유 타일타일 1개 더 먹을 때 늘어나는 상한
100+190
1,000+76
5,000+40

→ 병력 상한과 42.2% 법칙

4. 워커(Worker) 시스템

흔히 도는 값실제
워커가 군대보다 빠르게 번식현재 소스에서 워커 개념을 찾지 못했습니다

슬라이더는 공격 비율 하나뿐이고 인구를 워커와 군대로 나누는 구조가 없습니다. 코드에 goldFromWorkers 라는 변수명이 있지만 이건 패시브 골드 수입을 담는 이름일 뿐 유닛이 아닙니다.

과거 버전에 있었다가 사라진 것일 수 있습니다.

5. 방어 진지 배수가 지형마다 다르다

흔히 도는 값실제
산악 ×6 / 평지 ×4.5 처럼 지형별로 다름지형 무관 ×5 고정

코드는 지형 계수에 ×5를 그대로 곱합니다. 지형별로 다른 배수를 주는 분기가 없습니다.

다만 결과는 지형마다 달라집니다. 산지(120)에 세우면 실효 600, 평야(80)면 400이 되기 때문입니다. “산에 세운 진지가 더 강하다”는 체감은 맞지만, 이유는 진지 배수가 아니라 지형 계수 입니다.

→ 방어 진지 범위와 배치

6. 지대공 미사일 재장전 7.5초

흔히 도는 값실제
7.5초9초

SAMCooldown() 이 90틱이고 1틱이 100ms 이므로 9초입니다.

이건 게임 자체 도움말에도 7.5초라고 적혀 있습니다. 도움말이 코드보다 낡은 경우입니다. 같은 도움말이 사거리를 “100 pixel”이라고 하는데 실제 레벨 1 사거리는 70타일입니다.

1.5초 차이가 실전에서 큽니다. 동시에 두 발이 들어올 때 막을 수 있느냐가 갈리기 때문입니다.

→ 핵 언제 쓰나

7. 지대공 미사일 요격 확률

흔히 도는 값실제
75% 확률로 요격확률 판정이 없습니다

요격은 결정론적입니다. 요격체가 목표에 도달하면 그냥 지웁니다. 난수는 표적 선정에만 쓰입니다.

요격이 실패하는 실제 이유는 넷입니다 — 사거리 밖, 재장전 중, 너무 늦게 잡힘(궤적의 마지막 지점에서는 요격 판정이 안 돕니다), 그리고 아직 건설 중입니다. 운이 아닙니다.

8. 지대공 미사일은 다탄두 미사일을 아예 못 막는다

흔히 도는 값실제
MIRV 요격 불가요격 대상에 MIRV 탄두가 포함됨

요격 대상은 원자 폭탄·수소 폭탄·MIRV 탄두 셋입니다. 못 막는 건 분리 전 MIRV 본체이고, 탄두는 대상입니다.

뚫리는 이유는 셋이고 물량은 그중 마지막입니다 — 탄두 속도가 22인데 요격체는 12라 따라잡지 못하고, 궤적의 마지막 지점에서는 요격 판정이 안 돌고, 그다음이 재장전 9초입니다. 지대공 레벨을 올리면 동시 요격 수가 늘어 세 번째만 완화됩니다.

9. 항구는 겹쳐 짓는 게 낫다

흔히 도는 값실제
한 채를 레벨 10 까지 = 열 채의 약 3배반대. 열 채가 1.4배 낫습니다

항구는 10틱마다 한 번 판정하고, 판정 한 번에 배는 최대 한 척입니다. 레벨 N 이면 그 판정 안에서 시도를 N번 하지만 한 번 성공하면 즉시 멈춥니다.

같은 7,875,000 골드로판정당 배
항구 1채 × 레벨 100.60
항구 10채 × 레벨 10.84

3배라는 수치는 한쪽에만 실패 보정을 적용하면 나옵니다. 실패가 쌓이면 다음 판정 확률이 올라가는 장치가 있는데, 겹친 항구에는 그 할인을 적용하고 펼친 항구에는 안 적용하면 정확히 그 배율이 됩니다. 같은 조건으로 맞추면 결과가 뒤집힙니다.

다만 레벨 2~3은 여전히 효율적입니다. 지을 해안이 없을 때는 올리는 게 맞습니다.

→ 항구 어디에 지어야 하나

10. 무역선은 내 항구 사이에서도 오간다

흔히 도는 값실제
내 항구끼리 무역이 성립한다성립하지 않습니다

무역 상대 후보는 나를 제외한 다른 플레이어의 항구에서만 뽑습니다.

기차와 헷갈리기 쉽습니다. 기차는 내 도시에 멈춰도 10,000 골드를 줍니다. 바다 무역에는 그런 자기 거래가 없습니다.

이 오류는 항구 배치 조언을 통째로 바꿉니다 — 내 항구끼리 거리를 벌릴 이유가 없고, 남의 항구와의 거리만 의미가 있습니다.

11. 공장은 한 채에 몰아야 한다

흔히 도는 값실제
공장은 한 채를 올리는 게 낫다반대. 나눠 짓는 쪽이 21% 낫습니다

⚠️ 이름에 속기 쉬운 자리입니다. 발차 확률의 분모를 계산하는 함수가 unitCount 라는 이름에 // Count of units owned 라는 주석까지 달려 있는데, 실제 구현은 total += unit.level() — 개수가 아니라 레벨의 합입니다.

분모가 레벨 합이라 어떻게 나누든 분모는 같습니다. 실제로 결과를 가르는 건 따로 있습니다 — 한 역은 한 번에 기차 한 대만 보내고 10틱 쉽니다. 레벨 6짜리 한 채는 시도를 여섯 번 해도 한 번 성공하면 거기서 끝입니다.

같은 3,875,000 골드로틱당 기차
공장 1채 × 레벨 60.0198
공장 6채 × 레벨 10.0240

항구와 같은 규칙입니다. 판정당 하나라는 상한이 있으면 판정 수를 늘리는 쪽이 이깁니다.

→ 공장·철도 수입 최적화

12. 공격 비율을 낮춰두면 병력이 빨리 는다

흔히 도는 값실제
공격 슬라이더 위치가 성장률에 영향을 준다아무 영향 없습니다

병력 증가 공식은 현재 병력과 상한 두 가지만 봅니다. 공격 비율은 클릭할 때 얼마를 보낼지 정하는 화면 쪽 값이라 성장 계산에 아예 들어가지 않습니다.

슬라이더가 성장에 영향을 주는 것처럼 보이는 이유는 간접적입니다. 비율이 높으면 병력이 많이 나가고, 병력이 줄면 상한 대비 비율이 내려가고, 그 비율이 42.2%에 가까워지면 증가량이 커집니다. 슬라이더가 아니라 남은 병력이 원인입니다.

→ 공격 비율 슬라이더 · 병력 상한과 42.2% 법칙

13. 지대공은 게이지가 어느 정도 차면 요격을 시작한다

흔히 도는 값실제
건설 진행도가 일정 수준을 넘으면 부분적으로 작동완성 전까지 요격 0회

건설이 끝나는 시점에 요격 로직 자체가 그때 붙습니다. 그 전에는 진행 막대가 얼마나 차 있든 판정이 아예 돌지 않습니다. 임계값도 확률도 없습니다.

지대공만의 이야기가 아닙니다. 건설 중인 도시는 병력 상한을 안 올리고, 건설 중인 방어 진지는 국경 손실 배수를 안 붙입니다. 건설 중 상태에서 이득이 새는 곳은 공장 하나뿐입니다(발차 확률 분모에는 이미 들어갑니다).

→ 핵 언제 쓰나

확인해보니 맞았던 것들

공정하게 적습니다. 아래는 대조 결과 소스와 일치했습니다.

  • 승리 조건 개인전 영토 80%
  • 성장 정점이 상한의 42%
  • 도시 가격 125,000 → 250,000 → 500,000 골드, 1,000,000 골드 상한
  • 가격 (골드): 원자 폭탄 750,000 · 수소 폭탄 5,000,000 · 미사일 발사대 1,000,000 · 다탄두 미사일 25,000,000 · 지대공 미사일 발사대 1,500,000
  • 배신 시 30초간 방어 −50%
  • 방어 진지 반경 30타일
  • 군함 사거리 130타일, 포탄 2초당 250 피해

왜 이런 일이 생기나

게임이 알파 단계라 패치가 잦습니다. 한 번 적어둔 숫자는 다음 패치에 낡고, 본문에 손으로 박아둔 값은 고쳐지지 않습니다.

이 사이트가 숫자를 저장소에서 자동 추출하는 이유가 이것입니다. npm run extract 한 번이면 문서와 계산기가 함께 갱신되고, 추출이 실패하면 빌드가 멈춥니다.

다만 이 사이트도 완벽하지 않습니다. 수치의 대부분은 저장소에서 자동으로 뽑지만, 두 가지는 사람이 손으로 넣습니다 — 소스에 고정 상수로 존재하지 않는 값(로비 기본 봇 수)과, 코드가 아니라 문자열로만 들어오는 공식의 지수 부분입니다. 어긋난 값이 있다면 그 둘일 가능성이 가장 높습니다. 이상한 값을 발견하면 문의로 알려주세요.

더 볼 것

이 사이트는 쿠팡 파트너스 활동의 일환으로, 이에 따라 일정액의 수수료를 제공받습니다.