텍스트 어드벤처의 오브젝트를 조작 가능하게 만들기: 묘사에 어떤 용도 단서를 드러내야 할까?
플레이어가 '오래된 온실'에 갇혀 황동 밸브에 '돌려 열기', '돌리기', '열기', '비틀어 열기'를 입력했지만 시스템은 '할 수 없다'고만 답한다. 문제는 보통 동사 목록이 아니라 묘사가 용도 단서를 주지 않기 때문이다. 조작 가능한 오브젝트 묘사는 네 가지 정보를 동시에 드러내야 한다: 재질과 구조, 위치와 방향, 현재 상태, 연결 관계. 플레이어는 이를 근거로 '그것에 무엇을 할 수 있는지' 추론해야 하며, 작가 마음속의 유일한 동사를 맞혀야 하는 것이 아니다.

들어가며
플레이어가 '오래된 온실'에 갇혀 황동 밸브에 '돌려 열기', '돌리기', '열기', '비틀어 열기'를 입력했지만 시스템은 '할 수 없다'고만 답한다. 문제는 보통 동사 목록이 아니라 묘사가 용도 단서를 주지 않기 때문이다. 조작 가능한 오브젝트 묘사는 네 가지 정보를 동시에 드러내야 한다: 재질과 구조, 위치와 방향, 현재 상태, 연결 관계. 플레이어는 이를 근거로 '그것에 무엇을 할 수 있는지' 추론해야 하며, 작가 마음속의 유일한 동사를 맞혀야 하는 것이 아니다.
아래에서는 가상의 교육 예시 '오래된 온실'을 관통해서 사용한다. 이 예시의 인물, 오브젝트, 수치는 모두 작성 예시이며 실제 측정 자료가 아니다.
먼저 단서가 없는 묘사를 보자
온실 구석에 밸브가 하나 있다. 옆 바닥에 천 조각이 있고, 선반 위에 유리병이 놓여 있다.
이 글은 읽을 수는 있지만 조작할 수는 없다. 플레이어는 밸브가 무엇에 연결되어 있는지, 천 조각이 마른 것인지 젖은 것인지, 병에 뚜껑이 있는지 알 수 없다. 어떤 동사든 추측에만 의존할 수밖에 없다. 작가가 판정을 '밸브를 비틀어 열기'만 받아들이도록 작성했다면, 플레이어가 '비틀기', '돌리기', '당기기'를 입력해도 모두 거부된다. 좌절감은 묘사의 결핍에서 오는 것이지 플레이어가 똑똑하지 않아서가 아니다.
네 가지 단서를 보완한 대조
| 단서 유형 | 정적 서술 | 조작 가능 서술 |
|---|---|---|
| 재질과 구조 | 밸브가 하나 있다 | 밸브 몸체는 황동이고, 육각 너트가 관구에 끼어 있으며, 손잡이는 위를 향한다 |
| 위치와 방향 | 옆에 천 조각이 있다 | 천 조각은 밸브 바로 아래 철제 난간에 걸쳐 있고, 한쪽 끝은 고인 물에 잠겨 있다 |
| 현재 상태 | 선반 위에 유리병이 있다 | 유리병은 중간 선반에 가로 누워 있고, 병 입구에는 코르크 마개가 꽂혀 있으며, 병 몸체에 가는 금이 있다 |
| 연결 관계 | 밸브가 관에 연결되어 있다 | 밸브 위쪽은 녹슨 수직관에, 아래쪽은 짧은 수평관에 연결되며, 수평관은 유리병 위쪽 노즐로 이어진다 |
네 가지 단서가 모두 갖춰지면 플레이어는 추론할 수 있다: 밸브는 손잡이를 돌릴 수 있다; 천 조각은 물을 흡수하거나 손잡이를 감쌀 수 있다; 병 마개는 뽑을 수 있다; 노즐 방향은 병을 향한다. 시도 가능한 행동 범위는 따라서 설명 가능해지며, 무한한 동사 목록이 되지 않는다.
단서를 시도 가능 범위로 쓰기
묘사 뒤에는 '시도 가능 범위' 한 문장으로 마무리하여, 어떤 행동이 판정 안에 있고 어떤 것이 단지 환경 묘사인지 명확히 하는 것이 좋다:
손잡이를 돌리거나, 천 조각으로 손잡이를 감싼 뒤 돌리거나, 병 마개를 뽑거나, 병을 노즐 아래에서 치울 수 있다. 밸브는 배관에 고정되어 있어 통째로 옮길 수 없다.
이 문장의 역할은 경계를 긋는 것이다. '밸브를 옮기기'는 배제되어 플레이어가 턴을 낭비하지 않는다; '천 조각을 감고 돌리기'는 포함되어 조합 행동이 가능함을 보여준다. 작가는 모든 동의어 동사를 나열할 필요 없이 행동의 물리적 범위만 설명하면 된다.
오브젝트 행동 단어 목록
같은 오브젝트라도 상태에 따라 받아들일 수 있는 행동이 달라진다. 먼저 오래된 온실의 세 오브젝트 각각에 작은 표를 만들어 보자.
황동 밸브
| 상태 | 시도 가능 행동 | 받아들이기 어려움 |
|---|---|---|
| 손잡이가 위, 너트가 끼어 있음 | 손잡이 돌리기, 손잡이 당기기, 천 감고 돌리기 | 밸브를 바로 뽑아내기 |
| 손잡이가 반쯤 돌아감 | 계속 돌리기, 원위치로 돌리기 | 분해 가능 구조가 묘사되지 않았으므로 손잡이를 바로 떼어내기 |
젖은 천 조각
| 상태 | 시도 가능 행동 | 받아들이기 어려움 |
|---|---|---|
| 한쪽 끝이 물에 잠김 | 집기, 물 짜기, 손잡이 감기, 닦기 | 불 붙이기 (환경에 불씨가 제시되지 않음) |
| 밸브 손잡이에 감김 | 조이기, 풀기, 손잡이와 함께 돌리기 | 단독으로 '사용' |
금 간 유리병
| 상태 | 시도 가능 행동 | 받아들이기 어려움 |
|---|---|---|
| 가로 누움, 코르크 마개 | 세우기, 마개 뽑기, 치우기; 깨뜨리기는 파괴 결과 확인 필요 | 마개를 뽑지 않으면 물을 받을 수 없음 |
| 물을 받음 | 쏟기, 선반에 되돌려 놓기, 노즐 아래에 두기 | 가득 찼는지 확인하기 전에 계속 물 붓기 |
단어 목록은 판정 화이트리스트가 아니라 작가 자체 점검 도구이다: 각 상태 아래 나열된 행동은 묘사에서 대응하는 단서를 찾을 수 있어야 한다.
실행 불가와 실행 가능한 파괴 구분
실행할 수 없을 때는 결핍된 조건을 지적한다; 실행할 수 있지만 오브젝트가 손상될 때는 알려진 결과를 먼저 알리고 플레이어가 확인하게 한다. 두 가지 모두 '안 된다'로 쓰면 안 된다. 동의어 동사는 의도에 따라 이해하고, 일상어를 오류로 취급하지 않는다.
- '천 조각에 불 붙이기' 입력: 천 조각은 젖어 있고, 온실에는 불씨가 없다. 피드백은 '천 조각은 아직 물이 뚝뚝 떨어지고, 주변에 불을 붙일 만한 것이 없다.'라고 쓸 수 있다.
- '유리병 깨뜨리기' 입력: 먼저 '이렇게 하면 물을 받을 용기를 잃게 된다, 그래도 깨뜨리겠는가?'라고 응답한다. 확인 후에야 파편을 묘사하고 오브젝트 상태를 손상으로 바꾼다.
- '밸브 열기' 입력: 손잡이 돌리기로 이해하고 실행한다; 플레이어가 존재하지 않는 뚜껑을 열라고 명확히 요구할 때만 구조가 이를 지원하지 않는다고 설명한다. 단어가 달라도 행동 의도가 같으면 같은 처리를 적용해야 한다.
피드백에 단서를 포함하면 플레이어는 다음번에 행동을 수정할 수 있다.
완료 점검
오브젝트 묘사를 다 쓴 뒤 다음 다섯 항목으로 점검한다:
- 네 가지 단서가 적어도 각각 한 번씩 나타났는가?
- '시도 가능 범위'를 쓰고, 명백하지만 성립하지 않는 행동 하나를 배제했는가?
- 각 상태에 행동 단어 목록이 붙었고, 표 안의 행동이 모두 묘사에서 근거를 찾을 수 있는가?
- 오용 피드백이 부정만 하지 않고 결핍된 단서를 지적하는가?
- 유일한 동사 하나만 받아들이는 것을 피했는가?
5번이 통과되지 않으면 판정을 동의어 행동이나 조합 행동을 받아들이도록 바꾸고, 다시 묘사로 돌아가 단서를 보완한다.
AI 생성 서사와 관련될 때는 이 단서들을 프롬프트 제약에 써 넣어야 한다; 프롬프트 제약이 매번 올바른 출력을 보장하지는 않으며, 작가는 생성 결과가 재질, 위치, 상태, 연결 관계를 보존했는지 여전히 수동으로 확인해야 한다.
다음 단계: 당신 손에 있는, 플레이어를 막고 있는 오브젝트 하나를 골라 위 표에 따라 네 가지 단서를 보완하고, 시도 가능 범위 한 문장을 써 보자.


