게임 UI 형태의 페르소나 챗봇 개발

소개

https://vibecity.chat

현재 페르소나 챗봇이나 AI 캐릭터 챗 서비스들의 천편 일률적인 Chat UI 형태가 몰입감을 방해한다는 생각이 들어 비주얼 노벨 같은 형태의 UI로 만들면 어떨까 해서 만들어 봤습니다.

UI나 기능 개발에 집중해서 정작 중요한 페르소나 챗은 좀 부족하지만 그래도 느낌은 괜찮은것 같아서 공유합니다.

진행 방법

  • ChatGPT/Claude: AI 페르소나를 만든 경험이 없어서 빠르게 다양한 캐릭터의 설정과 시스템 프롬프트를 만들었습니다.

  • ChatGPT(Dall-E), Midjourney, Whisk: 위에서 생성한 캐릭터들의 portrait 에셋과 게임의 배경, 인트로 화면 등의 이미지 에셋을 생성했습니다.

  • Next.js + Cursor.AI: 대략적인 머리속에 떠오르는 아키텍쳐 구조를 PRD.md로 대충 휘갈겨 cursor에 claude-4-sonnet thinking 모드에서 그냥 하나 부터 열까지 만들어달라고 했습니다. 에러와 버그를 하두 내뱉어서 그거 수정하는데 개발기간 일주일중의 대부분을 잡아먹었습니다.

  • Suno AI: 인앱 BGM 작곡

  • OpenAI gpt-4.1 api: 실제 AI 페르소나들을 구동하는 LLM으로 사용했습니다.

개발 기능

  • 비주얼 노벨 형태의 UI를 상황별로 그리기 위한 Scene Engine

  • 14명의 다양한 캐릭터와의 비주얼 노벨 형태의 AI 챗

  • 감정별, 음료별 캐릭터 추천

  • 대화 컨텍스트 저장 및 이후 대화에서도 대화 이력 등을 요약해서 프롬프트로 전달

  • 캐릭터 설정을 자세히 볼수 있는 손님 목록 UI와 호감도에 따른 배경 및 설정 해금

  • 도전과제 등

남자가 비디오 게임에서 술집 뒤에 서 있습니다
남자가 비디오 게임에서 술집 뒤에 서 있습니다
테이블 앞에 서있는 남자와 함께 게임의 스크린 샷
테이블과 의자가있는 게임 스크린 샷
테이블과 의자를 보여주는 컴퓨터 화면의 스크린 샷

결과와 배운 점

  • 캐릭터/페르소나 챗에서 UI 보다 중요한건 대화의 품질과 재미라는걸 느꼈습니다. 실제로 다 만들고 내가 해보니까 대화 진행이 제대로 안된다는 느낌을 받았어요

  • 너무 상세하게 캐릭터의 배경과 설정 등을 지정해두면 오히려 답변이나 대화 진행이 유연하지 못하고 재미가 없어지더라구요.

  • 이미지 생성 AI의 성능이 엄청 좋아졌지만 이상하게 pixel art나 도트그래픽에서 결과물의 일관성을 유지하기가 너무 힘듬. 좋은 방법이 있으면 알려주세요 ㅜㅜ

  • 마찬가지로 게임 에셋을 만들때 배경 - 캐릭터 - 오브젝트 등 다양한 레이어로 만들어야하는데 테이블을 만들어달라 했더니 배경까지 같이 만들어주는 바람에 누끼 따는데 시간이 더 걸림 (이것도 좋은 방법 있나요? ㅜㅜ)

  • 기존 대화 기록 + 상황 등의 컨텍스트를 주입해도 갑자기 잊어먹고 캐릭터가 딴소리를 하는 경우도 있음... 프롬프트 최적화에 대해 더 공부해야겠음

  • 결론: AI 캐릭터 챗... 쉬울줄 알았는데 생각보다 만들기 어렵더라구요. 일단 단순히 프롬프트 + gpt api로는 원하는 품질의 대화를 하기 힘든것 같습니다. 또한 컨텍스트나 진행도 유지를 위해 RAG등의 기능도 개발해야하고 처음 구상했을때는 아주 단순하게 재미있는거 만들수 있지 않을까 했는데 컨셉 정도만 개발하는데도 쉽지 않았네요.

  • 캐릭터 대화 품질과 컨텍스트 유지 그리고 재미있는 캐릭터와 상황을 만드는데 좀더 시간을 투자해보려고 합니다.

6
16개의 답글

👉 이 게시글도 읽어보세요