GAME-ECON-SIM · OPEN SOURCE
게임 경제를 출시 전에 돌려 보는 시뮬레이터
확률 검증 리포트: 뽑기 로그로
통화·획득처·소모처·업그레이드·환생·알(가챠)과 천장·유료 상품·플레이어 유형을 JSON 파일 하나에 적으면, 진행 속도·인플레이션·소모 비율·매출·천장을 반영한 확률 공개표와 설계 목표 통과 여부를 돌려줍니다. 공개 중인 확률표와 서버 뽑기 로그가 설정과 맞는지 검증하는 리포트도 냅니다. 로블록스를 먼저 겨냥했고, 모바일·웹 게임도 같은 형식으로 씁니다.
실행
Node.js 18.17 이상만 있으면 됩니다. 설치할 패키지도, 네트워크도, 계정도 필요 없습니다. 같은 시드면 같은 결과가 나와서 밸런스 수정 전후를 비교할 수 있습니다.
git clone https://github.com/GlorisMoon/game-econ-sim cd game-econ-sim node src/cli.mjs examples/pet_sim.econ.json
저장소를 받지 않고 내 설정 파일만 돌릴 때:
npx github:GlorisMoon/game-econ-sim my-game.econ.json
모든 목표를 통과하면 종료 코드 0, 설정이 틀리면 1, 목표 하나라도 실패하면 2라서 빌드 점검에도 넣을 수 있습니다.
무엇이 나오나
저장소의 예시 펫 시뮬레이터를 그대로 돌린 출력의 일부입니다.
TARGETS 8/10 pass
✓ zone2_fast daysToOwn 0.5 in [0.2, 1.5]
✓ zone3_week daysToOwn 4.16 in [3, 7]
✗ first_rebirth daysToRebirth 16.109 in [5, 10]
✗ gem_sinks sinkCoverage 0.445 min 0.6
ECONOMY per run
gems source 2.02M · sink 898.7k · sink/source 0.45
sources: duplicate 38%, daily_quests 22%, daily_login 21%, gems_l 18%
LOOTBOXES odds at base luck, pity applied
egg_robux · 99 Robux PAID RANDOM ITEM: odds must be disclosed
phoenix mythic base 4.000% effective 5.665%
pity: mythic guaranteed by pull 30 · expected pulls 17.7- 그라인더의 첫 환생이 16일 걸려 목표(5~10일)보다 늦습니다.
- 젬은 쓰는 곳보다 버는 곳이 많아 쌓이기만 하고, 그 수입의 38%가 중복 펫 환전에서 나옵니다.
- 99 Robux 유료 알의 신화 등급은 표기 4%지만, 30회 천장을 반영하면 실제로는 5.665%가 나옵니다.
표만 들여다봐서는 보이지 않던 것을 세어서 보여 주는 것이 이 도구의 일입니다. 확률은 표본을 뽑아 추정하지 않고 천장 주기로 정확히 계산합니다.
확률 공개 검증 리포트
같은 설정 파일로, 지금 공개하고 있는 확률표와 서버의 뽑기 로그를 대조해 한 장의 리포트(Markdown·JSON, 한국어·영어)를 만듭니다.
- 공개표 ↔ 설정
- 빠진 항목, 합계 100%, 천장을 반영하지 않은 기본 확률만 공개했는지(이 경우 천장 조건을 함께 표기했는지 확인하라고 경고)
- 서버 로그 ↔ 설정
- 플레이어별로 천장 카운터를 다시 세어 뽑기마다 그때의 확률로 검정합니다. 항목별 검정(본페로니 보정), 적합도 검정, 천장 위반(확정 차례를 놓친 천장 주기), 천장 구간별 출현률, 이 데이터로 잡아낼 수 있는 최소 차이
- 공개용 확률표
- 항목별 확률과 천장을 반영한 실효 확률, 천장·운(luck) 조건 문구
node src/cli.mjs verify examples/pet_sim.econ.json \ --logs examples/pulls_bug.csv --disclosed examples/disclosed.csv \ --report report.md --lang ko
예시의 버그 서버 로그(천장을 30회가 아니라 40회로, 신화 가중치를 4가 아니라 3으로 배포한 경우)를 넣은 결과입니다.
egg_robux FAIL 2,000 pulls
! disclosure_base
! luck_not_logged
✗ pity_violation: 25
✗ item_rejected: fox, dragon, phoenix
✗ gof_rejected
! pity_curve합성 로그로 잰 성능(유의수준 0.05): 정상 서버를 실패로 잘못 잡는 비율 약 5%, 천장 버그는 항상 검출, 신화 확률 4%→3% 같은 가중치 버그는 2,000회 로그에서 52%, 10,000회에서 100% 검출.
받은 로그 안에서만 판단하며 로그가 진짜인지·빠짐없는지는 확인하지 않습니다. 뽑기 로그의 플레이어 식별자는 가명 처리한 뒤 넣으세요.
Claude Code에서 쓰기
플러그인으로 설치하면 Claude가 설정 파일을 쓰고 고치고, 로블록스 Studio MCP가 연결돼 있으면 게임 설정 모듈을 직접 뽑아 옮긴 뒤, 엔진을 돌려 실패한 목표를 그 숫자의 근거와 함께 설명합니다.
/plugin marketplace add GlorisMoon/game-econ-sim /plugin install game-econ-sim@game-econ-sim
하지 않는 것
- 실제 플레이어를 예측하지 않습니다. 적어 넣은 가정(잔존·세션·결제)의 결과를 보여 줍니다.
- 실제 게임 코드가 파일과 같은 가중치·천장을 쓰는지는 확인하지 않습니다.
- 확률 공개표는 법률 자문이 아닙니다. 스토어 정책, 로블록스 유료 랜덤 아이템 규정, 국내 게임산업법의 확률 공개 의무 등 적용 여부는 직접 확인해야 합니다.
- 실측 지표 대조(Open Cloud·GA4), 광고·시즌 패스·에너지 모델, 강화·합성 확률 검증은 아직 없습니다.
라이선스
AGPL-3.0입니다. 수정한 버전을 서비스로 운영하면 소스를 공개해야 합니다. 그 의무 없이 쓰는 상용 라이선스는 GitHub로 문의하세요.