Claude 3.5 AI와 협업한 썰
어쩌면 옛날 사람(?) 인증일 수도 있겠다 ㅋ 옛날 책 중에서 "00 페이지로 가시오" 라고 해서 따라가다 보면 각기 다른 엔딩을 보여주던 인터랙티브 북(?)이 있었더랬다. 지금 생각해보면 참 기발한 아이디어가 아닐 수 없다. 전자기기도 아닌 종이책으로 최고의 효율과 재미를 선사해주었던 것이다. 그리고 또 다른 예로는 몇년 전에 나온 게임 중에서 "서울 2033"이라는 게임이 있는데 그것도 텍스트 어드벤처 게임의 일종이다. 플레이어의 선택지에 따라서 스토리의 흐름이 달라지고 나아가 결말까지 달라지는 게임이다.
그래서, 나는 일단 먼저 텍스트 어드벤처 게임부터 만들어보기로 했다. 왜냐하면 나는 언젠가 게임을 꼭 만들어보고 싶은데, AI를 활용해서 만들기에 가장 쉽고 간단하다고 판단되었기 때문이다. AI와의 협업(?) 가능성에 대한 테스트해볼 수 있는 좋은 기회였다.
또한 게임 중에서도 "텍스트 어드벤처 게임"이라는 장르는 게임 개발을 하기에 비교적 진입 장벽이 낮다고 판단했다. 보통 게임이라고 하면 수준 높은 그래픽과 사운드, 지루하지 않은 조작 방식 및 인터랙션이 있어야 한다. 그래야 최소 인디 게임의 반열에 오를 수 있을테지만, 텍스트게임은 일단 수준 높은 그래픽이 필요 없다. 사운드도 없어도 된다. 조작 방식도 매우 간결하다. 선택지에 따라 지문만 바뀌면 된다. 이보다 간단할 수 있을까! (...하지만 나중에서야 알았지만, 선택지를 기획하는 것 자체가 엄청나게 전문화된 영역이고 고된 일임을 깨닫게 된다...ㅠ)
그래서 호다닥 2일만에 만들어보게 된 게임, 구경해보시라 :)
일전에 나는 AI로 스토리를 짜보고 소설을 쓰는 실험을 해봤었다. 그 결과로 "색깔공장" 이라는 소설을 얻을 수 있었다. (관련 글 바로 가기>>) 간략하게 줄거리를 소개하자면, 색깔을 만드는 로봇 공장의 로봇들이 무료하게 색깔 만드는 일을 하고 있다. 그러던 중에, 아름다운 색을 조합할 수 있는 가능성을 발견하며 스스로의 가능성에 눈뜨게 된다는(!!) 아주 교훈적인 스토리다. 이것도 AI가 만든 스토리다 ㅋ 픽사의 스토리텔링 기법을 사용했다.
제일 먼저, 이 소설 텍스트를 Claude한테 준 다음에 다음과 같이 질문했다.
그랬더니, 스스로 분석하더니 여러 아이디어를 던저준다.
그리고 나서 "선택지"를 만들어달라고 했다. 텍스트 어드벤처의 핵심은 "선택지"이다. 어떤 선택을 하느냐에 따라서 여러 결말로 이어지는 구조인 것이다. 소설의 '메인 스토리'로 이어지는 '진엔딩'이 있고, 잘못된 선택을 했을 때의 '배드 엔딩'이 있다.
하지만, 처음부터 얘(?)한테 한번에 부탁하면 제대로 된 결과를 주지 않는다는 것을 여러 시행착오 끝에 깨달았다. 질문을 잘게 잘게 부숴서, 떠먹여줘야 된다. 그래서 일단 '메인 스토리'라인을 따라가는 선택지부터 만들어달라고 했다.
물론, 중간 중간에 자기가 스스로 없던 스토리를 만들어내는 오류를 걸러줘야 된다. 자세히 안보면 얘가 얼렁뚱땅 넘어간다. 은근슬쩍 이상한 스토리를 넣어버린다. 그래서 지적을 잘 해주는 것도 필요하고, 디렉션을 명확하게 하는 것도 중요하다.
그 다음에는 JSON 형태로 선택지를 변환해달라고 했다. 최소한의 형식은 내가 제시해줬다. 물론, 처음부터 구체적인 형식 없이 JSON을 만들어달라고 해도 괜찮다. 하지만 내가 고려한 개발 방식에 따라서 구체적인 형식을 제시하면 더 편할 수 있다.
여기까지가 모든 작업중에 80%를 다 했다고 보면 된다. 비교적 쉬운 과정이었다.
하지만 이제 남은 20%의 작업이 진짜다. 이후 작업은 이 JSON을 개선하고, 발전시키고, 온전하게 완성시키는 작업이다. 나머지 20%를 마무리하고 "완성" 시키는 일은 앞의 80%를 만들때보다 더 오래걸릴수도 있다. (실제로 더 오래걸렸다....)
이후 메인스토리 씬 개선 작업은 너무 많아서 ('ㅅ') 일일이 캡쳐할 수는 없고, 어떤 것들을 개선했는지 적어보았다.
1. previousScene과 q(답변)들간의 관계 설정
2. 각 씬에 고유한 id 부여
3. 필요없는 필드 제거
4. 원래 소설을 바탕으로 스토리가 유지되도록 주기적인 회초리(...)
5. 메인스토리 씬 64개 완성
메인 스토리까지 64개의 scene을 가진 JSON 파일이 완성되었다. 다음 단계는 사이드 엔딩(배드 엔딩)을 구성할 필요가 있었다. 이제 90%까지 왔다. 진짜 중요한 마지막 작업... 여러 엔딩 만들기 요청을 해보았다.
그랬더니 꽤나 괜찮은 옵션들을 제안해줬다. 그래서 모두 다 도입(?)해달라고 했다. 사실, 모두 다 도입하면 안됐었다. 너무 많이 한번에 많은 기능을 도입하면 꼬인다. 1개라도 제대로 넣게끔 하고, 그 다음에 다음 기능을 넣어달라고 하는 것이 바람직하다.
이후에도 정교화 작업은 이어졌다. 길고 긴 시간이었다. 이상한 엔딩을 잡고, 에러를 잡고, 이상한 값을 고치고....scene별로 쭉쭉 뽑았다. 얘는 한번에 뱉어낼 수 있는 텍스트의 양이 제한되어 있어서 답변의 양도 정해주면 좋다. 예를 들면 3개의 scene에 대한 데이터만 달라고 하던지, 적당히 조절을 해주면 좋다.
그리고 드디어... 모든 scene의 데이터를 완성했다!
모든 선택지와 지문은 AI에 의해 생성되었으며, 나는 한글자도 고치지 않았다. ㅎㅎ
재밌는 경험이었다. 물론, 게임의 완성도나 재미 면에서는 생각했던것보다 많이 떨어졌다 ㅋㅋ 왜냐면 scene을 만드는 과정에서 스토리가 루즈해지고 오로지 AI에게 맡기니까 이렇다할 서스펜스가 없었달까? 하지만 어쨌든 AI를 통해서 기본적인 뼈대를 만들 수 있고 내가 생각치 못한 아이디어를 얻을 수 있다는 점이 아주 흥미로운 경험이었다.
무엇보다 주목할 점은, 이 모든걸 개발한 건 불과 이틀에 불과하다는 점이다. 중간에 AI로 썸네일 이미지도 만들었다. 개발은 React로 했고 개발코드까지 AI한테 부탁했다. 금방 뚝딱 만들어줬다. 나는 css만 좀 고쳤을 뿐이다. 만약 이런 프로젝트를 AI없이 하려면, 아무리 못해도 개발자, 기획자, 디자이너 3명이 3일 이상은 했었어야 하는 일이었다고 생각한다. 그런데 혼자서 개발을 해볼 수 있다는 것은 AI가 없던 불과 2년 전만 해도 상상하기 어려운 일이다.
많은 가능성을 엿봤던 재밌는 토이 프로젝트였다. 또 다른 장난감 만들어봐야지! :)