열차 분실물 이야기에서 대화 순서를 설계하는 방법: 각 승객은 필요한 정보 한 조각만 제공한다
먼저 결론부터: "누가 먼저 말하는가"를 스토리 보상이 아니라 배제법의 일부로 취급하라. 각 승객은 승차권, 좌석 또는 환승 기록을 검증할 수 있는 단편 하나만 가지고 있다. 플레이어가 어떤 순서로 물어도 단편은 얻을 수 있지만, "승차권 모서리 결손—좌석 방향—환승역 이름" 세 가지 정보를 조합해야만 물건의 주인을 확인할 수 있다. 아래에서는 가상의 교육용 예시 《열두 번째 객차》로 전체 구성을 한 번 따라가 본다. 숫자와 대화는 모두 설계 예시이며 실제 측정 자료가 아니다.

들어가며
먼저 결론부터: "누가 먼저 말하는가"를 스토리 보상이 아니라 배제법의 일부로 취급하라. 각 승객은 승차권, 좌석 또는 환승 기록을 검증할 수 있는 단편 하나만 가지고 있다. 플레이어가 어떤 순서로 물어도 단편은 얻을 수 있지만, "승차권 모서리 결손—좌석 방향—환승역 이름" 세 가지 정보를 조합해야만 물건의 주인을 확인할 수 있다. 아래에서는 가상의 교육용 예시 《열두 번째 객차》로 전체 구성을 한 번 따라가 본다. 숫자와 대화는 모두 설계 예시이며 실제 측정 자료가 아니다.
먼저 세 명의 용의자가 아니라 세 조각의 필요 정보를 정의하라
《열두 번째 객차》에서 주인공은 회색 천 재질의 승차권 지갑을 찾고 있으며, 그 안에는 한쪽 모서리가 찢긴 오래된 승차권이 끼워져 있다. 세 승객은 각각 한 가지씩 알고 있다:
| 승객 | 좌석 | 제공하는 한 조각의 정보 | 정보 유형 |
|---|---|---|---|
| 목도리를 뜨는 노인 | 12A | 승차권 결손은 왼쪽 위, 찢긴 면은 안쪽을 향함 | 물건 특징 |
| 악기 상자를 안은 청년 | 12C | 주인은 원래 12B에 앉아 있었고 도중에 9F로 옮김 | 좌석 변동 |
| 졸고 있는 통근자 | 12F | 환승역은 "류차오"가 아니라 "류취"임 | 환승 기록 |
세 조각의 정보는 서로 독립적이며, 어느 하나도 단독으로 승차권 지갑의 주인을 확인할 수 없다. 노인이 말한 결손은 "결손이 있는 승차권"으로만 좁힐 수 있고, 청년이 말한 좌석은 "12B 근처에 있었던 사람"으로만 좁힐 수 있으며, 통근자가 말한 역 이름은 "류취"라는 잘못된 경로만 배제할 수 있다. 플레이어는 최소 두 조각을 얻어야 대조를 시작할 수 있고, 세 조각을 얻어야 확인할 수 있다.
두 가지 방문 순서 모두 통과 가능하다
설계할 때 먼저 두 가지 순서를 작성하여 "반드시 어느 한 경로로만 가야 하는" 막힌 구조가 없도록 하라.
순서 1: 먼저 노인에게 묻고, 그다음 청년에게 묻고, 마지막으로 통근자에게 묻는다. 노인이 결손 특징을 제시한 후 플레이어는 좌석 구역에서 승차권을 확인할 수 있다. 청년이 12B에서 9F로의 좌석 이동을 보충하면 플레이어는 12B가 지금 비어 있다는 것을 깨닫는다. 통근자가 "류차오"를 보충하면 플레이어는 승차권의 역 이름과 환승 기록을 맞춰 본다.
순서 2: 먼저 통근자에게 묻고, 그다음 노인에게 묻고, 마지막으로 청년에게 묻는다. 통근자가 먼저 "류차오"를 주면 플레이어는 먼저 환승표를 확인하러 갈 수 있고, 류차오역이 실제로 열두 번째 객차를 정차시킨다는 것을 발견한다. 노인이 다시 결손을 주면 플레이어는 물건 자체로 돌아간다. 청년이 마지막으로 좌석 변동을 보충하면 플레이어는 비로소 "누가 12B에 앉았는가"와 "누가 류차오에서 내렸는가"를 연결한다.
두 순서의 차이는 플레이어가 어느 단서를 먼저 확인하는가에만 있을 뿐, 최종 확인 조건을 바꾸지 않는다. 이렇게 쓰는 장점은 플레이어가 잘못된 사람에게 먼저 물었다고 해서 막히지 않고, 누군가를 건너뛰었다고 해서 핵심 정보를 영원히 얻지 못하는 일도 없다는 것이다.
연속 심문이 아니라 정보 교환
연속 심문식 서술은 이렇다: A에게 묻고, A가 말을 마치고, B에게 묻고, B가 말을 마치고, C에게 묻고, C가 말을 마친 뒤 갑자기 결론에 도달한다. 정보 교환식 서술은 이렇다: 플레이어가 한 조각을 얻은 뒤 그것을 가지고 다른 사람에게 물어, 상대가 보충하거나 수정하게 할 수 있다.
예를 들어 플레이어가 먼저 노인에게 묻자 노인이 말한다: "찢긴 면이 안쪽을 향해 있어, 승차권 지갑에서 꺼낼 때 찢긴 것 같아." 플레이어는 이 말을 가지고 청년에게 물을 수 있다: "누군가 12B에서 승차권을 꺼내는 걸 본 적 있어?" 청년이 답한다: "승차권은 못 봤지만, 12B 승객이 류차오 전에 자리를 옮겼어." 여기서 청년은 노인의 정보를 반복하지 않고 좌석 변동만 보충한다. 플레이어는 다시 "류차오"를 가지고 통근자에게 묻고, 통근자가 말한다: "류차오가 맞아, 류취는 앞 역이니까 헷갈리지 마." 통근자도 좌석 정보를 반복하지 않고 역 이름만 수정한다.
이런 교환 덕분에 각 대화에는 새로운 내용이 생기고, 플레이어는 같은 일을 반복해서 묻는다고 느끼지 않는다.
최종 확인과 오인 피드백
세 조각의 정보가 모두 모이면 확인 동작은 구체적이어야 한다. 플레이어는 승차권 지갑 안쪽에서 승차권을 찾아 세 가지를 대조한다: 결손이 왼쪽 위에 있고 찢긴 면이 안쪽을 향함; 승차권 뒷면에 12B의 연필 자국이 있음; 역 이름이 "류차오"로 인쇄됨. 세 가지가 모두 맞으면 시스템은 확인 피드백을 준다: "승차권이 주인 설명과 일치합니다." 두 조각만 얻었다면 피드백은 이렇다: "결손은 맞았지만 역 이름이 아직 한 단계 부족합니다." "류취"를 얻었다면 피드백은 이렇다: "역 이름이 맞지 않습니다, 앞 역일 수 있습니다."
오인 피드백도 분명히 써야 한다. 플레이어는 12C의 악기 상자를 승차권 지갑으로 착각할 수 있는데, 둘 다 회색 천 재질이기 때문이다. 이때 청년이 말한다: "이건 내 악기 상자야, 승차권 지갑이 아니야." 이 말은 새로운 세계 사실이 아니라, 등장인물이 오인을 바로잡는 것뿐이다. 플레이어는 이로 인해 새 단서를 얻지는 않지만, "회색 천 재질"이 유일한 특징이 아니라는 것을 알게 되고 결손을 계속 찾아야 한다.
대화를 쓸 때는 먼저 정보를 나열하고 그다음 대사를 써라
먼저 "노인이 수상하다"거나 "청년이 긴장한다"고 쓰지 마라. 그러면 플레이어가 정보가 아니라 감정에 주의를 두도록 유도하게 된다. 먼저 세 조각의 정보를 나열하고, 각 정보에 대사 한 줄을 붙여라. 대사에는 한 조각의 정보만 넣고 두 번째 조각을 끼워 넣지 마라.
노인: "찢긴 면이 안쪽을 향해, 왼쪽 위가 결손이야." 청년: "12B 승객이 9F로 옮겼어." 통근자: "류차오야, 류취가 아니야."
세 대사 모두 짧아서 플레이어가 기억하기 쉽고, 이후 대화에서 인용하기도 편하다. 대사가 너무 길면 플레이어는 어느 문장이 핵심인지 구분하지 못한다.
완료 점검
대화 순서를 다 쓴 뒤에는 아래 다섯 항목으로 점검하라:
- 각 승객이 필요한 정보 한 조각만 제공하고, 한 사람이 두 조각을 말하지 않는가?
- 적어도 두 가지 방문 순서가 존재하고, 둘 다 세 조각의 정보를 얻을 수 있는가?
- 플레이어가 한 조각의 정보를 가지고 다른 사람에게 물을 수 있고, 고정된 순서로만 물어야 하지는 않는가?
- 최종 확인이 어느 한 대사가 아니라 세 조각 정보의 조합에 의존하는가?
- 오인 피드백이 오류만 바로잡고 새로운 세계 사실을 추가하지 않는가?
다섯 항목을 모두 통과하면 대화 순서는 성립한다. 다음으로 최소 테스트를 하나 써 볼 수 있다: 친구 한 명에게 순서 1과 순서 2를 각각 한 번씩 진행하게 하고, 둘 다 승차권 지갑의 주인을 확인할 수 있는지 보라. 어느 순서에서 막힌다면, 먼저 어느 승객이 "반드시 마지막에 물어야 하는" 사람으로 쓰였는지 점검하라.
세 승객의 대사를 카드에 적고, 순서를 섞은 뒤 먼저 두 장을 뽑아 무엇이 배제되었고 무엇이 아직 부족한지 기록하라. 그다음 세 번째 장을 보태어 주인 확인을 완료할 수 있는지 점검하라. 두 장으로는 최종 답을 낼 수 없으며, 이는 이 예시의 "세 조각 필요 정보" 설계에 부합한다. 만약 세 장이 모두 모였는데도 똑같이 합리적인 주인 후보가 여럿이라면, 검증 가능한 차이를 보충해야 한다.


