사람과 대화할 수 있는 AI NPC를 만들어보자

조주희·2021년 5월 31일
0

게임 NPC ai 제작기

목록 보기
1/1

개발 계기

주말에 나는 게임을 하다가 약간의 답답함을 느꼈다. 내가 좋아하는 npc와 대화도 하고 소통을 하고 싶은데 내게 주어진 선택지는 "수락하기" 와 "거절하기" 중 하나를 선택하는 것밖에 없었다.

물론 어쩔 수 없는 건 안다. npc마다 대화용 인공지능을 넣는 것에는 개발 리소스가 많이 들 뿐만 아니라, 유지보수하는 비용 또한 클 것이다. 그로 인해 얻는 건 사용자의 만족감 뿐이니 여러 모로 단가가 맞지 않는다.

하지만 여전히 사용자 입장에서는 무리란 걸 알아도 바랄 수밖에 없는 것이다. 그래서 유지보수는 어쩔 수 없더라도 개발비용이라도 살짝 줄여주면 어딘가의 작은 게임팀 하나쯤은 참고해서 제작해주지 않을까 하는 생각이 들어서 개발을 시작하게 되었다.

사실 대화용 인공지능을 만들어봤자 큰 회사에서는 자체개발을 선택할 것이고 소규모 게임사는 서버비용의 부담 탓에 사용을 꺼릴 것임을 안다. 그래도 아무도 안 쓰더라도 적어도 내가 만드는 동안은 즐거울 테니 그걸로 된 게 아닐까.

프로젝트 개요

개발 목표

현실적으로 내 부족한 개발 실력으로 완벽히 사람과 대화할 수 있는 인공지능을 만드는 건 불가능하다. 그건 연구실에 맡겨야지.

정말 조악하지만 이 정도가 내가 원하는 인공지능이다. 퀘스트를 받을 때나 완료했을 때 제한된 대화를 할 수 있는 인공지능. 이것만 하는 것도 솔직히 어려울 것 같다.

그래도 되는 데까진 해봐야지. 실패해도 얻는 건 분명 있을 거다.

사용 기술

elasticsearch

키워드 추출 및 검색에 사용할 예정이다. 가령 위의 예제에서는 "우주선에서 발견했어" 라는 문장에서 "우주선"을 추출하여 검색하는 방식이다.

이건 그래도 해왔던 게 있으니 기본 틀을 잡는 정도는 금방 하지 않을까. 물론 플젝에 맞는 검색식을 만들어내는 작업은 한참 걸리겠지만.

감성 분석

긍정 부정 표현을 가려내는 데에 사용할 것이다. 위의 예제로 치자면 "너가 한 게 뭐가 있다고? 안 돼" 를 부정표현으로 리턴하는 식이다.

이게 진짜 내 프로젝트에 가장 큰 고비다. 자연어처리 관련 작업이야 많이 해왔지만 딥러닝을 프로젝트 차원에서 제대로 해본 적은 없다. 기본 개념을 이해하는 데에도 꽤 걸리지 않을까.

이해한 다음도 문제다. 게임 대사 긍정 부정 표현 데이터는 거의 없고, 내가 수집할 수 있는 데이터라고는 상품 리뷰 같은 것뿐인데, 과연 게임 데이터에서도 좋은 결과를 낼 수 있을까. 이건 해봐야 알 문제 같다.

개발 일정

미정이다. 내게 최우선순위는 어쨌든 회사 프로젝트이고, 플젝 일정이 바쁠 땐 몇 주간 작업하지 못할 수도 있다.

그래도 되도록 6개월 내에는 프로토타입을 볼 수 있도록 노력해볼 예정이다. 개발하는 짬짬이 블로그에도 정리해야지.

profile
검색 인공지능 엔지니어입니다

0개의 댓글