이 시리즈를 읽는 사람에게

 

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

아이가 "미연시"라고 말한 순간부터 여기까지 왔다. 20편. 돌이켜보면 꽤 먼 거리를 왔다.

코드 한 줄 쓰지 않았다. Ren'Py를 설치하지도 않았다. 그런데 이 프로젝트에서 가장 중요한 작업은 끝났다. 시나리오 설계. 감정의 구조를 이해하고, 그걸 시스템으로 번역하는 작업.

이 여정에서 발견한 것들

처음에는 "미연시 만들기"가 목표였다. 끝나고 보니, 목표는 바뀌어 있었다.

미연시를 만드는 건 기술적으로 어렵지 않다. Ren'Py가 대부분의 기술적 문제를 해결해준다. 어려운 건 "플레이어의 감정을 진짜로 움직이는 미연시"를 만드는 거다. 그리고 그걸 위해서는 기술이 아니라 감정에 대한 이해가 필요하다.

사랑은 단일 변수가 아니라 조건의 결과다. 장면은 배경이 아니라 감정의 증폭기다. 선택의 결과는 즉시가 아니라 나중에 온다. 좋은 선택이 비극이 될 수 있다. 행동과 내면은 다르다. 갈등은 악역이 만드는 게 아니다. 엔딩은 점수가 아니라 상태다.

이 원칙들은 미연시 설계의 원칙이기도 하지만, 동시에 관계에 대한 관찰이기도 하다. 게임을 설계하면서 관계를 이해하게 되는 역설적인 경험.

그리고 예상치 못한 발견도 있었다. AI에게 "사랑이란 무엇인가"를 직접 물었을 때, AI는 사전적 정의를 늘어놓았다. 별로 쓸모없었다. 그런데 "신뢰 40에 친밀감 30이면 이 캐릭터가 상대를 어떻게 대하겠냐"고 물었을 때, AI는 구체적이고 설득력 있는 행동 묘사를 했다. 추상적인 질문보다 구체적인 시스템 안에서의 질문이 훨씬 유용한 답을 이끌어낸다. 이건 AI 활용법에 대한 핵심 교훈이었다. 감정을 직접 물으면 클리셰가 나오지만, 구조를 통해 간접적으로 물으면 진짜 통찰이 나온다.

AI는 어떤 존재였나

이 프로젝트에서 AI는 세 가지 역할을 했다.

첫째, 구조를 잡아주는 건축가. 감정 시스템의 3계층 모델, 컨텍스트 시스템의 변수 구조, 기억 시스템의 플래그 설계. 이런 구조적 뼈대를 빠르게 만들어줬다. 사람 혼자 했으면 몇 배의 시간이 걸렸을 일이다.

둘째, 빠진 부분을 짚어주는 리뷰어. "이 변수가 이렇게 바뀌면 저 변수는 어떻게 돼야 하지?"라고 물으면 논리적 일관성을 검증해줬다. 사람이 놓치는 예외 케이스를 잡아내는 데 효과적이었다.

셋째, 생각을 명확하게 만드는 대화 상대. AI에게 설명하려면 먼저 내가 정확히 알아야 한다. "이 캐릭터는 이런 사람이야"라고 AI에게 말하는 과정에서, 내 생각이 구체화됐다. AI가 답을 준 게 아니라, AI에게 질문하는 과정에서 답을 찾은 경우가 많았다.

그리고 AI가 하지 못한 것. 감정의 무게를 판단하는 것. "이 장면이 왜 슬픈지"를 느끼는 것. 뉘앙스 있는 한 줄의 대사를 쓰는 것. 이건 여전히 사람의 영역이다. 그리고 아마 한동안은 계속 그럴 거다.

구체적인 예를 들면, 파국 엔딩의 마지막 대사를 AI에게 써달라고 했을 때, AI는 "우리는 서로를 너무 사랑해서 망가졌어"라는 대사를 제안했다. 나쁘지 않다. 하지만 너무 설명적이다. 내가 쓴 대사는 "너 때문에 울었던 날이, 네가 없어서 울었던 날보다 많았어"였다. 같은 감정이지만, 후자가 더 아프다. 왜냐하면 구체적이니까. 감정의 무게는 추상적인 선언이 아니라 구체적인 경험에서 온다. AI는 구조를 잡아주지만, 그 구조 안에 넣을 한 줄의 대사는 사람이 써야 한다.

아이에게 보여줄 수 있을까

이 프로젝트가 아이의 한마디에서 시작됐다는 걸 기억한다. 중2 딸이 "미연시"라고 말한 그 순간.

아직 게임은 없다. 코드도 없다. 하지만 설계는 있다. 감정이 어떻게 흘러야 하는지, 선택이 어떤 무게를 가져야 하는지, 관계가 어떻게 만들어지고 무너지는지에 대한 구조가 있다.

다음은 이걸 코드로 옮기는 일이다. Ren'Py에서 감정 시스템을 구현하고, 장면을 작성하고, 선택지를 배치하고, 테스트하는 일. 그건 이 시리즈의 다음 시즌이 될 거다.

사실 가장 걱정되는 건 구현 과정에서 설계가 타협되는 거다. 20편에 걸쳐 설계한 감정 시스템이 코드로 옮기면 단순해질 수 있다. 변수 14개가 너무 많아서 10개로 줄이게 될 수도 있고, 컨텍스트 조합이 복잡해서 핵심만 남기게 될 수도 있다. 그래도 괜찮다. 설계는 이상이고, 구현은 현실이다. 중요한 건 핵심 원칙을 지키는 거다. "사랑은 변수가 아니라 조건의 결과"라는 원칙. "선택의 결과는 나중에 온다"는 원칙. "좋은 선택이 비극이 될 수 있다"는 원칙. 이 세 가지만 살아남으면, 구현에서 변수 몇 개가 빠져도 이 미연시는 의미가 있다.

아이에게 완성된 게임을 보여주는 날이 올까. 아마 올 거다. 그리고 아이가 플레이하면서 어떤 선택을 하는지, 어떤 감정을 느끼는지 보는 것. 그게 이 프로젝트의 진짜 엔딩이 될 거다.

한 가지 재미있는 상상을 한다. 아이가 플레이해서 "늦은 사랑" 엔딩에 도달하면 어떨까. 중2니까 아마 매번 배려하는 선택을 할 거다. 그러면 그 배려가 회피가 되어 돌아오는 걸 경험하게 된다. 그때 아이가 무슨 생각을 할지. 어쩌면 아빠가 20편에 걸쳐 설계한 것의 의미를 한 번의 플레이로 이해하게 될지도 모른다.


이 시리즈는 미연시 제작 튜토리얼이 아니다. 코드 한 줄 없이 20편을 썼다. 이건 감정에 대한 탐구이고, AI와의 협업 기록이고, 관계에 대한 분석이다.

만약 당신도 미연시를 만들고 싶다면, 코드부터 시작하지 마라. 먼저 이 질문에 답해라. "왜 사람은 가상의 관계에서 진짜 감정을 느끼는가?" 이 질문에 자기만의 답을 가지고 있을 때, 비로소 감정을 설계할 수 있다.

그리고 AI를 활용할 거라면, 이것만 기억해라. AI에게 "감동적인 스토리 써줘"라고 하면 안 된다. AI에게 "이 변수 조합이면 캐릭터가 어떤 행동을 하겠냐"고 물어야 한다. AI는 구조 안에서 일할 때 가장 강하다. 자유로운 창작은 사람보다 못하지만, 시스템 안에서의 논리적 추론은 사람보다 빠르고 정확하다. 이 프로젝트를 통해 배운 AI 협업의 핵심은 결국 이거다. AI에게 좋은 제약 조건을 주는 것. 제약이 구체적일수록, AI의 답은 유용해진다.

AI는 구조를 줄 수 있다. 하지만 감정은 당신이 넣어야 한다.

다음 단계

이 시리즈는 시나리오 설계 편이다. 다음은 구현 편이 될 거다.

  • Ren'Py에서 3계층 감정 시스템 구현
  • 컨텍스트 시스템과 날씨 시스템 코딩
  • 기억 시스템과 플래그 관리
  • 실제 시나리오 1편분 작성
  • AI를 활용한 대사 생성과 테스트

20편을 쓰면서 가장 많이 느낀 건, AI와의 협업이 "혼자 하는 것보다 빠르다"가 아니라 "혼자서는 도달하지 못하는 곳에 간다"는 거였다. 감정 시스템의 3계층 구조는 AI 없이도 떠올릴 수 있었을 거다. 하지만 A층이 안 바뀌고 C층만 바뀐다는 원칙, 그리고 그 원칙이 캐릭터의 성격은 유지하면서 관계만 변하게 만든다는 설계적 의미. 이건 AI와 수십 번 "왜?"를 주고받으면서 도달한 결론이었다. 속도가 아니라 깊이의 문제다.

아이의 한마디에서 시작해서, AI와 함께 감정을 설계하는 여정. 시나리오 편은 여기서 마친다. 다음에는 코드로 돌아온다.


시리즈 "AI 협업 개발기: 미연시 프로젝트 — 시나리오 설계편" 완결

구현편으로 이어집니다.

댓글

이 블로그의 인기 게시물

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

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

시작의 충동 — "타로 웹앱을 만들어볼까?"