[개발 인사이드] 봇 레벨 올리기

내 봇부터 사랑해야 남의 봇도 사랑할 수 있지 않을까요?

플레이어 여러분, 안녕하세요! 리그 오브 레전드의 봇을 담당하는 기술 제작 리드 다시 “Riot DashiJador” 루딩턴이라고 합니다! 저는 이제 한물간 플래티넘 플레이어이지만, 로테이션 게임 모드와 더불어 앞으로는 AI 상대 대전에서 만날 가능성이 가장 큽니다! 이번 블로그 글에는 현재 봇 팀에서 기술 리드를 맡고 주로 야밤에 무작위 총력전을 플레이하는 에밋 “Riot Sentanel” 님이 함께합니다. 오늘 봇에 관한 이야기를 드릴 수 있어서 정말 신납니다!

리그 오브 레전드 봇의 역사

봇은 리그 오브 레전드의 초창기부터 있었으며 챔피언에게 소규모 업데이트를 적용하는 수준으로 관리하다가 2014년에 기존 봇을 전부 다시 썼습니다. 재작업 후에도 원래 있던 봇만 지원했습니다. 당시 플레이할 수 있던 챔피언 중 작은 일부의 봇만 있었죠. 게다가 상단 공격로 챔피언이 2명이었고 정글은 없었습니다. 오늘날의 일반적인 팀 구성을 대표한다고는 보기 어렵습니다.

봇에 재투자

지난 몇 달 동안 봇에 대한 투자에 새로운 활기를 불어넣었습니다. 그동안 투자를 완전히 멈춘 적은 없지만, 오늘뿐만 아니라 내일의 리그 오브 레전드에도 바람직한 접근법을 찾아야 했습니다.

플레이어 피드백과 불만을 살펴보니 기본 리그 오브 레전드와 비슷하지만, 부담 없이 즐기면서 연습하고 실력을 전반적으로 향상할 수 있으며 특히 게임에 입문한 친구와 함께 플레이하기에 적합한 경험을 바라는 목소리가 많았습니다.

이러한 바람에 크게 공감합니다. 제가 2010년에 리그 오브 레전드에 입문할 당시 실력을 키우기란 어려웠습니다. 친구나 저나 서로 함께 플레이하고 싶었지만, PvP를 플레이하기에는 역부족이었습니다. 17레벨까지 봇을 상대로 플레이한 후 준비되었다고 생각했지만, PvP 전장에 들어서니 봇이 사람과 얼마나 다른지 깨달았습니다. 저보다 훨씬 잘하는 친구들과 함께 성장하고 배울 수 있는 공간을 원했습니다.

저만 그런 게 아님을 압니다. 내부 통계에 따르면 갓 입문한 플레이어가 PvP 대기열에 입장하기 전에 AI 상대 대전을 얼마나 많이 플레이하든 승리할 가능성이 올라가지 않습니다. 그래서 부담이 덜하고 다양한 실력대를 포괄하는 환경에서 리그 오브 레전드의 전략과 협동을 즐길 수 있는 공간을 마련하고 싶었습니다.

봇 업데이트는 봇을 새로 만드는 작업인 동시에 리그 오브 레전드의 기능을 확장하며 기획자에게 각종 새로운 도구를 제공하고 배움의 환경에서 실력을 키울 수 있게 도와주는 방법이라고 봅니다(PvP 게임을 플레이할 때 상단 공격로에서 다리우스와 아무무를 상대할 가능성은 크지 않으니까요).

점점 늘어나는 개발자와 플레이어의 바람에 부응하고자 새로운 확장 가능 봇 체계를 만들어서 리그 오브 레전드에서 플레이어가 게임을 배우고 성장하는 데 도움을 주는 동시에 기획자에게 새로운 콘텐츠를 만드는 도구 모음을 제공하고자 봇 팀을 조직했습니다... 멋진 일이죠!

목표

이번 프로젝트의 주목표는 아래와 같습니다.

일반적인 리그 오브 레전드 게임플레이 경험을 더 잘 반영하는 업그레이드된 봇 경험을 선사하기

  • 정글링과 갱킹을 하고 드래곤을 확보하는 봇!
  • 봇이 더 전략적으로 협동할 수 있게 하는 팀 인공지능
  • 메타의 변화에 반응하는 봇
mumu_jg_bot.gif
정글링을 하며 캠프를 사냥하고 강타를 사용하는 아무무 봇입니다!

PvP보다 압박감이 덜한 더 나은 방법으로 리그 오브 레전드를 배우고 실력을 키울 수 있게 하기

  • 더 많은 챔피언의 봇
  • 팀원과 조직적으로 행동하는 봇
  • 실력 향상을 원하는 플레이어의 실력에 맞춰주는 봇

확대, 유지보수, 확장 가능한 봇 기술을 개발해서 기획자가 흥미로운 장치를 토대로 플레이어에게 즐거움을 선사할 수 있게 하기

  • 새로운 게임 모드
  • 수정 가능한 봇 행동
  • 빠른 재작업을 돕는 도구

재미있는 기술적 세부 사항

기술적인 내용을 지나치게 깊이 다루지는 않고자 하지만, 접근법에 관한 이야기를 조금 하고자 합니다. 봇 기반 체계를 만들 때 장기적으로 지속 및 확장 가능한 봇을 만들려면 어떡해야 할지 결정하는 일이 큰 어려움이었습니다. 모든 챔피언(밀리오까지 163명)을 아우르는 봇 논리를 만들려면 어떠한 방식으로 처리해야 할까요? 게다가 소환사의 협곡이 아닌 게임 모드에서는 이러한 챔피언을 어떻게 지원해야 할까요? 무작위 총력전 봇을 만들려면 163개의 맞춤 봇을 추가로 만들어야 할까요? U.R.F. 모드용으로 또 163개를 만들어야 할까요? 궁극기 주문서용은요? 향후 출시할 모드는 또 어떻게 해야 할까요?

현재는 봇 의사결정 논리를 위한 행동 트리를 새로 개발하는 방식으로 접근하고 있습니다. 행동 트리는 현재 어떠한 행동이 필요한지 평가하는 의사결정 절차이며 우선순위가 가장 높은 행동이 먼저 평가됩니다. 이러한 행동은 보통 하위 트리로 세분화합니다. 리그 오브 레전드의 행동 트리에는 전투, 탈출, 이동, 정글링, 아이템 구매, 스킬 레벨 업 등을 다루는 하위 트리가 있습니다.

행동 트리의 예시 (참고로 봇 인공지능에 실제로 사용하는 트리는 아닙니다)

단기를 넘어 중장기적으로는 행동 트리 기술을 개발해서 과거에 불가능했던 미래 기회 분야도 열고자 합니다. 플레이어를 훈련하는 봇, 실력을 다음 단계로 향상할 수 있게 도와주는 기계 학습 봇, PvE 경험용으로 빠르게 코딩 가능한 봇 등을 구현하는 데 매우 유용한 기반을 마련하는 셈이죠!

하지만 플레이어 여러분을 고려하지 않고 이러한 입문용 봇을 만들고 싶지는 않습니다. 그러니 2023년 계획을 말씀드리도록 하겠습니다!

새로운 베타 봇

우선 이러한 방향에 대해 양질의 피드백을 받고 싶습니다! 처음에는 봇이 상당히 단순하고 실력 있는 플레이어가 보기에는 별 볼 일 없는 듯할 수 있지만, 그래서 우선 PBE 테스트 서버 적용을 목표로 하고 있습니다. 입문 과정이 쉬워지기를 바라므로 리그 오브 레전드 경험이 전무한 친구를 초대해주시면 감사하겠습니다!

베타 봇은 올해 후반에 2주 동안 PBE 테스트 서버에서 만나볼 수 있으니 확인해보시고 레딧(영문 링크)에서 피드백을 보내주시기 바랍니다!

또한 목표 달성에 기여하고자 백엔드에서 많은 일을 하고 있으니 봇의 어떤 부분이 마음에 들고 어떠한 부분을 개선할 수 있다고 생각하시는지 이해하고 싶습니다. 그래야 플레이어 여러분뿐만 아니라 개발자에게도 도움을 주는 봇을 제대로 만들 수 있습니다!

이번에 봇이 등장할 때 플레이해볼 수 없어도 걱정하지 마세요! 더 나은 플레이어 경험을 목표로 정식 출시 전에 몇 번 더 피드백을 받아서 재작업을 진행하고 봇을 다듬고자 합니다.

장기적 관점

장기적으로는 다양한 팀과 엔지니어도 친애하는 플레이어 여러분에게 새로운 경험을 선사하는 데 사용할 수 있는 확장 가능한 기술을 만들고자 합니다.

기반 체계와 도구 모음을 완성하면 많은 기회가 생길 테니 봇 활용법과 관련해 좋은 아이디어가 있으면 알려주시기 바랍니다!

언제나 감사하며 올해 후반에 PBE 테스트 서버에서 인사드리겠습니다.

그럼 협곡에서 뵙겠습니다!