brunch

You can make anything
by writing

C.S.Lewis

by Jieon Mar 03. 2022

첫 오브젝트는 롤의 승패와 무슨 연관이 있을까

[코드스테이츠 PMB 10기] 데이터 시각화 : 구글 빅쿼리

첫 오브젝트 싸움은
롤의 승패에서 얼마나 중요할까







1.  롤과 API


이전 글에서 LoL의 상점에서의 유저 데이터 플로우를 예상해본 바가 있다. 


위 포스팅에서 나는 API 이라는 개념을 들고 왔는데, API란 Application Programming Interface의 약자로, 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. 


API와 API 서버 개념 잡기 (출처. 메일리)


쉽게 말하면, A라는 프로그램에서 B라는 프로그램에 접근하고 싶을 때 API를 통해서 연결시켜주는 것이다.

그리고 라이엇에서 제공하는 API는 각 게임별, 소환사별 데이터를 얻을 수 있도록, 게임을 했을 때 저장되는 모든 정보들에 접근할 수 있는 권한을 준다.


그래서 이번에는 해당 API 키를 활용하여 여러 사람들이 정리해놓은 데이터를 이용하여 데이터 시각화를 해보고, 가설에 대한 검증 역시 해볼 예정이다.


원래는 가설을 롤의 유저들이 구매하는 스킨의 캐릭터성을 이용하여 어떤 특성을 가진 스킨이 더 많은 구매가 이뤄질 지를 검증해보고 싶었지만, 아쉽게도 해당 데이터셋은 나오지 않아 다른 가설을 검증해보려 한다.


바로, '첫 오브젝트를 먹는 것은 롤의 승패에 어떠한 영향을 끼칠까' 이다.




롤과 오브젝트


그렇다면 본격적인 분석에 앞서, 롤에 존재하는 게임의 승기를 가져올 수 있거나, 판을 뒤엎을 수 있는 오브젝트를 먼저 간략하게 설명하고자 한다.


롤에는 다양한 '정글 몬스터'가 서식한다. 여기서의 정글 몬스터는 총 10가지로, 핏빛 칼날부리, 어스름 늑대, 고대 돌거북, 심술 두꺼비, 푸른 파수꾼, 붉은 덩굴 정령, 드래곤, 전령, 바론이라는 명칭을 가지고 있다.


하지만 이 중에서도 게임에 큰 영향을 주는 존재라고 한다면 여러 드래곤, 전령, 바론 3가지를 꼽을 수 있다.


여러 드래곤



롤에는 총 6가지의 드래곤이 있다. 원소를 표방한 바람, 화염, 물, 대지 속성의 드래곤, 아케인 이후로 도입된 마법공학 드래곤 (삭제된 화학공학 드래곤)과 4마리의 드래곤을 처치했을 때 나오는 장로 드래곤이 해당된다.


원소 종류에 따라 고유의 추가 효과를 부여하는 강력한 몬스터로, 한쪽 팀이 용을 4마리 처치했을 때 4번재 용의 속성을 가지고, 그리고 장로 드래곤을 처치하면 장로 버프로 인하여 체력이 낮은 상대팀을 즉시 처형시킬 수도 있다.




협곡의 전령



협곡의 전령은 게임 초반 스노우볼링의 원동력으로 평가받을 수 있다. 이는, 전령이 하나의 라인을 미는데 매우 큰 역할을 할 수 있기 때문이다. 


좀 더 상세히 설명하자면, 전령을 처치했을 때 나오는 전령의 눈을 하나의 공격로 (바텀, 미드, 탑)에 소환하게 되면, 전령은 해당 라인을 민 후 포탑이나 억제기, 넥서스에 돌진하여 자신의 현재 체력의 66%를 소모해 레벨에 따라 구조물에 2000~2750의 높은 고정피해를 입힌다.


특히 상대방 미드라인의 1차 포탑이 철거되면 드래곤을 먹을 때나 바론을 먹을 때 쉽게 시야 장악을 할 수 있어 게임에 더 유리한 고점을 가져올 수 있다.




바론 (내셔남작)



바론은 정글에서 가장 강력한 몬스터로, 바론을 처치하면 처치한 팀 전체의 공격력 및 주문력이 증가되고, 귀환 강화 효과를 얻으며, 해당 챔피언 근처의 미니언이 강력해지기도 한다.


그렇게 되면 라인을 밀기에도 매우 좋으며, 스플릿이 가능하기도 하다.






2. 어떤 데이터를 볼까?




무료 데이터의 제공, Kaggle



Kaggle은 공개 데이터를 바탕으로 데이터 분석을 연습해보고 서로 공유하는 포럼 형식의 사이트이다. 해당 사이트에서는 양질의 raw dataset을 무료로 제공할 뿐만 아니라 해당 dataset을 이용하여 competitions을 열기도 한다.


이 사이트에서 분석하고자 하는 데이터셋은 다음과 같다. (참고)


해당 데이터셋은 2020년에 있었던 챌린저, 그랜드마스터, 마스터들의 108,000개의 데이터를 모은 것으로, 오브젝트 데이터, 팀원 데이터, 그리고 게임의 지속시간에 대해서 큰 카테고리를 설정했다고 한다.


하지만 이 중, 내가 볼 데이터는 match_winner_data_version1.csv 로 승리팀들이 firstblood, firstTower 등 여러 항목들에서 했는지 안 했는지를 기준으로 True와 False를 나눈 데이터이다.


이 csv 데이터셋을 python으로 열어 전처리과정을 할 수도 있겠지만, 해당 과정은 매우 큰 수고를 요구할 뿐더러 데일리과제로는 끝내기 힘들기도 하고 이번에 새롭게 학습한 데이터분석 도구 역시 사용해보고 싶어, 구글 빅쿼리를 사용해보고자 하였다.


python을 사용하여 데이터 분석을 해본 적은 다음과 같은 사례가 있다. ( *서울의 강남과 강북의 부의 격차 인사이트 얻기)



먼저, 다운로드한 winner 데이터에는 어떠한 column들이 있는 지를 더 구체적으로 확인하기 위해 엑셀 스프레드시트로 먼저 확인하고자 하였다.



확인해보니 다음과 같은 columns을 얻을 수 있었다.

teamld (레드팀 또는 블루팀), win (승리), firstBlood (선취점), firstTower (첫 포탑 철거), firstInhibitor (첫 억제기), firstBaron (첫 바론),  firstDragon (첫 드래곤), firstRiftHerald (첫 전령), towerKills (타워 부순 횟수),  inhibitorKills (억제기 부순 횟수), baronKills (바론 죽인 횟수), dragonKills (드래곤 죽인 횟수), vilemawKills (썩은 아귀 죽인 횟수), riftHeraldKills (전령 죽인 횟수), dominionVictoryScore, bans (밴픽), gameId (게임 아이디)


이 중에서 게임의 승패에 중요하다고 생각되는 요소들을 뽑아 3가지의 가설을 세워보고 검증해보도록 하겠다.






3. 데이터의 시각화 및 가설 검증





데이터 시각화 도구 



시각화를 하는데에는 앞서 이야기를 했듯 python 도 사용을 할 수 있지만, 이번에는 구글 스프레드시트를 빅쿼리와 연결하여 빅쿼리에서의 쿼리구문을 입력하고 해당 내용을 구글 스튜디오로 시각화하는 방안을 선택해보기로 하였다.


위의 두 도구는 한번도 사용해본 적이 없는 도구라 하는 데에는 조금 애를 먹고 말았다. 하지만 데이터를 일단 연결하면 이후에 SQL만 작성하면 되니 연결 한 후에는 다행히 쉽게 할 수 있었다.





가설 1

첫 드래곤을 먹었을 때, 좀 더 승률이 높을 것이다.


앞서 말하였듯, 드래곤은 먹으면 먹을 수록 중첩되는 효과가 존재하기 때문에 승패를 가르는데 매우 중요하다. 그렇다면 맨 첫 드래곤을 먹었을 때는 어떨까?


첫 드래곤을 먹었다는 것은 같은 편의 바텀과 미드라인이 주도권을 잡고 있다는 소리이므로 전체적으로 상대방을 압박하고 있다고 말할 수 있다. 그러므로 첫 드래곤을 먹었다는 것은 어쩌면 승리를 하는 데에도 유의미한 결과를 일으킬 수 있는 것 아닐까?


firstDragon 데이터 시각화


데이터를 시각화해보았을 때, 55.9%로 가설이 맞음을 확인할 수 있었다. 


하지만 이 부분에서 아쉬운 점은 드래곤을 4마리를 먹어 드래곤의 영혼을 획득했을 때, 또는 장로 드래곤을 먹었을 때의 데이터는 부족해서 해당 부분으로는 검증을 못했다는 점이다.


첫 드래곤은 물론 중요하겠지만, 만일 처음에는 사려야 하고 중후반부터 강해지는 성장형 챔피언들이었다면 첫 드래곤을 그냥 주고 성장을 하는데 집중했을 수도 있다. 그리고 이런 경우에는 무난히 컸다면 이후에 드래곤의 영혼을 챙길 수도 있을 것이다.



가설 2

첫 전령을 먹었을 때, 좀 더 승률이 높을 것이다.


그렇다면 협곡의 전령은 어떨까?

전령은 스노우볼을 굴리기에 가장 적절한 오브젝트이다. 실제로 프로들의 경기를 보면 전령이 처음 나오는 시기에 모든 라인의 라이너들이 전령 싸움을 위해 라인을 밀어놓고 올라올 정도로 중요하게 취급되고 있다.


특히, 이 데이터는 챌린저, 그랜드마스터, 마스터 티어의 데이터이므로 프로게이머들의 전술과도 유사하게 활동할 것이라 예측할 수 있다.


그러므로 첫 전령을 먹었다면, 무난하게 스노우볼을 굴려서 승리를 했을 것이라 가설을 세울 수 있다.


firstRiftHerald 데이터 시각화


데이터 결과를 보았을 때도, true가 55.1%로 승기를 가져오는 데 영향이 있다고 말할 수 있다. 전령은 한번 먹었을 때 운이 좋으면 2차 포탑까지도 부술 수 있기 때문에 이제껏 보아왔던 상으로도 옳은 결과값이라 할 수 있다.




가설 3

첫 바론을 먹었을 때, 좀 더 승률이 높을 것이다.


바론은 언제나 쉽게 주는 법 없이 5대5 한타를 일으키는 정글 몬스터이다. 그만큼 강력 귀환, 아군 미니언의 강화, 공격력 및 주문력을 향상시켜주는 바론 버프가 중요하기 때문이다.


하지만 놀랍게도 데이터 상에서는 전혀 다른 결과가 나왔다.


firstBaron 데이터 시각화


바로 false가 58.4%로 첫 바론을 먹지 않고서도 이긴 경우가 많았던 것이다.



그렇다면 왜 이 가설이 틀렸을까? 이에 먼저 첫 바론이 아닌, 바론을 먹은 횟수를 살펴보았다.



그러자 먹지 않은 횟수가 총 542개로 제일 많았다. 그렇다면 첫 바론을 먹었을 때는 횟수가 0인 것을 제외했을 때의 game 결과이었을 것이다.


그렇다면 아마 이 가설이 틀린 이유는 아마 데이터셋이 너무 부족하지 않았나 싶은 생각이 들었다. 왜냐하면 4,666,235건의 게임데이터를 기반으로 하면 전혀 다른 결과가 나오기 때문이다.



OP.GG에서 4,666,235건의 게임데이터를 기반으로 승률을 작성하였을 때는, 바론을 처치했을 때 승률이 81.710%나 올라갔다. 즉, 바론을 처치한다는 것은 게임의 승패를 가져오는데 장로를 처치하는 것과 유사하게 매우 큰 고점을 가져온다는 뜻이다.







4. 빅쿼리를 사용해보니..


이번에는 winner data로만 빅쿼리를 이용하여 분석해보았다. 왜냐하면 빅쿼리라는 도구를 처음 사용해보기도 하고, 처음 데이터를 연결시킬 때 지속적으로 오류가 생겨 loser data를 또 연결하기에는 시간이 부족할 것 같았기 때문이다.


하지만 winner data로만 해보니 데이터 모수가 너무 작아서 유의미한 인사이트를 뽑아낼 수 있었는 지 의문이 들기도 하였다. 그래서 승률을 분석해보기 위해서는 winner과 loset 둘 다 연결하고, SQL에서 where 구문까지 사용해야 가능하지 않을까 싶었다.


하지만 내가 좋아하는 게임 데이터를 활용하여 어떤 유의미한 인사이트를 뽑아내보려 한 것 자체가 매우 즐거운 일이었다. 그러므로 Kaggle의 다른 데이터셋도 이용하여 또 유의미한 인사이틀 얻을 수 있도록 노력해봐야 겠다.




참고자료.


매거진의 이전글 린 분석: 소상공인을 위한 주문 결제 솔루션, 패스오더
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari