크래프팅 밸런싱: 제작 레시피 효율 우위로 버려지는 하위 조합 찾기
제작 레시피 효율을 입력 비용·제작 시간·자원 희소성·접근성으로 계산하고 파레토 지배 관계를 찾아 버려지는 하위 조합을 진단합니다. 크래프팅 밸런싱용 수식, 분석 절차, 텔레메트리와 개선안을 실무 예제로 정리합니다.

TL;DR
제작 레시피 효율은 단순한 재료 수가 아니라 입력 자원의 기회비용, 제작 시간, 희소성, 접근성을 함께 계산해야 정확하게 비교할 수 있습니다. 같은 기능을 제공하는 레시피 중 한 조합이 모든 핵심 지표에서 같거나 우월하면 다른 조합은 플레이어에게 선택받지 못하는 지배된 레시피가 됩니다.
실무에서는 레시피를 제작 그래프로 모델링한 뒤 입력 비용과 출력 가치를 정규화하고 파레토 지배 관계를 탐색합니다. 다만 초반 접근성, 안전성, 퀘스트 진행, 자원 소비 조절처럼 효율 외의 역할이 있다면 레시피를 삭제하기보다 그 역할을 명확하게 설계해야 합니다.
크래프팅 밸런싱에서 버려지는 하위 조합은 왜 발생하는가?
크래프팅 시스템에서 레시피가 많다고 선택지가 많아지는 것은 아닙니다. 플레이어는 보통 같은 기능을 수행하는 조합 중 비용이 낮고 빠르며 접근하기 쉬운 레시피를 반복해서 사용합니다.
문제는 상위 조합이 추가될 때 발생합니다. 새로운 레시피가 기존 레시피보다 재료를 적게 사용하고 제작 시간도 짧으며 결과물의 성능까지 같거나 높다면 기존 조합은 시스템에 남아 있어도 실제로는 사용되지 않습니다. 이런 상태를 레시피 지배 또는 조합 지배라고 볼 수 있습니다.
대표적인 원인은 다음과 같습니다.
- 여러 레시피가 같은 기능의 결과물을 만든다.
- 자원 가격을 설계할 때 제작 경로 전체의 기회비용을 반영하지 않는다.
- 상위 레시피를 추가하면서 기존 레시피의 접근성이나 특수 역할을 갱신하지 않는다.
- 재료 희소성과 제작 시간을 별도 시스템으로 취급해 실제 효율이 왜곡된다.
- 플레이어가 확인할 수 있는 비교 정보가 부족해 비효율적인 조합을 실험하지 않는다.
여기서 중요한 점은 사용률이 낮은 레시피가 모두 실패한 것은 아니라는 사실입니다. 특정 지역에서만 사용할 수 있거나 전투 중에도 제작할 수 있거나 퀘스트 조건을 만족시키는 등 효율 이외의 가치가 있을 수 있습니다. 따라서 먼저 효율상 열세인지 의도된 틈새 역할이 있는지를 분리해 진단해야 합니다.
제작 레시피 효율은 어떤 기준으로 계산해야 하는가?
레시피 비교의 출발점은 모든 입력 자원에 공통 가치인 그림자 가격 또는 기준 가격을 부여하는 것입니다. 상점 판매가만 그대로 사용하면 경제 시스템의 실제 희소성을 놓칠 수 있으므로 자원 획득 시간과 대체 사용처를 함께 고려하는 편이 좋습니다.
입력 비용 계산
각 재료의 기준 가격을 P_i, 투입 수량을 q_i라고 하면 레시피의 기본 입력 비용은 다음과 같이 계산할 수 있습니다.
F는 연료, 제작 수수료, 내구도 감소, 탄약처럼 직접 재료 목록에 드러나지 않는 고정 비용입니다. 제작 시간까지 비용으로 환산하려면 플레이어의 시간 가치 T와 제작 시간 t를 곱합니다.
예를 들어 광석 1개의 기준 가격이 8, 연료 1개의 가격이 2, 제작 시간이 4초이며 플레이어 시간 가치가 초당 0.5라면 광석 2개와 연료 1개를 사용하는 레시피의 총비용은 다음과 같습니다.
시간 가치 T는 장르와 게임 속도에 맞춰 결정해야 합니다. 생존 게임에서는 이동과 채집 시간이 크므로 T를 높게 설정할 수 있고 자동 생산 중심의 게임에서는 제작 시간보다 시설 투자와 전력 비용을 더 크게 반영할 수 있습니다.
출력 가치와 효율
결과물이 여러 개이거나 부산물을 제공한다면 모든 산출물을 같은 기준 가치로 환산합니다.
그다음 기본 효율을 계산합니다.
효율이 높을수록 같은 기능을 더 적은 비용으로 얻는다는 뜻입니다. 다만 효율 수치 하나만으로 레시피를 평가하면 문제가 생깁니다. 접근 가능한 시설이 다르거나 특정 자원이 특정 지역에서만 나오는 경우에는 플레이어가 실제로 지불하는 비용이 달라지기 때문입니다.
접근성과 희소성을 반영한 실효 비용
실제 플레이 환경을 반영하려면 희소성 프리미엄, 위험 비용, 시설 접근 비용을 별도 항목으로 추가할 수 있습니다.
이에 따라 상황별 효율은 다음처럼 다시 계산합니다.
이 모델의 장점은 동일한 레시피도 초반 지역과 후반 지역에서 다른 평가를 받을 수 있다는 점입니다. 초반에 흔한 고철을 사용하는 조합은 후반에는 비효율적일 수 있지만 초반에는 광석을 사용하는 조합보다 훨씬 합리적일 수 있습니다.

어떤 레시피가 다른 조합에 지배되는가?
레시피 A가 레시피 B를 지배한다고 판단하려면 먼저 두 결과물이 같은 기능을 수행하거나 서로 대체 가능해야 합니다. 공격력 20의 검과 회복 물약을 단순히 비용만 보고 비교해서는 안 됩니다.
같은 기능군 안에서 다음 조건을 확인합니다.
| 비교 항목 | 지배 관계에서의 조건 |
|---|---|
| 총비용 | A가 B보다 낮거나 같음 |
| 제작 시간 | A가 B보다 짧거나 같음 |
| 결과물 가치 | A가 B보다 높거나 같음 |
| 위험과 접근성 | A가 B보다 불리하지 않음 |
| 엄격한 우위 | 위 항목 중 하나 이상은 A가 명확히 우월함 |
이 조건을 만족하면 B는 A에 의해 지배됩니다. 특히 입력 재료가 다른 경우에도 결과물의 기능과 품질이 같다면 실질적인 지배 관계가 성립할 수 있습니다.
파레토 프론티어로 선택 가능한 레시피를 남긴다
모든 평가 지표에서 동시에 최선인 레시피가 하나만 존재하지 않을 때는 파레토 프론티어를 사용합니다. 비용은 낮을수록 좋고 제작 시간은 짧을수록 좋으며 결과물 가치는 높을수록 좋습니다.
파레토 프론티어에 포함된 레시피는 적어도 한 가지 지표에서 선택할 이유가 있습니다. 반대로 어느 지표에서도 장점이 없는 레시피는 프론티어 밖에 있으며 우선적으로 개선하거나 제거할 후보입니다.
예를 들어 다음과 같은 세 레시피가 있다고 가정해 보겠습니다.
| 레시피 | 입력 비용 | 제작 시간 | 결과물 가치 | 해석 |
|---|---|---|---|---|
| 고철 제련 | 24 | 6초 | 20 | 비용과 시간이 모두 높음 |
| 광석 제련 | 18 | 4초 | 20 | 고철 제련을 지배할 가능성 |
| 현장 압축 | 13 | 2초 | 18 | 가치가 낮아 초반 응급용으로 활용 가능 |
광석 제련은 고철 제련과 결과물 가치가 같고 비용과 시간이 낮습니다. 두 레시피의 접근성과 위험까지 같다면 고철 제련은 완전히 지배됩니다. 반면 현장 압축은 결과물 가치가 낮기 때문에 모든 상황에서 광석 제련에 지배된다고 단정할 수 없습니다. 제작 시설이 필요 없거나 전투 중 사용할 수 있다면 별도의 파레토 선택지로 남을 수 있습니다.
제작 레시피 효율 우위를 찾는 방법은 무엇인가?
다음 5단계는 스프레드시트나 데이터 분석 스크립트로 바로 적용할 수 있는 기본 절차입니다.
1단계: 비교할 기능군을 정의한다
먼저 모든 레시피를 한 번에 비교하지 말고 기능군으로 나눕니다.
- 같은 무기 등급을 생산하는 레시피
- 같은 회복량을 제공하는 소모품
- 같은 건축 기능을 제공하는 구조물
- 같은 퀘스트 목표를 충족하는 아이템
- 서로 대체 가능한 부산물 변환 조합
기능군을 잘못 정의하면 전혀 다른 플레이 가치를 가진 아이템을 비용만으로 비교하게 됩니다.
2단계: 입력과 출력을 제작 그래프로 정리한다
레시피를 노드와 간선으로 표현하면 중간 재료를 거치는 우회 경로까지 확인할 수 있습니다. 철광석에서 철괴를 만들고 철괴에서 검을 만드는 구조라면 철광석의 기준 가격만으로 검 레시피를 평가해서는 안 됩니다. 모든 중간 제작 비용과 부산물 가치를 합산해야 합니다.
데이터에는 최소한 다음 필드를 두는 것이 좋습니다.
| 필드 | 설명 |
|---|---|
| recipe_id | 레시피 고유 식별자 |
| input_items | 입력 아이템과 수량 목록 |
| output_items | 출력 아이템과 수량 목록 |
| craft_seconds | 제작 시간 |
| station_id | 필요한 제작 시설 |
| unlock_condition | 해금 조건 |
| region_tags | 접근 가능한 지역 또는 바이옴 |
| byproducts | 부산물과 수량 |
| risk_tags | 전투, 소음, 이동 등 위험 요소 |
3단계: 기준 가격을 정하고 실효 비용을 계산한다
기준 가격은 상점 가격, 평균 거래 가격, 채집 시간, 수요, 재생성 주기를 조합해 정할 수 있습니다. 하나의 숫자를 영구적으로 고정하기보다 패치 버전이나 지역별 시나리오마다 다른 가격표를 사용하는 편이 안전합니다.
가격표를 만들 때는 다음 질문을 확인합니다.
- 해당 자원은 다른 중요한 레시피에서도 사용되는가?
- 자원을 얻는 데 평균적으로 몇 초가 걸리는가?
- 실패하거나 피해를 받을 가능성이 있는가?
- 특정 지역이나 시간대에서만 얻을 수 있는가?
- 플레이어가 판매하지 않고 직접 사용할 가능성이 높은가?
4단계: 쌍별 비교로 지배 레시피를 표시한다
개념적으로는 다음과 같은 함수로 지배 여부를 검사할 수 있습니다.
type RecipeScore = {
id: string;
outputValue: number;
effectiveCost: number;
craftSeconds: number;
};
function dominates(a: RecipeScore, b: RecipeScore): boolean {
const noWorse =
a.effectiveCost <= b.effectiveCost &&
a.craftSeconds <= b.craftSeconds &&
a.outputValue >= b.outputValue;
const strictlyBetter =
a.effectiveCost < b.effectiveCost ||
a.craftSeconds < b.craftSeconds ||
a.outputValue > b.outputValue;
return noWorse && strictlyBetter;
}
실제 프로젝트에서는 여기에 시설 접근성, 해금 단계, 사용 가능한 지역, 부산물, 실패 확률을 추가해야 합니다. 중요한 것은 하나의 점수로 즉시 정렬하는 것보다 어떤 조건에서 지배되었는지 원인을 보존하는 일입니다.
5단계: 플레이어 맥락에서 다시 검증한다
분석 결과가 지배 상태로 나와도 다음 상황에서는 의도된 선택지일 수 있습니다.
- 상위 레시피의 제작 시설이 먼 곳에 있다.
- 하위 레시피는 이동 중 또는 전투 중 사용할 수 있다.
- 하위 재료가 초반에 풍부하고 후반에 부족하다.
- 하위 레시피가 특정 퀘스트나 NPC 관계를 진행시킨다.
- 상위 레시피는 소음, 실패, 열, 내구도 같은 추가 위험을 가진다.
따라서 시나리오를 초반, 중반, 후반과 지역 A, 지역 B처럼 나누어 같은 비교를 반복해야 합니다. 단일 평균값은 특정 플레이 구간에서 발생하는 사장 문제를 숨길 수 있습니다.
효율상 열세인 하위 레시피를 어떻게 살릴까?
모든 하위 레시피를 상향 조정하면 경제 인플레이션과 시스템 복잡도가 함께 커질 수 있습니다. 먼저 레시피가 가져야 할 역할을 정한 뒤 한 가지 축에서만 차별화하는 것이 좋습니다.
| 개선 방향 | 적합한 상황 | 주의할 점 |
|---|---|---|
| 흔한 자원 사용 | 초반 자원 순환이 필요할 때 | 후반에도 최적 조합이 되지 않게 가격 조정 |
| 제작 시설 불필요 | 탐험과 생존 중심 게임 | 편의성이 비용을 완전히 무효화하지 않는지 확인 |
| 부산물 제공 | 상위 조합과 다른 경제적 역할이 필요할 때 | 부산물의 2차 레시피까지 함께 분석 |
| 빠른 제작 | 전투 중 응급 사용이 필요할 때 | 자동화와 결합하면 과도한 생산이 될 수 있음 |
| 낮은 실패 위험 | 초보자와 안전한 선택지를 제공할 때 | 위험 비용이 실제로 체감되는지 확인 |
| 퀘스트 전용 수요 | 내러티브나 지역 경제를 강화할 때 | 반복 퀘스트가 무한 수익원이 되지 않게 제한 |
좋은 하위 조합은 상위 조합보다 모든 면에서 좋아서는 안 됩니다. 대신 플레이어가 특정 상황에서 하위 조합을 선택할 명확한 이유를 가져야 합니다. 효율이 낮다는 사실 자체보다 선택 이유가 없다는 점이 더 큰 설계 문제입니다.
하위 레시피에 고유한 제약을 부여한다
하위 레시피를 유지해야 한다면 다음과 같은 차이를 줄 수 있습니다.
- 휴대용 제작이 가능하지만 결과물 품질이 낮다.
- 시간이 오래 걸리지만 자원 종류가 단순하다.
- 결과물은 약하지만 부산물이 퀘스트 재료로 쓰인다.
- 특정 지역의 자원을 활용해 운송 비용을 줄인다.
- 상위 레시피보다 소음이나 열이 적다.
이때 차별화는 설명문에만 존재해서는 안 됩니다. 제작 시간, 인벤토리 소비, NPC 반응, 전투 성능, 시장 수요처럼 게임 플레이에서 확인 가능한 값으로 구현해야 합니다.
효율 우위를 측정할 때 어떤 텔레메트리를 수집해야 하는가?
레시피의 의도와 실제 사용은 다를 수 있습니다. 분석 결과를 출시 후 데이터와 연결하려면 제작 이벤트에 최소한 다음 정보를 기록합니다.
| 이벤트 | 주요 파라미터 | 확인할 문제 |
|---|---|---|
| recipe_opened | recipe_id, player_level, location | 레시피가 발견되는가 |
| craft_started | recipe_id, station_id, input_state | 선택 후 제작까지 진행하는가 |
| craft_completed | recipe_id, quantity, duration | 실제 생산량은 얼마인가 |
| craft_cancelled | recipe_id, cancel_reason | 비용이나 UX가 이탈을 만드는가 |
| item_consumed | item_id, context, age | 결과물이 실제로 사용되는가 |
| item_sold | item_id, value, source_recipe | 제작물이 경제에 흡수되는가 |
특히 craft_started와 craft_completed의 차이를 보면 제작 UI에서의 취소 문제를 발견할 수 있습니다. recipe_opened는 많지만 craft_started가 적다면 레시피가 나쁜 것이 아니라 비용 비교 정보나 재료 표시가 부족한 것일 수 있습니다.
다음 지표를 기능군별로 비교하면 사장된 조합을 빠르게 찾을 수 있습니다.
- 레시피 사용 점유율
- 레시피를 처음 사용하기까지 걸린 시간
- 동일 기능군 내 반복 사용률
- 입력 자원의 소비량과 잔존량
- 결과물의 실제 소비율
- 상위 레시피 해금 이후 하위 레시피 사용량 변화
- 레시피를 확인한 뒤 제작하지 않은 비율
상위 레시피 해금 직후 하위 레시피의 사용량이 급격히 줄었다면 새 조합이 기존 조합을 대체했을 가능성이 높습니다. 이때 비용만 조정하지 말고 하위 조합의 지역성, 즉시성, 안전성 같은 대체 불가능한 속성이 있는지 함께 확인해야 합니다.
사례: 같은 결과물을 만드는 두 제련 레시피 비교
다음은 철괴 하나를 만드는 두 레시피의 단순화된 예시입니다.
| 레시피 | 입력 | 결과물 | 제작 시간 | 시설 |
|---|---|---|---|---|
| 고철 제련 | 고철 3개 | 철괴 1개 | 6초 | 모닥불 |
| 광석 제련 | 철광석 2개, 연료 1개 | 철괴 1개 | 4초 | 제련로 |
초반 지역에서 고철 가격을 4, 철광석 가격을 8, 연료 가격을 2로 설정하면 다음과 같습니다.
- 고철 제련 입력 비용: 3 × 4 = 12
- 광석 제련 입력 비용: 2 × 8 + 2 = 18
이 구간에서는 고철 제련이 더 저렴하므로 하위 레시피가 의미가 있습니다. 하지만 후반 지역에서 고철의 희소성이 높아져 기준 가격이 8로 변하고 철광석 가격이 6으로 내려가면 결과가 바뀝니다.
- 고철 제련 입력 비용: 3 × 8 = 24
- 광석 제련 입력 비용: 2 × 6 + 2 = 14
두 레시피의 결과물이 같고 광석 제련이 더 빠르다면 후반 환경에서 고철 제련은 광석 제련에 지배됩니다. 이 문제를 해결하는 방법은 여러 가지입니다.
- 후반에도 고철이 나오는 해체 콘텐츠를 추가한다.
- 고철 제련은 부산물로 퀘스트 재료를 제공하게 한다.
- 광석 제련은 제련로와 연료를 요구하도록 유지한다.
- 고철 제련의 제작 시간을 줄여 현장 대응용 역할을 부여한다.
- 두 레시피를 지역별 경제 시나리오로 분리해 가격 변화를 검증한다.
핵심은 고철 제련을 무조건 상향하는 것이 아닙니다. 후반 플레이어가 고철 제련을 선택해야 하는 이유를 하나 정하고 그 이유가 실제 게임 규칙과 UI에서 드러나도록 만드는 것입니다.
크래프팅 밸런싱 검수 체크리스트
출시 전이나 대규모 패치 전에 다음 순서로 확인하면 됩니다.
- 같은 기능을 수행하는 레시피를 기능군으로 묶습니다.
- 중간 재료와 부산물을 포함한 제작 그래프를 계산합니다.
- 자원별 기준 가격과 시간 가치 T를 정의합니다.
- 제작 시간, 위험, 시설 접근 비용을 실효 비용에 반영합니다.
- 기능군 내 레시피의 파레토 프론티어를 구합니다.
- 프론티어 밖 레시피마다 의도된 역할이 있는지 확인합니다.
- 역할이 없다면 비용, 시간, 출력, 접근성 중 한 축을 조정합니다.
- 초반·중반·후반과 주요 지역별 시나리오에서 다시 계산합니다.
- 레시피 사용률과 결과물 소비율을 텔레메트리로 검증합니다.
- 패치 후 지배 관계가 새로 생겼는지 회귀 테스트합니다.
자주 묻는 질문 FAQ
지배되는 레시피는 반드시 삭제해야 하는가?
아닙니다. 초반 접근성, 휴대성, 안전성, 퀘스트 수요처럼 대체되지 않는 역할이 있다면 유지할 수 있습니다. 다만 그 역할이 실제 규칙과 플레이어 경험에서 분명해야 합니다.
상점 판매 가격을 자원 기준 가격으로 사용해도 되는가?
초기 분석에는 사용할 수 있지만 최종 밸런싱에는 부족합니다. 채집 시간, 다른 레시피의 수요, 지역별 희소성, 자원 운송 위험을 반영한 기준 가격이 더 정확합니다.
레시피가 수백 개라면 어떻게 분석해야 하는가?
먼저 결과물의 기능군을 분류하고 각 기능군 안에서만 파레토 지배 검사를 수행합니다. 이후 중간 재료를 포함한 제작 그래프와 패치별 가격 시나리오를 자동 계산하면 수작업 비교를 줄일 수 있습니다.
정리
크래프팅 밸런싱의 핵심은 레시피 개수를 늘리는 것이 아니라 선택 가능한 이유를 유지하는 데 있습니다. 입력 비용, 제작 시간, 출력 가치, 희소성, 위험, 접근성을 실효 비용으로 통합하고 기능군별 파레토 프론티어를 분석하면 버려지는 하위 조합을 구조적으로 찾을 수 있습니다.
분석 결과에서 지배된 레시피를 발견했다면 곧바로 삭제하거나 보상 수치를 올리기보다 먼저 의도된 역할을 확인해야 합니다. 역할이 없다면 정리하고 역할이 있다면 휴대성·안전성·지역성·부산물처럼 상위 조합이 대체할 수 없는 축을 설계하는 것이 안정적인 크래프팅 밸런싱으로 이어집니다.



