DramaFork 상호작용 노드 검토 방법: 선택지 텍스트, 출구, 회수 결과를 쌍으로 봐야 한다
상호작용 노드를 검토할 때는 각 선택지를 하나의 '약속—이행' 쌍으로 취급해야 한다. 플레이어가 버튼에서 읽는 의도는 출구가 가리키는 노드에서 대응하는 결과를 반드시 얻어야 하며, 그 결과는 메인 라인으로 돌아가거나 명확한 마무리를 형성할 수 있어야 한다. 버튼 텍스트만 검사하거나 노드 연결만 보면 빈 출구, 잘못된 연결, 동일 의도 중복을 놓치게 된다. 아래에서는 가상 교육 예시 '온실 문 안팎'을 사용하여 반복 사용 가능한 검토표를 설명한다.

개요
상호작용 노드를 검토할 때는 각 선택지를 하나의 '약속—이행' 쌍으로 취급해야 한다. 플레이어가 버튼에서 읽는 의도는 출구가 가리키는 노드에서 대응하는 결과를 반드시 얻어야 하며, 그 결과는 메인 라인으로 돌아가거나 명확한 마무리를 형성할 수 있어야 한다. 버튼 텍스트만 검사하거나 노드 연결만 보면 빈 출구, 잘못된 연결, 동일 의도 중복을 놓치게 된다. 아래에서는 가상 교육 예시 '온실 문 안팎'을 사용하여 반복 사용 가능한 검토표를 설명한다.
먼저 세 열 대조표를 만들고, 분기 다이어그램을 먼저 그리지 않는다
DramaFork의 노드는 드래그 분기 다이어그램이 아니라 편집 표로 구성된다. 검토할 때는 현재 노드 표 옆에 별도의 확인 표를 여는 것이 좋으며, 각 행에는 선택지 하나만 넣고 세 열을 고정한다:
- 선택지 텍스트: 플레이어가 실제로 보는 버튼 원문.
- 출구: 해당 선택지가 가리키는 다음 노드 이름.
- 회수 결과: 다음 노드에 진입한 후 플레이어가 읽는 첫 번째 서사 또는 상태 변화.
세 열은 반드시 쌍으로 나타나야 한다. 어떤 행에 선택지 텍스트만 있고 출구가 비어 있으면 빈 출구이고, 출구가 가리키는 노드 내용이 버튼 의도와 맞지 않으면 잘못된 연결이며, 두 버튼 텍스트는 다르지만 출구와 회수 결과가 거의 동일하면 동일 의도 중복이다. 다음 예시는 모두 가상 교육 자료이며 어떤 실제 프로젝트에도 대응하지 않는다.
온실 문 안팎: 삼노드 검토표
최소 장면을 설정한다: 플레이어는 온실 문 밖에 있고, 들어갈지 결정해야 한다. 노드 표에는 세 노드가 있다: 문밖 선택, 문을 밀고 진입, 측창으로 우회.
| 선택지 텍스트 | 출구 | 회수 결과 |
|---|---|---|
| "문을 밀고 들어간다" | 문을 밀고 진입 | 문축에서 건조한 소리가 나고, 너는 습하고 뜨거운 공기 속으로 발을 들인다 |
| "먼저 측창으로 돌아가 본다" | 측창으로 우회 | 너는 벽을 따라 측창으로 걸어가고, 유리에는 물안개가 맺혀 있다 |
| "문을 밀고 들어간다" | 측창으로 우회 | 너는 벽을 따라 측창으로 걸어가고, 유리에는 물안개가 맺혀 있다 |
세 번째 행은 전형적인 잘못된 연결이다: 버튼에는 "문을 밀고 들어간다"라고 쓰여 있지만 출구는 측창 노드를 가리키고, 회수 결과도 완전히 측창의 내용이다. 플레이어가 "문을 밀고 들어간다"를 클릭했는데 창문 우회를 읽게 되면 버튼 의도와 출구가 일치하지 않는다. 위치를 찾는 방법은 먼저 출구 열로 정렬하고, 같은 출구 아래에 서로 다른 버튼 텍스트가 나타나면 행별로 회수 결과를 대조하는 것이다. 위 표에서 "측창으로 우회"는 두 개의 서로 다른 버튼이 공유하고 있으며, 그중 하나는 반드시 틀렸다.
다음으로 빈 출구의 작성법을 보자: 문밖 선택에 네 번째 선택지 "유리를 두드려 본다"를 추가하고, 출구 필드는 비워 두고 회수 결과도 비운다. 플레이어가 클릭해도 아무 후속이 없으면 이것이 빈 출구이다. 처리할 때는 노드를 하나 보충하거나, 예를 들어 유리 두드리기를 만들고 "너는 손가락을 굽혀 두 번 두드렸지만, 안에서는 아무 응답이 없다"라고 명시하거나, 아니면 이 선택지를 바로 삭제해야 한다. 보충하지 않고 남겨 두면 플레이어는 이 단계에서 멈추게 된다.
반환 폐쇄 루프는 어떻게 가는가
반환 폐쇄 루프란 현재 노드에서 출발하여 여러 출구를 거친 후 현재 노드로 돌아오거나 메인 라인 노드로 돌아올 수 있는 것을 말한다. 측창으로 우회를 예로 들면, 이 노드에 "문밖으로 물러난다"라는 선택지만 있고 출구가 문밖 선택을 가리키면 폐쇄 루프가 성립하여 플레이어는 문밖과 측창 사이를 반복 이동할 수 있다. 측창 노드의 선택지가 "계속 안으로 걸어간다"이고 출구가 존재하지 않는 노드를 가리키면 폐쇄 루프가 끊어져 플레이어가 막히게 된다. 폐쇄 루프를 검사할 때는 각 출구에서 출발하여 가리키는 방향을 따라 이미 방문한 노드로 돌아오거나 명확한 종료 노드에 도달할 때까지 걷는다. 도중에 빈 출구를 만나거나 존재하지 않는 노드를 가리키면 해당 경로는 폐쇄되지 않은 것으로 기록한다.
여기서 놓치기 쉬운 상황이 하나 있다: 문을 밀고 진입 노드에 "원래 길로 돌아간다"라는 선택지만 있고 출구가 문밖 선택을 가리키면 폐쇄 루프도 성립한다. 하지만 문밖 선택에서 "문을 밀고 들어간다"의 출구가 잘못 측창으로 우회로 변경되었다면, 플레이어가 문을 밀고 진입에서 반환한 후 다시 "문을 밀고 들어간다"를 클릭해도 측창에 도착하게 되어, 폐쇄 루프는 존재하지만 경로는 이미 잘못 연결된 것이다. 따라서 폐쇄 루프 검사는 제어 검사와 함께 해야 하며, "돌아갈 수 있는가"만 봐서는 안 된다.
동일 의도 중복의 판정
동일 의도 중복은 텍스트가 유사한 것이 아니라, 두 선택지의 출구와 회수 결과가 같은 결과를 표현하는 것이다. 예를 들어:
- 선택지 A: "문을 밀고 들어간다" → 문을 밀고 진입 → "너는 습하고 뜨거운 공기 속으로 발을 들인다"
- 선택지 B: "억지로 들이닥친다" → 문을 밀고 진입 → "너는 습하고 뜨거운 공기 속으로 발을 들인다"
두 버튼 텍스트는 다르지만 출구와 회수 결과가 같아서, 플레이어는 선택할 때 서로 다른 전개를 얻지 못한다. 처리 방식은 하나의 선택지로 합치거나, 둘 중 하나의 출구를 바꾸고 서로 다른 회수 결과를 보충하는 것이다. 정말로 두 개의 입구가 같은 노드로 통하게 해야 한다면, 회수 결과에서 차이를 드러내는 것이 좋다. 예를 들어 하나는 "문축에서 건조한 소리가 난다"라고 쓰고, 다른 하나는 "너는 힘껏 문을 들이받아 경첩이 한 번 흔들렸다"라고 써서 플레이어가 차이를 읽게 한다.
또 하나의 숨은 중복이 있다: 두 선택지의 출구는 다르지만 회수 결과가 한두 글자만 다른 경우, 예를 들어 "너는 온실로 걸어 들어간다"와 "너는 온실에 들어갔다"이다. 이런 차이는 플레이어에게 유효한 선택을 구성하지 않으므로 여전히 동일 의도 중복으로 보아야 하며, 둘 중 하나를 합치거나 다시 써야 한다.
완료 검사
현재 노드 검토를 마친 후 항목별로 확인한다:
- 모든 선택지에 비어 있지 않은 출구가 있고, 출구가 존재하는 노드를 가리킨다.
- 모든 출구에 대응하는 회수 결과가 버튼 텍스트 의도와 일치한다.
- 두 선택지가 같은 출구를 공유하면서 회수 결과가 같은 경우가 없다.
- 모든 출구에서 출발하여 메인 라인으로 돌아가거나 종료 노드에 도달할 수 있고, 끊어진 체인이 없다.
- 노드를 수정한 후에는 관련된 완료 단계만 업데이트 필요로 표시하고, 이전 데이터는 보존하며, 이전 소재 표현이 여전히 성립하는지 수동으로 확인한다.
이 글은 DramaFork가 정리했으며, 현재 프로젝트 구현에 따라 설명한다: 노드는 편집 표로 구성되고, 텍스트와 노드를 편집할 수 있으며, 실패한 소재 작업을 개별적으로 재시도할 수 있다. 드래그 분기 다이어그램이나 복잡한 조건 엔진은 없다. 검토를 마친 후에는 먼저 출구가 비어 있거나 잘못 연결된 선택지 하나를 골라 대상 노드를 보충하고 회수 결과를 명확히 쓴 다음, 폐쇄 루프를 다시 한 번 걸어 본다.


