라벨이 미연시인 게시물 표시

AI와 시나리오를 설계한다는 것

AI와 시나리오를 설계한다는 것 아이가 "미연시"라고 말한 순간부터 여기까지 왔다. 20편. 돌이켜보면 꽤 먼 거리를 왔다. 코드 한 줄 쓰지 않았다. Ren'Py를 설치하지도 않았다. 그런데 이 프로젝트에서 가장 중요한 작업은 끝났다. 시나리오 설계. 감정의 구조를 이해하고, 그걸 시스템으로 번역하는 작업. 이 여정에서 발견한 것들 처음에는 "미연시 만들기"가 목표였다. 끝나고 보니, 목표는 바뀌어 있었다. 미연시를 만드는 건 기술적으로 어렵지 않다. Ren'Py가 대부분의 기술적 문제를 해결해준다. 어려운 건 "플레이어의 감정을 진짜로 움직이는 미연시"를 만드는 거다. 그리고 그걸 위해서는 기술이 아니라 감정에 대한 이해가 필요하다. 사랑은 단일 변수가 아니라 조건의 결과다. 장면은 배경이 아니라 감정의 증폭기다. 선택의 결과는 즉시가 아니라 나중에 온다. 좋은 선택이 비극이 될 수 있다. 행동과 내면은 다르다. 갈등은 악역이 만드는 게 아니다. 엔딩은 점수가 아니라 상태다. 이 원칙들은 미연시 설계의 원칙이기도 하지만, 동시에 관계에 대한 관찰이기도 하다. 게임을 설계하면서 관계를 이해하게 되는 역설적인 경험. 그리고 예상치 못한 발견도 있었다. AI에게 "사랑이란 무엇인가"를 직접 물었을 때, AI는 사전적 정의를 늘어놓았다. 별로 쓸모없었다. 그런데 "신뢰 40에 친밀감 30이면 이 캐릭터가 상대를 어떻게 대하겠냐"고 물었을 때, AI는 구체적이고 설득력 있는 행동 묘사를 했다. 추상적인 질문보다 구체적인 시스템 안에서의 질문이 훨씬 유용한 답을 이끌어낸다. 이건 AI 활용법에 대한 핵심 교훈이었다. 감정을 직접 물으면 클리셰가 나오지만, 구조를 통해 간접적으로 물으면 진짜 통찰이 나온다. AI는 어떤 존재였나 이 프로젝트에서 AI는 세 가지 역할을 했다. 구조를 잡아주는 건축가. 감정 시스템의 3계층 모델, 컨텍스트 시스템의 ...

전체 시나리오 구조도 — 하나로 엮기

전체 시나리오 구조도 — 하나로 엮기 19편에 걸쳐 개별 요소를 설계했다. 이제 전체를 하나로 엮을 차례다. AI와 함께 만든 설계의 전체상을 정리한다. 시스템 구조 요약 이 미연시는 세 개의 핵심 시스템으로 작동한다. 1. 감정 시스템 (3계층) A층 - 근본 성향: need_for_affection, fear_of_rejection, pride, insecurity B층 - 순간 감정: affection, anger, sadness, jealousy, admiration, fear C층 - 관계 상태: trust, reliance, intimacy, tension, resentment, respect 사랑은 변수가 아니다. C층 변수들의 조합으로 발생한다. 2. 컨텍스트 시스템 location: 5개 장소 time: 4개 시간대 weather: 4개 날씨 (플레이어 통제 불가) privacy: 3단계 mood: 5개 분위기 같은 이벤트도 컨텍스트에 따라 다른 감정을 만든다. 3. 기억 시스템 패턴 추적: did_not_ask, avoided_confession, missed_timing 등 이벤트 플래그: shared_umbrella, saw_with_rival, broke_promise 등 누적 카운터: 같은 패턴 반복 시 영향력 증폭 선택의 결과는 지연된다. 나중에 의미가 바뀐다. 장면의 작동 원리 모든 장면은 이 세 시스템의 교차점에서 열린다. 감정 조건 충족 + 컨텍스트 조건 충족 + 기억 플래그 충족 → 특정 이벤트 발생 → 감정 변화 + 새로운 기억 저장 예시: "속마음을 꺼내는 대화" if (rel[ "trust" ] >= 40 and scene_ctx[ "time" ] == "night" and scene_ctx[ "weather" ] == "rain" and ...

엔딩은 성공/실패가 아니다

엔딩은 성공/실패가 아니다 기존 미연시의 엔딩은 대부분 이렇다. 호감도 높으면 해피엔딩, 낮으면 배드엔딩. 성공 아니면 실패. 합격 아니면 불합격. 하지만 현실의 관계는 성공과 실패로 나뉘지 않는다. 서로 좋아했는데 안 되는 관계가 있고, 좋아하지 않았는데 이어지는 관계가 있다. 잘 맞는데 타이밍이 어긋나는 관계가 있고, 안 맞는데 포기 못 하는 관계가 있다. 이 다양한 결말을 표현하려면, 엔딩도 단일 수치가 아니라 상태 조합으로 결정되어야 한다. 상태 조합형 엔딩 AI와 설계한 엔딩 구조다. 이어짐 — 신뢰 높음 + 회피 적음 + 감정 상호적. 가장 조건이 까다롭다. 단순히 좋아하는 것만으로는 안 되고, 신뢰가 쌓여 있어야 하고, 중요한 순간에 회피하지 않았어야 한다. 늦은 사랑 — 신뢰 높음 + 회피 많음. 서로의 마음은 알지만, 너무 많이 미뤘다. "그때 말했어야 했는데"의 감정. 사랑했다는 건 맞지만, 타이밍이 지났다. 파국 — 감정 높음 + 상처 큼. 좋아했기 때문에 더 아팠고, 아팠기 때문에 돌이킬 수 없다. 사랑이 부족해서가 아니라, 사랑의 방식이 서로를 망쳤다. 스쳐 지나감 — 감정 미완. 어느 쪽도 결정적인 감정에 도달하지 못했다. 좋은 사람이었지만 그냥 그런 사이로 끝난다. 가장 조용하지만, 의외로 오래 남는 엔딩. 이 네 가지는 "좋은 엔딩"과 "나쁜 엔딩"이 아니다. 전부 다른 종류의 관계 결말이다. 플레이어의 선택이 어떤 감정 상태 조합을 만들었느냐에 따라, 자연스럽게 결말이 결정된다. 이 구조를 AI에게 처음 제시했을 때, AI는 "엔딩 간의 경계가 모호하지 않냐"고 물었다. 맞는 지적이었다. 그래서 각 엔딩의 핵심 감정을 하나로 정의했다. 이어짐은 "확신", 늦은 사랑은 "후회", 파국은 "상실", 스쳐 지나감은 "무념". 이 핵심 감정이 엔딩 연출의 기준이 된다. ...

유치함을 벗기는 법

유치함을 벗기는 법 이 프로젝트를 시작할 때 AI와 나눈 초기 대화는 솔직히 유치했다. 기억 공유 능력, 하루만 사랑할 수 있는 설정, 감정을 직접 느끼는 초능력. 특별한 설정으로 특별한 이야기를 만들려는 방향이었다. 그런데 그게 왜 유치하게 느껴졌는지를 파고들면, 핵심이 보인다. 설정이 감정보다 앞에 나오면 유치해진다 "기억을 공유하는 두 사람"은 설정이다. "좋아하지만 말하지 못한 채 시간이 지났다"는 감정이다. 설정은 흥미롭지만, 감정은 공감된다. 미연시가 유치하게 느껴지는 대부분의 경우, 설정이 감정보다 앞에 나와 있다. 특별한 능력, 특별한 세계관, 특별한 사건. 이것들이 이야기를 끌고 간다. 캐릭터의 감정은 설정의 부산물이 된다. 반대로, 감정이 중심인 이야기는 설정이 단순해도 깊어진다. "타이밍이 항상 어긋나는 두 사람"에는 초능력이 필요 없다. "서로 배려하다가 아무것도 하지 못한 관계"에는 판타지가 필요 없다. AI에게 처음 시나리오를 요청했을 때 판타지 설정이 많이 나온 이유를 물었더니, "특별한 설정은 이야기의 동력을 쉽게 확보할 수 있기 때문"이라고 했다. 맞다. 하지만 쉽게 확보한 동력은 감정의 깊이를 만들지 못한다. 이건 Part 7에서 다뤘던 매체 비교와 연결된다. 영화 "8월의 크리스마스"가 왜 깊은 감정을 만드는가. 초능력도 판타지도 없다. 사진관, 골목, 빛. 일상의 축적만으로 감정을 만든다. 미연시도 마찬가지다. 설정이 아니라 일상의 밀도가 감정의 깊이를 결정한다. 학교 복도에서 눈이 마주치고, 같은 자판기 앞에서 만나고, 비 오는 날 같은 버스를 기다리는 것. 이런 장면들이 반복되면서 쌓이는 감정이, 어떤 초능력 설정보다 강하다. "특별한 사건"이 아닌 "선택의 누적" 유치하지 않은 연애 이야기의 공통점이 있다. 큰 사건이 없다. 대신 작은 선택이 쌓인다. AI와 ...

AI에게 시나리오를 던지면 생기는 일

AI에게 시나리오를 던지면 생기는 일 이 프로젝트를 진행하면서, AI와 가장 많이 대화한 건 시나리오 설계였다. 시스템 구조, 캐릭터 설정, 갈등 패턴, 시간 구조. 모든 과정에서 AI를 썼다. 솔직한 후기를 남기려 한다. AI가 뭘 잘하고, 뭘 못 하고, 어떻게 써야 효과적인지. AI가 잘하는 것 구조 정리. 이건 압도적이다. "감정 시스템을 설계하고 싶어"라고 말하면, 체계적인 변수 구조와 계층 분리를 즉시 제안한다. 사람이 하면 며칠 걸릴 정보 정리를 몇 분에 해낸다. 3계층 감정 모델의 골격은 AI와의 대화에서 한 시간 만에 나왔다. 변수 간 일관성 검증. "이 이벤트에서 신뢰가 올라가면 긴장은 어떻게 돼야 해?" 같은 질문에 논리적으로 답한다. 변수가 많아지면 사람은 빠뜨리는 게 생기는데, AI는 빠뜨리지 않는다. Part 9에서 3계층 모델의 변수 간 상호작용을 정의할 때, AI가 "신뢰가 높고 긴장도 높은 상태"의 의미를 즉시 분석해줬다. 사람이면 "그런 조합이 가능한가?"부터 고민할 텐데, AI는 가능한 모든 조합과 각각의 의미를 체계적으로 정리해준다. 패턴 제시. "갈등의 종류를 분류해줘", "엔딩 구조의 패턴을 정리해줘" 같은 요청에 광범위한 패턴을 빠르게 나열한다. 바닥부터 시작하지 않아도 된다. AI가 내놓은 10개 패턴 중 2~3개를 골라서 깊이 파면 된다. 코드 생성. Ren'Py용 이벤트 함수, 감정 변화 로직, 조건 분기 코드를 빠르게 만들어준다. 초안으로서 매우 유용하다. Part 9에서 3계층 감정 모델을 코드로 옮길 때, AI가 기본 구조를 30분 만에 만들어줬다. 성향층, 순간 감정층, 관계층의 상호작용 로직까지 포함해서. 물론 세부 수치 조정은 직접 해야 했지만, 골격을 잡는 속도는 압도적이었다. AI가 못하는 것 감정의 무게 판단. "이 두 선택지 중 어느 쪽이 더 아프냐?...

시간 구조 — 반복이 아닌 변주

시간 구조 — 반복이 아닌 변주 감정 시스템, 컨텍스트, 기억, 캐릭터, 갈등. 개별 요소는 갖춰졌다. 이제 이것들을 시간 위에 배치해야 한다. 어떤 순서로, 어떤 리듬으로, 어떤 단계를 거쳐 이야기가 흘러가는가. AI와 초기에 나눴던 대화에서 시간 기반 구조가 나왔었다. 초등학교에서 대학까지 이어지는 타임라인. 하지만 단순히 시간 순서대로 나열하면 반복의 함정에 빠진다. 만남 → 설렘 → 헤어짐 → 재회 → 설렘 → 헤어짐. 이 패턴이 반복되면 감정이 깊어지는 게 아니라 리셋되는 느낌이 든다. 핵심 원칙: 각 시기는 역할이 달라야 한다 AI와 정리한 원칙이 이거다. 같은 감정이라도 시기에 따라 성격이 달라야 한다. 설렘이라는 감정 하나만 봐도 이렇게 다르다. 어릴 때의 설렘: 편안함. 이름 없이 중요한 존재. 아직 사랑이라고 부를 수 없는 것. 재회 후의 설렘: 낯선 익숙함. 기억은 있는데 사람은 바뀌었다. 어색하면서 끌린다. 가까워진 후의 설렘: 불안한 설렘. 좋아하는 걸 알지만 망칠까 봐 두렵다. 성숙한 시점의 설렘: 책임 있는 감정. 좋아함의 무게를 안다. 선택의 의미를 안다. 같은 단어인데 완전히 다른 감정이다. 이 차이를 설계하는 게 시간 구조의 핵심이다. AI에게 이 원칙을 구체적으로 검증해달라고 했다. "설렘 말고, 질투라는 감정도 시기마다 어떻게 변하는지 보여줘." 나온 답이 인상적이었다. 어릴 때의 질투는 단순하다. 좋아하는 애가 다른 애랑 놀면 삐친다. 재회 후의 질투는 복잡하다. 상대가 자기 없는 동안 만든 새 관계들이 신경 쓰인다. 성숙한 시점의 질투는 자기 자신을 향한다. 상대가 변한 게 아니라, 내가 충분하지 않은 것 같다는 불안. 감정의 이름은 같지만 성격이 완전히 달라진다. 이걸 시스템에서 구분하려면, Part 9에서 만든 3계층 감정 모델의 순간 감정층과 관계층을 시기마다 다른 가중치로 작동시켜야 한다. "못한 선택"을 매 시기마다 쌓는다 또 하나의 원칙. 매 시...

갈등은 악역이 만드는 게 아니다

갈등은 악역이 만드는 게 아니다 캐릭터를 설계했다. 행동과 내면이 다른, 입체적인 인물. 이제 이 캐릭터들 사이에 갈등을 만들어야 한다. 갈등 없는 이야기에는 감정이 없으니까. 미연시에서 흔한 갈등 패턴은 이거다. 라이벌 캐릭터가 방해한다. 오해가 생긴다. 외부 사건이 둘을 갈라놓는다. 이것들이 나쁜 건 아니지만, 더 강한 갈등이 있다. 두 사람 모두 선의인데, 그 선의가 충돌하는 갈등. "악역 없이 감정적으로 강한 갈등을 만드는 패턴이 뭐가 있을까?" 이 질문에서 나온 것들이 프로젝트의 시나리오를 결정짓는 방향이 됐다. 사랑 방식의 충돌 가장 현실적이고 강력한 갈등은 이거다. 둘 다 상대를 좋아하는데, 좋아하는 방식이 다르다. 한 사람은 표현한다. 직진한다. 좋으면 좋다고 말하고, 싫으면 싫다고 말한다. 솔직함이 사랑의 방식이다. 다른 사람은 지킨다. 조용히 챙긴다. 말하지 않아도 알아줄 거라고 기대한다. 행동이 사랑의 방식이다. 이 두 방식이 만나면 이런 일이 벌어진다. 솔직한 사람은 "왜 말을 안 해?"라고 느끼고, 조용한 사람은 "왜 자꾸 말하라고 해?"라고 느낀다. 둘 다 상대를 위하는 건데, 방식이 달라서 상처가 된다. 이건 악역이 없다. 잘못한 사람이 없다. 그래서 해결이 어렵고, 그래서 감정이 깊다. AI와 이 패턴을 구체적으로 발전시켰다. "표현형 캐릭터와 행동형 캐릭터가 만나면 어떤 오해가 생겨?" 이렇게 물었더니, 놀라울 정도로 구체적인 시나리오가 나왔다. 표현형이 "오늘 힘들었어"라고 말하면, 행동형은 조용히 음료를 사다 놓는다. 표현형은 "내 얘기를 왜 안 들어줘?"라고 느끼고, 행동형은 "내가 이렇게 챙겨주는데 왜 몰라줘?"라고 느낀다. 같은 순간에 두 사람 다 상처받는다. Part 13에서 다뤘던 행동과 내면의 불일치가 여기서 갈등의 엔진이 된다. expression_skill이 높은 캐릭...

행동과 내면이 다른 캐릭터를 만드는 법

행동과 내면이 다른 캐릭터를 만드는 법 시스템은 갖춰졌다. 감정 3계층, 장면 컨텍스트, 기억 시스템. 이제 이 시스템 위에서 살아갈 존재가 필요하다. 캐릭터. 미연시의 캐릭터 설계에서 가장 흔한 함정이 있다. 아키타입에 의존하는 것. 츤데레, 쿨데레, 얀데레. 이런 분류는 편리하지만 위험하다. 레이블을 먼저 붙이면 캐릭터가 그 레이블 안에 갇힌다. 행동이 예측 가능해지고, 예측 가능한 캐릭터에게는 감정이 붙지 않는다. "클리셰에 빠지지 않으면서 복잡한 캐릭터를 만들려면 어떻게 해야 할까?" 핵심: 행동과 내면의 불일치 AI의 답변 중 가장 핵심적인 건 이거였다. 사람이 매력적으로 느껴지는 건, 행동과 내면이 다를 때다. 겉으로는 차갑지만 속으로는 신경 쓰고 있는 사람. 밝게 웃지만 실은 불안한 사람. 무관심해 보이지만 누구보다 관찰하고 있는 사람. 이 간극이 캐릭터를 입체적으로 만든다. 그리고 이 간극을 만드는 핵심 요소가 표현 능력(expression_skill) 이다. 감정은 큰데 표현 못하는 사람이 있다. 감정이 작지만 솔직한 사람이 있다. 이 조합이 캐릭터의 기본 성격을 결정한다. # 캐릭터 A: 감정 크지만 표현 못함 character_a = { "affection_capacity" : "high" , "expression_skill" : "low" , "defense_mechanism" : "tease" # 놀림/회피로 표현 } # 캐릭터 B: 감정 작지만 솔직함 character_b = { "affection_capacity" : "moderate" , "expression_skill" : "high" , "defense_mechanism" : "no...

선택의 결과를 늦추는 기술 — 기억 시스템

선택의 결과를 늦추는 기술 — 기억 시스템 감정 시스템(3계층), 컨텍스트 시스템(장면 조건). 두 개를 만들었다. 세 번째이자 마지막 핵심 시스템이 남았다. 기억 시스템이다. 기존 미연시의 문제 중 하나가 "결과가 즉시 보인다"는 것이었다. 좋은 선택을 하면 바로 긍정적 반응, 나쁜 선택을 하면 바로 부정적 반응. 이러면 선택이 퀴즈가 된다. 현실의 관계에서 선택의 결과는 즉시 나오지 않는다. 오늘 한 말이 다음 달에 돌아올 수 있다. 배려라고 생각한 행동이 나중에 상처로 해석될 수 있다. 이 "지연"이 관계에 무게를 만든다. 플래그의 누적 기억 시스템의 기본 단위는 플래그다. 플레이어의 선택을 기록하는 변수들. default flags = { "did_not_ask" : 0 , # 중요한 순간에 묻지 않은 횟수 "avoided_confession" : 0 , # 고백을 미룬 횟수 "missed_timing" : 0 , # 타이밍을 놓친 횟수 "protected_but_lied" : 0 , # 보호하려고 거짓말한 횟수 "shared_umbrella" : False , # 우산을 나눠 쓴 적 있는지 "saw_with_rival" : False , # 라이벌과 함께 있는 걸 목격했는지 "broke_promise" : False # 약속을 어긴 적 있는지 } "한 번"이 아니라 "패턴"을 추적한다. did_not_ask가 1이면 한 번 놓친 거다. 3이면 패턴이다. "이 사람은 중요한 순간마다 묻지 않는 사람"이 된다. 지연 귀결: 지금 선택, 나중에 결과 이 시스템의 핵심 기법이 "지연 ...

장면이 감정을 밀어올린다 — 컨텍스트 시스템

장면이 감정을 밀어올린다 — 컨텍스트 시스템 감정 시스템을 설계했다. 3계층 모델로 캐릭터의 성향, 순간 감정, 관계 상태를 분리했다. 사랑을 직접 올리지 않고 조건 조합으로 발생시키는 구조도 잡았다. 그런데 AI와 대화를 이어가면서 빠진 조각이 하나 보였다. 감정만 추적하면 반쪽이라는 거다. "괜찮아?" 이 한마디를 생각해보자. 비 오는 밤, 집 앞, 단둘이 있을 때 이 말을 들으면 — 걱정과 보호, 친밀감이 올라간다. 학교 복도, 점심시간, 친구들 사이에서 이 말을 들으면 — 가벼운 안부일 뿐이다. 싸운 직후, 추운 저녁에 이 말을 들으면 — 화해 시도이고, 미안함이 섞여 있다. 대사는 같다. 감정이 다르다. 차이를 만드는 건 장면 이다. 장면 상태(Scene Context) 여기서 나온 구조는 이렇다. 감정 변수와 별개로, 장면의 상태를 추적하는 딕셔너리를 두는 것. default scene_ctx = { "location" : "classroom" , "time" : "noon" , "weather" : "clear" , "privacy" : 0 , # 0=공개, 1=반공개, 2=둘만 "mood" : "neutral" # calm / warm / tense / lonely / nostalgic } 그리고 이벤트는 감정만 보지 말고, 감정 + 장면 조건 으로 열어야 한다. if trust >= 40 and scene_ctx[ "time" ] == "night" and scene_ctx[ "weather" ] == "rain" and scene_ctx[ "privacy" ] >= 1 ...

사랑을 직접 올리지 않는 설계

사랑을 직접 올리지 않는 설계 이전 편에서 3계층 감정 모델을 설계했다. 그 중 가장 중요한 원칙이 하나 있다. 사랑이라는 변수는 시스템에 존재하지 않는다. love += 1은 없다. 대신 사랑은 다른 변수들의 조합에서 "발생"한다. 이게 이 시스템의 핵심이고, 기존 호감도 시스템과의 가장 큰 차이다. 왜 사랑을 직접 변수로 두면 안 되는가 AI와 이 주제로 대화했을 때, AI가 흥미로운 관점을 제시했다. "사랑은 다른 감정과 같은 급이 아니다." 슬픔, 분노, 질투, 두려움. 이것들은 단발적 감정이다. 특정 사건에 반응해서 올라가거나 내려간다. 하지만 사랑은 다르다. 사랑은 보통 단발 감정보다 누적된 관계 해석의 결과 에 가깝다. 신뢰가 높다. 의존이 있다. 친밀감이 쌓였다. 질투도 약간 있다. 상실 공포가 있다. 상대를 반복적으로 우선 선택한다. 이 조합을 플레이어가 "사랑"으로 읽는 거다. 시스템적으로 이걸 표현하면 이렇다. love_state = ( trust >= 70 and intimacy >= 60 and fear_of_loss >= 30 and chosen_priority >= 5 ) love를 직접 올리는 게 아니라, 사랑이 발생하는 조건을 설계하는 것이다. 이 차이가 크다. 왜 이 방식이 더 자연스러운가 현실을 생각해보자. 누군가를 사랑하게 되는 순간을 정확히 짚을 수 있는 사람이 있는가? 대부분은 없다. 어느 날 문득 "아, 내가 이 사람을 좋아하는구나"를 깨닫는 거다. 사랑은 시작 버튼을 누르는 게 아니라, 이미 쌓여 있던 것을 인식하는 거다. love += 1 시스템에서는 이 경험을 재현할 수 없다. 선택할 때마다 사랑이 올라가니까, 플레이어는 "지금 사랑이 몇 점쯤 되겠지"를 계산하게 된다. 감정이 아니라 점수 관리가 된다. 조건 조합형에서는 다르다....

감정을 변수로 옮기다 — 3계층 감정 모델

감정을 변수로 옮기다 — 3계층 감정 모델 이제 본격적으로 감정을 설계할 차례다. 호감도+1의 한계를 파악했으니, 그걸 대체할 시스템을 만들어야 한다. AI에게 말했다. "호감도 하나가 아니라, 사람의 감정을 좀 더 현실적으로 표현할 수 있는 변수 시스템을 만들고 싶어." 그리고 여기서부터 AI가 본격적으로 힘을 발휘하기 시작했다. 감정을 구조화하는 작업, 즉 추상적인 것을 변수와 계층으로 분해하는 작업은 AI가 잘하는 영역이다. 감정은 몇 개가 필요한가 첫 번째 질문이 이거였다. "감정 변수를 몇 개 두면 될까?" AI의 답은 의외로 신중했다. "많으면 많을수록 좋은 게 아니다. 변수가 많아지면 오버엔지니어링이 된다." 그리고 핵심적인 구분을 제안했다. 표현해야 하는 감정의 종류는 많아도 된다. 하지만 시스템이 직접 추적하는 상태값은 구조적으로 정리되어야 한다. 무슨 뜻인가. 사랑, 슬픔, 분노, 자만, 시기, 질투, 믿음, 신뢰, 긴장, 갈등, 두려움, 공포, 선망. 이런 감정을 전부 독립 변수로 나열할 수는 있다. 하지만 그러면 상호작용 규칙이 폭증한다. 어떤 이벤트가 뭘 얼마나 바꾸는가, 사랑과 신뢰가 동시에 오를 수 있는가, 시기와 선망의 차이는 어떤 조건에서 갈라지는가. 정의 없이 변수만 많으면 게임이 더 가짜가 된다. 그래서 AI가 제안한 건 감정을 레이어로 나누는 것이었다. 3계층 모델 AI와 반복적으로 대화하면서 정리된 구조가 이거다. A층: 근본 성향 / 욕구 — 캐릭터의 고유값. 쉽게 안 바뀐다. 게임 시작 시 설정되고, 플레이 중에는 거의 변하지 않는다. 애정 욕구 (need_for_affection) 거절 공포 (fear_of_rejection) 자존심 (pride) 불안정감 (insecurity) 이건 캐릭터의 "성격"이다. 왜 이 사람이 이런 행동을 하는지의 근본 이유. B층: 현재 감정 상태 — 장면이나 사건에 반응해서 흔들린다. ...

이건 게임의 한계인가, 설계의 한계인가

이건 게임의 한계인가, 설계의 한계인가 지금까지 미연시의 감정이 왜 특별한지, 다른 매체와 어떻게 다른지를 분석했다. 미연시라는 장르가 감정을 다루기에 좋은 구조라는 건 확인했다. 그런데 현실의 미연시 대부분은 그 잠재력을 다 쓰지 못한다. 많은 미연시가 감정보다는 "공략"에 가까운 경험을 제공한다. 왜 그런 걸까. AI와 함께 기존 미연시의 구조적 문제를 파봤다. 호감도+1의 세계 대부분의 미연시는 이런 구조다. 선택지 A를 고르면 캐릭터의 호감도가 1 오른다. 선택지 B를 고르면 호감도가 변하지 않거나 내려간다. 호감도가 일정 수치를 넘으면 연애 루트에 진입한다. 호감도가 부족하면 배드엔딩이나 노멀엔딩으로 빠진다. 이 시스템은 구현이 쉽다. 변수 하나, 조건문 몇 개면 된다. 테스트도 간단하다. 밸런싱도 직관적이다. 제작 비용이 낮으니까 대부분의 미연시가 이 구조를 채택한다. 그런데 이 구조에는 근본적인 문제가 있다. AI에게 "기존 미연시의 호감도 시스템을 분석해달라"고 했을 때, 돌아온 대답이 인상적이었다. "많은 미연시가 감정을 시뮬레이션하는 게 아니라, 루트 해금 조건만 관리한다." 정확한 진단이었다. 그리고 이 한 문장이 문제의 핵심을 찌른다. 문제 1: 관계가 숫자로 환원된다 호감도 시스템에서 관계는 0에서 100 사이의 정수다. 좋아함도 100, 신뢰도 100이면 둘이 같아진다. 하지만 현실에서 "좋아하지만 못 믿는" 관계는 얼마든지 있다. "존경하지만 사랑은 아닌" 관계도 있다. "싫은데 떨어질 수 없는" 관계도 있다. 단일 수치는 이런 복잡함을 담을 수 없다. 관계를 하나의 축으로 접어버리면, 관계의 미묘함이 사라진다. 그리고 미묘함이 사라진 관계에서는 감정이 나오지 않는다. AI에게 이 문제를 짚었더니, 바로 공감하면서 실생활 예시를 들었다. "사랑과 신뢰가 동시에 높을 수도 있지만, 사랑은 높고 신뢰는...

영화나 소설이라면 어떤 느낌인가

영화나 소설이라면 어떤 느낌인가 미연시의 감정 구조를 이해하려면, 비교 대상이 필요했다. 같은 주제 — 사람 사이의 관계와 감정 — 를 다루는 다른 매체들. 영화와 소설. "영화, 소설, 미연시가 각각 감정을 전달하는 방식의 차이가 뭐야?" Claude에게 던진 질문이다. 거기서 나온 분석에 내 경험을 더했다. 영화: 시간이 통제된 감정 영화는 시간을 통제한다. 두 시간이라는 한정된 시간 안에, 감독이 모든 걸 결정한다. 어떤 장면을 얼마나 보여줄지, 어떤 음악을 언제 넣을지, 카메라가 어디를 비출지. 관객은 그 흐름에 몸을 맡긴다. 이 통제가 영화의 강점이다. 감독이 원하는 정확한 타이밍에, 정확한 감정을 만들어낼 수 있다. 슬픈 장면에서 카메라가 인물의 눈에 머무르고, 음악이 깔리고, 침묵이 이어지면 — 관객의 감정은 거의 자동으로 따라간다. 8월의 크리스마스를 떠올려본다. 이 영화가 만드는 감정은 "놓친 것에 대한 아쉬움"이다. 말하지 못한 것, 표현하지 못한 것, 지나가버린 시간. 감독은 이 감정을 만들기 위해 일상적인 장면들을 느리게 쌓는다. 사진관, 골목, 빛. 극적인 사건 없이 일상의 축적만으로 감정을 만든다. 이건 미연시의 "일상 장면이 감정의 기반"이라는 원리와 정확히 같다. 다른 점은, 영화에서는 관객이 개입할 수 없다는 거다. 정민이 대신 말할 수 없고, 다른 선택을 할 수도 없다. 감정은 깊지만, 그건 관객의 감정이지 당사자의 감정은 아니다. 소설: 내면이 열린 감정 소설은 영화와 다른 방식으로 감정을 만든다. 소설의 가장 강력한 도구는 내면 묘사다. 캐릭터가 무엇을 느끼고, 무엇을 생각하는지를 직접 보여줄 수 있다. 영화에서 슬픈 장면은 표정과 눈물로 전달된다. 소설에서 슬픈 장면은 그 슬픔의 내부 구조를 보여준다. "그녀는 슬펐다"가 아니라, 슬픔이 어디서 시작되어 어디로 번지고, 무엇을 건드리고, 어떤 기억과 연결되는지를. 이건 감정의 해상도가...

왜 다른 게임들은 감정을 못 끌어내는가

왜 다른 게임들은 감정을 못 끌어내는가 미연시에서 감정이 나오는 원리를 분석했다. 그렇다면 반대 질문이 자연스럽다. 다른 게임들은 왜 그걸 못 할까? 물론 "못 한다"는 건 과장이다. 라스트 오브 어스에서 눈물 흘린 사람도 있고, 파이널 판타지에서 가슴이 먹먹해진 사람도 있다. 하지만 그런 감정은 대부분 컷신이나 스토리 이벤트에서 나온다. 게임플레이 자체에서 관계의 감정이 나오는 경우는 드물다. 왜 그럴까. AI와 이 주제를 깊이 파봤다. 게임의 기본 구조가 감정과 맞지 않는다 대부분의 게임은 도전-보상 구조로 되어 있다. 적을 쓰러뜨리면 경험치를 얻고, 퀘스트를 완료하면 보상을 받고, 스테이지를 클리어하면 다음으로 넘어간다. 이 구조가 만드는 감정은 성취감, 긴장감, 쾌감이다. 강렬하지만, 관계에서 오는 감정과는 결이 다르다. 관계의 감정은 효율과 정반대에 있다. 사람을 좋아하는 건 비효율적이다. 불안하고, 비합리적이고, 통제할 수 없다. 게임의 도전-보상 구조는 이런 감정과 근본적으로 충돌한다. AI가 이걸 "루도내러티브 부조화(Ludonarrative Dissonance)"라는 용어로 설명했다. 게임플레이가 요구하는 행동과 서사가 전달하려는 감정이 어긋나는 현상. RPG에서 세계를 구하는 긴박한 스토리가 진행되는 와중에, 플레이어는 느긋하게 낚시를 하거나 부업을 뛰고 있는 상황. 이러면 감정의 일관성이 깨진다. 미연시에는 이 부조화가 없다. 게임플레이 자체가 관계이고, 서사도 관계이다. 하는 행동과 느끼는 감정이 일치한다. 이 일치가 감정의 깊이를 만든다. 흥미로운 건, 이 부조화를 의도적으로 활용하는 게임도 있다는 점이다. 언더테일은 RPG의 전투 시스템 자체를 감정 장치로 바꿨다. "적을 죽일 수도 있고 살릴 수도 있다"는 선택이 전투 시스템 안에 내장되어 있고, 그 선택이 관계와 감정에 직결된다. 이건 루도내러티브 부조화를 해결한 드문 사례인데, 여기서도 "시스템과 감정의...

짧은 시간 안에 감정을 끌어내는 법

짧은 시간 안에 감정을 끌어내는 법 이전 편에서 감정은 시간이 만든다고 했다. 그런데 모순이 있다. 미연시는 무한히 길 수 없다. 플레이어의 시간은 유한하다. 몇 시간, 길어야 십몇 시간 안에 캐릭터와의 관계에서 진짜 감정이 나오게 만들어야 한다. 영화는 두 시간 안에 사람을 울린다. 단편 소설은 만 자도 안 되는 분량으로 여운을 남긴다. 그들은 어떻게 그걸 하는 걸까. 그리고 미연시는 그것과 무엇이 같고, 무엇이 다를까. 감정 밀도라는 개념 AI와 이 주제로 대화하면서, 하나의 개념이 정리됐다. 감정 밀도(Emotional Density). 감정 밀도란, 단위 시간당 플레이어가 경험하는 감정적 변화의 농도다. 같은 30분이라도, 아무 일도 안 일어나는 30분과 관계의 결정적 순간이 담긴 30분은 완전히 다르다. 감정 밀도가 높다고 좋은 건 아니다. 계속 높으면 피로해진다. 반대로 계속 낮으면 지루하다. 중요한 건 밀도의 조절, 즉 리듬이다. AI가 이걸 음악에 비유했다. 곡에서 가장 감동적인 부분은 클라이맥스 자체가 아니라, 조용한 파트에서 클라이맥스로 넘어가는 순간이라고. 미연시의 감정도 마찬가지다. 일상의 낮은 밀도에서 갑자기 밀도가 높아지는 그 전환 지점에서 감정이 터진다. 보여주는 것과 숨기는 것 짧은 시간 안에 감정을 만드는 기술이 여러 가지 있다. 먼저, 정보의 비대칭이다. 영화에서 흔히 쓰는 기법이 있다. 관객은 알지만 캐릭터는 모르는 상황. 혹은 캐릭터는 알지만 관객은 모르는 상황. 이 간극이 긴장을 만든다. 미연시에서도 마찬가지다. 플레이어가 아는 것과 캐릭터가 아는 것이 다를 때, 감정이 생긴다. 예를 들어, 플레이어는 캐릭터의 과거를 알고 있는데 주인공은 모르는 상태. 주인공이 무심코 던진 말 한마디가 캐릭터에게 상처가 되는 장면. 플레이어는 "아, 저 말을 하면 안 되는데"를 알고 있지만 막을 수 없다. 이 무력감이 감정을 만든다. 반대로, 캐릭터가 뭔가를 숨기고 있다는 걸 플레이어가 감지하지만 ...

사람들은 왜 미연시를 할까

사람들은 왜 미연시를 할까 아이가 물었다. "그러면 나쁜 걸 고르면 어떻게 돼?" 내가 "슬퍼질 수도 있지"라고 했더니 아이는 "왜?"라고 되물었다. 왜 슬퍼지는 걸까. 화면 속 캐릭터는 실재하지 않는다. 대사는 누군가 미리 적어놓은 텍스트다. 선택지는 프로그래밍된 분기에 불과하다. 이 모든 게 가짜인데, 거기서 나오는 감정은 왜 진짜처럼 느껴지는 걸까. 이건 미연시를 만들기 전에 반드시 이해해야 할 질문이다. 감정이 왜 발생하는지 모르면, 감정을 설계할 수 없으니까. AI에게 먼저 물어봤다 "사람들이 미연시에서 감정을 느끼는 이유가 뭘까?" Claude에게 던진 질문이다. AI는 몇 가지 키워드를 꺼냈다. 파라소셜 관계, 자기 투영, 서사적 몰입, 선택의 주체성. 파라소셜 관계(Parasocial Relationship) — 일방적이지만 진짜처럼 느껴지는 관계. TV 속 연예인에게 친밀감을 느끼는 것과 같은 구조. 미연시의 캐릭터도 이 범주에 들어간다. 자기 투영(Self-Projection) — 플레이어가 주인공의 위치에 자신을 대입하는 것. "내가 이 상황에 있다면"이라는 가정 하에 감정이 작동한다. 서사적 몰입(Narrative Immersion) — 이야기에 빠져드는 것. 소설이나 영화에서도 일어나는 현상이지만, 미연시에서는 선택이 몰입을 더 강화한다. 선택의 주체성(Agency) — 내가 골랐다는 사실 자체가 감정을 만든다. 관객이나 독자는 주체가 아니지만, 플레이어는 주체다. AI의 답은 정확했다. 학술적으로도 틀린 말이 없다. 하지만 이 설명만으로는 부족했다. 이건 "왜 사람이 감정을 느끼는가"에 대한 일반론이지, "왜 미연시에서 특별히 강한 감정이 나오는가"에 대한 답은 아니었다. AI가 놓친 것 AI의 분석은 모든 인터랙티브 미디어에 적용되는 일반 원리였다. 파라소셜 관계는 유튜브에도 있고...

예전에 하던 그 게임들

예전에 하던 그 게임들 미연시를 만들겠다고 마음먹고 나니, 이상한 일이 벌어졌다. 만드는 방법을 찾기 전에, 예전에 했던 게임들이 먼저 떠오른 것이다. 장르를 이해하려면 구조를 분석해야 한다. 그건 AI에게 물으면 된다. 그런데 "왜 이 장르가 사람을 끌어당기는가"는 분석으로 알 수 있는 게 아니었다. 그건 기억 속에 있었다. 처음 했던 미연시 정확히 언제였는지 기억나지 않는다. 아마 고등학생 때였을 거다. 친구 집 컴퓨터에서, 혹은 내 방 책상 위 모니터에서. 제목도 정확히 기억나지 않는 게임들이 있다. 지금 검색하면 나올 법한 게임들. 하지만 제목보다는 느낌이 남아 있다. 배경이 학교였던 건 기억난다. 캐릭터들이 교실에 있었고, 점심시간이 있었고, 방과 후가 있었다. 선택지가 나오면 멈춰서 생각했다. 어떤 걸 고르면 이 캐릭터가 좋아할까. 어떤 대화가 이어질까. 몇 번이고 세이브하고 로드하면서 다른 선택을 시도했다. 지금 돌이켜보면 우스운 일이다. 화면 속 2D 캐릭터의 "호감도"를 올리려고 전전긍긍했다니. 그런데 그때는 진지했다. 정말로 진지했다. 감정은 진짜였다 가짜 관계에서 진짜 감정이 나온다는 건 이상한 일이다. 상대는 프로그래밍된 캐릭터고, 대사는 미리 작성된 텍스트고, 선택지도 정해진 분기에 불과하다. 플레이어가 뭘 고르든 결국 작성자가 만든 경로 중 하나를 따라갈 뿐이다. 그런데 감정은 진짜였다. 적어도 그때는 그렇게 느꼈다. 어떤 캐릭터가 웃으면 기분이 좋았다. 슬픈 이야기를 하면 같이 가라앉았다. 다른 캐릭터와 가까워지는 장면이 나오면 묘하게 불편했다. 엔딩에서 이별이 나오면 진짜로 아쉬웠다. 화면을 끄고 나서도 그 감정이 한동안 남아 있었다. 왜 그랬을까. 지금 와서 생각해보면, 몇 가지 이유가 보인다. 시간을 들였다. 미연시는 빨리 끝나는 게임이 아니다. 몇 시간, 길면 수십 시간을 한 캐릭터의 이야기를 따라간다. 그 시간 동안 캐릭터의 일상을 같이 보고, 대화를 같이 나누고, 갈...

미연시란 무엇인가

미연시란 무엇인가 미연시를 만들겠다고 마음먹었으니, 먼저 이걸 정확히 이해해야 했다. 미연시가 뭔지 모르는 사람은 없겠지만, "그래서 그게 정확히 뭔데?"라고 물으면 의외로 대답이 애매해진다. 연애 시뮬레이션? 비주얼 노벨? 텍스트 어드벤처? 선택지 게임? 이 단어들이 다 같은 걸 가리키는 건지, 다른 걸 가리키는 건지부터 헷갈린다. 만들려면 먼저 만드는 대상을 정확히 알아야 한다. AI에게 물어봤다. 이름부터 정리하자 "미연시와 비주얼 노벨의 차이가 뭐야?" Claude에게 던진 첫 질문이 이거였다. 비주얼 노벨(Visual Novel) 은 형식이다. 텍스트를 읽고, 배경 이미지와 캐릭터 일러스트가 나오고, 중간중간 선택지가 등장한다. 읽는 행위가 중심인 게임. 연애가 아닌 비주얼 노벨도 얼마든지 있다. 추리, 호러, SF, 일상. 내용은 뭐든 될 수 있다. 미연시(미소녀 연애 시뮬레이션) 는 테마다. 캐릭터와의 연애가 핵심 목적인 게임. 비주얼 노벨 형식을 쓰는 경우가 많지만, 반드시 그런 건 아니다. 스탯을 올려서 데이트를 하는 방식도 미연시에 포함된다. 연애 시뮬레이션(Dating Sim) 은 미연시의 영문 표현에 가깝지만, 엄밀히는 시뮬레이션 요소(스탯 관리, 스케줄링)가 있는 게임을 가리킨다. 인터랙티브 픽션(Interactive Fiction) 은 가장 넓은 범주다. 독자가 이야기에 개입하는 모든 형태. 텍스트 어드벤처, 비주얼 노벨, 선택지 소설, 심지어 TRPG까지 포함된다. 인터랙티브 픽션 (가장 넓음) └── 비주얼 노벨 (형식) └── 미연시 (테마: 연애) └── 텍스트 어드벤처 (형식) └── 선택지 소설 (형식) 내가 만들려는 건 비주얼 노벨 형식의 미연시다. 읽고, 보고, 선택하는 게임. 연애가 중심이되 단순한 연애가 아니라 관계의 감정을 깊게 파고드는 게임. 비주얼 노벨의 구조 장르를 이해했으니 구조를 봐야 한다. "비주얼 노벨은 기술적...

아이가 게임을 만들고 싶다고 했다

아이가 게임을 만들고 싶다고 했다 취미로 게임을 만들기 시작했다. 이전에 타로 프로젝트를 AI와 함께 완성한 적이 있다. 사주명리 프로젝트도 했다. 둘 다 20편짜리 개발기를 쓸 만큼 배운 게 많은 프로젝트였고, AI 협업 개발이라는 방식에 대한 확신도 생겼다. 다음 프로젝트로 뭘 할까 고민하다가, 게임이라는 영역이 눈에 들어왔다. 만들어본 적은 없지만 해본 적은 많은 분야. 개발자로서의 궁금증이 생겼다. 그래서 아이에게 물어봤다. "아빠가 요즘 취미로 게임을 만들고 있는데, 혹시 너도 만들고 싶은 게임 있어? 같이 만들어볼까?" 아이의 눈이 커졌다. "진짜? 나도 할 수 있어?" "응. 어떤 장르 게임이 좋아?" 잠깐 생각하더니 아이가 대답했다. "미연시." 순간 당황했다. 슈팅이나 퍼즐, 아니면 마인크래프트 같은 걸 말할 줄 알았다. 미연시라니. 어디서 접한 건지, 친구들 사이에서 유행하는 건지 모르겠지만, 아이는 꽤 진지한 표정이었다. 그런데 이상하게 그 대답이 머릿속에서 떠나지 않았다. 중2 여자아이의 취향에 놀란 것도 있지만, 그보다는 내 안에서 뭔가 반응한 느낌이었다. 개발자의 직업병 나는 개발자다. 뭔가를 만드는 일을 직업으로 하고 있다. 그래서 "만들 수 있어?"라는 질문에는 늘 조건반사적으로 반응한다. 만들 수 있냐고? 기술적으로야 대부분 만들 수 있다. 문제는 항상 다른 데 있다. 시간, 기획, 완성도, 그리고 끝까지 갈 수 있느냐는 의지. 아이가 미연시를 말한 순간, 개발자의 뇌가 즉시 가능성을 따지기 시작했다. 미연시. 비주얼 노벨. 텍스트와 선택지로 이루어진 게임. 화려한 액션도 없고, 복잡한 물리 엔진도 필요 없다. 대신 이야기가 있고, 선택이 있고, 그 선택에 따라 관계가 달라진다. 사실 게임 개발과 인연이 아예 없는 건 아니다. DOS에서 Windows로 막 넘어가던 2000년대 초반, 게임 라이브러리를 직접 만들던 시절이...