Skip to content

KAIST Puple에서 개발하고 OCN에서 공개한 프로젝트 빌런 유니버스의 공개 가능한 범위 내에 있는 구현 코드입니다.

Notifications You must be signed in to change notification settings

NPCandy505/VillainUniverse

Repository files navigation

KAIST Villain Universe Skill Data Implementation

2021년 봄학기, 대한민국의 케이블 방송 채널 OCN과 협력하여 “타인은 지옥이다”, “보이스 3”등 OCN의 여러 IP에 등장하는 세계관과 캐릭터를 배경으로 한 모바일 방탈출 게임 “빌런 유니버스”를 개발하여 공개한 경험이 있습니다.

해당 프로젝트는 KAIST의 동아리 “KAIST Puple”에서 활동하던 중 OCN의 제의를 받아 제작하게 되었습니다. 당시 개발 및 기획의 총괄을 맡아 진행하였습니다.

이를 통해 개발력과 기획력 뿐만 아니라, 새로운 플랫폼에 맞추어 기획 의도를 적절하게 구현해내는 유연함과, 업무를 분배하고 병렬적으로 구조화하는 협업 능력을 갖출 수 있었습니다.

“빌런 유니버스”는 일반 이용자들의 쉽고 익숙한 접근을 위하여 카카오톡 챗봇 기능을 이용해 제작되었습니다.

코로나-19로 인해 오프라인 활동이 제한되어 있는 상황에 맞추어, 거의 모든 고객들이 카카오톡을 사용하므로 집에서도 편하게 새로운 컨텐츠를 시도해볼 수 있을 것이라 예상하였습니다.

결과적으로 “빌런 유니버스”는 서비스 종료까지 약 75000명의 이용자 수를 기록하며 OCN의 IP 홍보에 성공적으로 기여할 수 있었습니다.

저희는 이용자가 메세지를 입력하고, 메세지에 따른 출력을 제공해주는 챗봇의 기능을 방탈출에서의 사물을 탐색하고, 사물에서 단서를 찾게 되는 경험과 연관짓고자 하였습니다.

그러나 프로젝트를 제작하던 당시 다른 대다수의 챗봇 개발자들은 챗봇 시스템을 업체의 공지사항 및 문의에 대한 질의응답의 창구로 이용하고 있었습니다.

하나의 input에 하나의 output이 매핑되어야 하는 기존 챗봇 설계와는 다르게, 저희가 원하는 기능은 사용자의 상황에 맞추어 같은 행위도 다른 결과를 이끌어내는 인터랙티브한 상호작용이었습니다.

예를 들어, 사용자가 어떠한 방을 탐색할 때, 특정 정보를 알고 있지 않다면 평범한 사물이라고 인식되던 것들이, 정보를 알고 난 다음엔 특정한 누군가의 사물이라고 출력되게 하고자 하였습니다.

이를 구현하기 위해, 카카오톡 챗봇 api에서 제공하는 “시나리오”라는 단위를 방과 사물에 대응시키고, 해당 요소에서 얻을 수 있는 상호작용을 “스킬 데이터”라는 단위에 대응시켰습니다.

시나리오는 사용자가 입력한 메세지의 특정한 trigger를 시작으로 발화되어 챗봇의 특정한 응답을 만들어주는 기능입니다.

스킬 데이터는 시나리오에서 파싱되어 전달되는 파라미터들을 이용하여 특정한 연산을 수행하고, 이를 다시 시나리오로 반환해주는 기능입니다.

이를 통해 시나리오에서는 방과 방의 이동, 방 내에 존재하는 사물들의 조사, 풀어야 하는 퍼즐들의 출력을 설계하였습니다.

또한 클라우드 서버 “구름 ide”에 구현한 DB를 연동하여 사용자의 여러 진행 상황을 기록하고, 그에 따라 다른 응답을 내놓을 수 있도록 스킬 데이터를 설계하였습니다.

이를 개발하며 하나의 방을 특정 flag의 유무에 따라 내부적으로는 다르게 설계한 두 시나리오로 구현하거나, 기존에는 어려워 보였던 인벤토리 기능, 지도 기능, 진행 상황 노트 기능 등을 구현할 수 있게 되는 등, 새로운 문제점과 이를 해결하는 과정을 통해 실용적인 개발 능력을 크게 기를 수 있었습니다.

본 리포지토리에서는 구현에 사용되었던 이미지 및 퍼즐들의 해답이 제거된 버전입니다.

About

KAIST Puple에서 개발하고 OCN에서 공개한 프로젝트 빌런 유니버스의 공개 가능한 범위 내에 있는 구현 코드입니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages