위키 목차

데모 사용 안내: 0.8.0 · 2026-09-22 검토

이 페이지의 내용

규칙과 수식

아이템, 퀘스트, 능력을 만드는 방법은 게임 데이터에 있습니다. 이 페이지는 장면 행동의 조건·판정·효과 수식과 데이터 형식을 설명합니다. 수식 데이터를 직접 편집할 때는 뒤쪽의 고급 안내를 참고하세요.

주사위 없이 시작하기

조건으로 열쇠 소지 여부를 확인하고 효과로 문을 열거나 다음 장면으로 이동하는 흐름에는 주사위가 필요하지 않습니다. 아래 d20은 선택형 판정 예시입니다. 규칙 팩과 출처의 계획도 확인할 수 있습니다.

처음 만드는 판정

  1. 사용할 능력치를 게임 데이터에 정의합니다. 단순 d20 판정의 능력치는 수정치로 사용합니다.
  2. 이야기에서 행동을 만들고 한 번 적용합니다.
  3. 행동을 다시 열어 수식 조합에서 사용할 값과 연산을 연결합니다.
  4. 주사위와 능력치를 더한 결과에 목표값을 지정하고 성공·실패 목적지를 정합니다.
  5. 저장한 뒤 검사와 미리보기에서 두 결과를 확인합니다.

예를 들어 d20 + 설득 수정치 ≥ 12는 설득 행동의 판정입니다. 열쇠를 가지고 있는지 확인하는 조건에는 주사위를 넣지 않습니다. 효과는 성공이나 행동 이후에 바뀔 값을 정하는 데 사용합니다.

카탈로그와 참조

아이템, 퀘스트, 플레이어 캐릭터의 능력치와 초기 인벤토리는 게임 데이터 메뉴의 편집 창에서 작성합니다. 아이템/퀘스트/능력치 ID는 처음 만든 뒤 바꿀 수 없습니다. 이름·설명·수치는 ID를 보존한 채 바꿀 수 있습니다. 인벤토리 수량을 0으로 적용하면 초기 소지품에서 해당 항목이 빠집니다. 음수 소지 수량과 음수 회복량은 허용하지 않습니다.

장면 조건·효과·판정·수식 또는 캐릭터가 참조하는 항목은 삭제할 수 없습니다. 먼저 그 항목을 사용하는 곳을 수정하세요. 편집 창에서 적용한 변경은 한 번의 실행 취소로 되돌릴 수 있습니다. 잘못된 입력은 프로젝트에 적용되지 않습니다. 게임 실행 중 얻은 아이템과 퀘스트 상태는 별도의 플레이 상태에 저장됩니다.

고급: 수식 데이터 형식

Condition.expression, Effect.expression, Check.expression에 연산을 트리 구조로 표현한 데이터(AST)를 저장할 수 있습니다. 기존 조건 op, 효과 value, 판정 dice + attribute 형식도 계속 사용할 수 있습니다. expression이 있으면 해당 기존 값 대신 사용합니다. 판정 수식 결과는 기존 target과 비교합니다. 효과 수식은 inventory, set, add, hp에서만 사용합니다.

연산 인자 결과
int value 정수 숫자
ref ref 참조 숫자
dice count, sides 숫자
add, sub 숫자 인자 2개 숫자
eq, ne, lt, le, gt, ge 숫자 인자 2개 참/거짓
and, or 참/거짓 인자 2개 참/거짓
not 참/거짓 인자 1개 참/거짓

하위 인자는 args 배열에 저장합니다. 참조는 hp, maxHp, stat:<능력치 ID>, variable:<변수명>, inventory:<아이템 ID>를 지원합니다. 능력치와 아이템 참조는 프로젝트에 존재해야 하며, 미설정 변수와 미보유 아이템의 값은 0입니다. 정수 덧셈·뺄셈의 결과가 정수 범위를 넘으면 오류가 발생합니다. 범용 코드나 스크립트를 실행하지 않습니다.

예: 2d6 + insight 판정

{
  "expression": {
    "op": "add",
    "args": [
      { "op": "dice", "count": 2, "sides": 6 },
      { "op": "ref", "ref": "stat:insight" }
    ]
  },
  "target": 10
}

수식 하나의 최대 깊이는 24, 노드는 256, 총 주사위는 100개입니다. 각 주사위는 2~100,000면을 지원합니다. 조건은 참/거짓을 반환하며 주사위를 넣을 수 없습니다. 따라서 선택지 표시를 반복해 검사해도 난수나 게임 상태가 바뀌지 않습니다. 무작위 분기는 판정 수식을 사용합니다.

실행 전에 수식 전체의 자료형과 크기를 검사합니다. and와 or는 결과가 결정되면 나머지 인자를 계산하지 않습니다. 오프라인은 재현 가능한 난수 흐름을, 온라인 영속 세션은 각 주사위의 암호학적 난수와 확정 결과 기록을 사용합니다. 명령이 실패하면 상태를 되돌리며, 이미 처리된 온라인 명령을 같은 ID로 재전송해도 다시 굴리지 않습니다.

현재 AST는 지원되는 실행 문맥의 정수 값만 계산할 수 있습니다. 문자열 연산, 임의 함수 호출, 곱셈·나눗셈, 사용자 코드 실행은 지원하지 않습니다.

← 위키 전체 목차Narrafield 소개 →