에이전트

브라우저 기반 테이블톱 롤플레잉 게임 개발자가 인공지능 마스터 시스템 구축 과정에서 겪은 네 가지 주요 기술적 도전과 해결 방안

2026년 10월 21일 · 읽는 시간 2분

a man wearing a headset sitting in front of a computer
Vagaro / Unsplash

한 개발자가 언어 모델을 게임 마스터로 활용하는 브라우저 기반 텍스트 롤플레잉 게임을 제작하던 중 확률적 인공지능 모델과 결정론적 게임 규칙을 통합하는 과정에서 발생한 네 가지 핵심 문제를 해결하였다. 이 프로젝트는 플레이어가 자연어로 행동을 입력하면 인공지능이 서사를 생성하고 별도의 게임 엔진이 체력, 금전, 능력치, 인벤토리 및 이십면체 주사위 굴림과 같은 기계적 요소를 관리하는 구조로 설계되었다.

첫 번째 과제는 게임 상태 관리의 일관성을 유지하는 것이었다. 초기 버전에서는 인공지능 모델에게 전체 캐릭터 시트를 제공하고 상태 업데이트까지 요청하는 방식을 사용했으나, 이 접근법은 모델이 아이템을 잊어버리거나 존재하지 않는 강력한 무기를 부여하며 금전 액수를 혼동하는 등 데이터 불일치를 초래하였다. 개발자는 이에 따라 모델이 서사 외에 변경 사항만 포함된 엄격한 형식의 데이터만 출력하도록 제한하였다. 게임 엔진은 이 데이터를 적용하면서 방어력이 피해를 최대 절반까지 감소시키거나 아이템 보너스에 상한선을 두는 등 규칙의 경계를 감시하였다. 또한 과거 사건의 요약본을 프롬프트에 포함시켜 장기적인 맥락을 유지하면서도 전체 기록을 매번 전송하는 비효율을 방지하였다.

두 번째 개선 사항은 게임 진행 속도와 비용 최적화를 위한 주사위 굴림 시점 변경이었다. 원래 시스템은 검사 필요성 판단과 실제 주사위 굴림을 위해 두 번의 요청이 필요하여 지연과 비용이 발생하였다. 개발자는 서버가 모델에 요청을 보내기 전에 미리 이십면체 주사위를 굴린 후 그 결과를 프롬프트에 포함시키는 방식으로 전환하였다. 시스템 명령어는 모델에게 검사가 필요할 경우 성공 또는 실패 여부를 명시하고 해당 결과에 맞춰 서사를 작성하도록 지시하였다. 서버는 이 응답을 보관하였다가 플레이어가 굴림 버튼을 누르면 새로운 요청 없이 즉시 결과를 표시하였다. 모델이 산술 실수로 실제 결과와 다른 성공 여부를 서술할 경우, 서버는 임계값인 일 또는 이십을 제외하고 난이도 수치를 조정하여 서사 내용과 실제 계산 결과가 일치하도록 보정하였다.

세 번째로 발견된 치명적인 오류는 캐릭터의 최대 체력이 기하급수적으로 증가하는 현상이었다. 조사 결과 모델이 프롬프트의 지시를 오해하여 현재 체력 변경 사항이 아닌 최종 최대 체력 값을 반환하였고, 엔진이 이를 누적하여 더하면서 문제가 발생하였다. 개발자는 프롬프트에 최대 체력은 드물게 변경되며 변경 폭은 제한된다는 규칙을 명시적으로 추가하였다. 아울러 엔진 측에서도 모델이 잘못된 값을 보내올 경우를 대비하여 변경량이 허용 범위를 초과하면 이를 최종 값이 아닌 차이 값으로 재해석하고 증가 폭을 제한하는 안전 장치를 마련하였다. 또한 최대 체력이 증가할 때 현재 체력도 동일하게 상승하도록 로직을 수정하여 플레이어 경험의 일관성을 확보하였다.

마지막으로 인공지능 마스터의 개성 구현 방식이 개선되었다. 초기에는 다양한 어조 설정이 프롬프트 중간에 위치하여 모델이 이를 무시하고 유사한 톤으로 응답하는 문제가 있었다. 개발자는 스타일 지시사항을 시스템 프롬프트의 맨 끝으로 이동시키고 사용자 입력 직전에 짧은 상기 문구를 추가하였다. 각 스타일마다 적절한 응답 길이를 할당하고 규칙보다 스타일 준수를 우선시하도록 명시하자 모델의 역할 수행 능력이 현저히 향상되었다. 이 사례는 수치 데이터의 유형을 명확히 정의하고 코드 수준에서 검증하며, 중요한 지시사항은 입력과 가까운 위치에 배치해야 함을 보여준다.