0. LoL 신고 dashboard 만들기 (ft.streamlit)

chaechae·2023년 4월 30일
0
post-thumbnail

(사진출처 : riot games)

RIOT API

한달 전부터 진행하고 있었던 게임데이터를 활용한 데이터분석을 하나씩 정리해보려고 합니다.
사실 많은 데이터중에 게임데이터에 관심을 갖게 된 이유는 재밌어 보여서 가 가장 큰 이유입니다ㅎㅎ.. 그리고 무엇보다 게임마다 어떤 로그들이 남는지, 어디까지 남는지 궁금했습니다. 예를들어 웹을 이용할때나 사람들이 카드를 소비할때 어디서 얼만큼 머물고 소비했는지에 대한 흔적들이 자세하게 남듯이 현실이 아닌 게임속에서 일어나는 상황들은 어떻게 기록 되고 있는지 말이죠. 이거.. 참을 수 없다!!!

그 중에서 League of legends를 고른 이유는 제가 시즌4때부터(고등학교..2학년?) 즐겨 해왔던 AOS게임중 하나 이고, 유투브나 인터넷방송에서 자주 즐겨 보는 게임이라 해당 배경지식에 익숙했습니다. 그래서 데이터를 봐도 다른 데이터보다는 접근하기 쉬울것 같았구요. 나중에 알았지만 OP.GG, your.gg 같은 통계페이지 들도 RIOT API를 통해 만들어진 서비스라는 것을 알게 되었습니다. 그렇다면.. 이 API를 가지고 나는 어떤 재미난걸 할 수 있을까 몇일간 곰곰히 생각해봤습니다.

'새로운 것' 보다 '현재'의 문제점에 접근해보자.

저는 롤은 시즌4때부터 시작한 게임이지만, 사실 어느순간부터 잘 안하게 되는 게임이 되어있었습니다. (랭겜은 안하고 칼바람 정도만 가끔하는..?) 그렇다면 내가 언제부터 랭겜을 접은걸까..? 생각해보니 게임하면서 스트레스를 받았던 순간들이 생각나더군요🙄. 그리고 그 원인 은 몇년이 지난 지금도 완벽하게는 해결되지 않았다는걸 알게 되었습니다.

원인. 고의적으로 게임을 망치는 유저들

위의 게시글 뿐만 아니라 여러 영상들을 찾아보면 여전히 고의적으로 게임을 망치는 유저들의 문제는 이어지고 있습니다. 흔히 말하는 트롤이라고 하죠. 게다가 이러한 문제는 하위랭크에서 뿐만 아니라 높은티어에서도 빈번히 일어나고 있습니다.(Faker 선수가 방송에서 말했었던 정도면 말 다했다고 봅니다.)

RIOT 에서도 매일 피드백을 하고 개선하고있는 부분이라고 생각이 드는데요. 사실 '욕설'에 관한 재제는 잘 받지만 그 외에 경기 안에서 발생하는 신고사유에 대한 처리는 아직 부족하다는 말이 많은것 같습니다. 확실히 애매한 경우도 많구요

(저도 riot api에서 얻은 데이터를 뜯어보면서 느꼈지만 제공되는 데이터만 가지고 완전히 100% 모든 상황을 파악해야 하는 게 좀 어려웠습니다.)

그래서! RIOT 에서 어떻게 리폿시스템이 이루어지는지는 자세히 모르겠지만요!
해당유저에게 제재를 줘야할지 말아야할지 판단하는데 도움이될 수 있는 시스템 이나 대시보드를 한번 만들어보면 어떨까 생각 해보았습니다.

⚙ 플레이어는 어떻게, 어떤 이유로 제재를 받나?

리그오브레전드에서 신고를 한번이라도 해보신 분이라면 알텐데요. 아래는 아주 화병이 나는 경기가 끝나고 .. 신고를 했을 때 볼 수 있는 화면입니다.

신고항목에서 볼 수 있듯이 , 저는 라이엇의 리폿 사유를 크게 2가지로 나눴습니다.

CASE① 알고리즘이 비교적 명확한 트롤링

첫 번째 case는 자동화된 분석을 이용해 비교적 명확하게 제재 할지말지 판단하는 것 같습니다.(대부분 자동화로 이뤄진다고 알 고 있습니다.) 예를들어 '욕설', '의도적으로 적에게 죽음', '핵 사용' 같은 경우입니다. 욕설은 채팅로그를 통해서 확인할 수 있고, 의도적으로 적에게 죽거나 미드로 그냥 달려서 죽는경우, 매치데이터에 남는 'KDA(Kill/Death/Assist)', '받은 피해량(타워데미지)' 같은 변수를 통해 판별하는 것 같습니다.

CASE② 알고리즘으로 판단이 좀어려운? 알고리즘의 헛점을 이용해 교묘하게 제재를 피하는 지능적인 트롤링

하지만 자동화된 분석에 의해 탐지되지 않는 요소들도 분명하게 있을겁니다. 대표적으로 본인이 정한 position(TOP, MID, JUNGLE, BOTTOM, UTILITY)에 가지 않고 팀원들을 따라다니면서 방해만하는 경우 입니다.

대표적으로 유미,누누,애니비아, 탐 켄치, 트런들 같은 챔피언을 예로 들을 수 있습니다. 하루종일 붙어서 다른 라인의 성장을 방해하거나 아군에게도 적용이 되는 넉백스킬을 이용해 이동경로를 방해하면서 즐기는 변태(?)성 트롤입니다.

이 같은 경우 KDA 관리는 잘했기 때문에 OP.GG 같은 통계사이트에서 남는 기록을 보면 나쁘지 않는 평점 으로 기록이 되어있습니다. 하루종일 팀원을 방해하는 목적으로 붙어있기 때문에 KDA 관리는 물론 '의도적으로 적에게 죽음'에 해당하지 않는거죠. '부정적인 태도'에 들어갈만한 사유이지만 위 같은 case②의 경우 사람의 판단이 좀 더 필요할지도 모릅니다. 아래는 case②에 해당하는 꽤 유명한 (?) 트롤유저의 매치기록중 일부입니다.

(출처:OP.GG)

이외에도 게임을 하다보면 다양한 상황이 일어날겁니다.. 잘하다가 갑자기 중간에 포기하거나, 게임을 하나 안하나 비슷할정도로 실력이 부족한 유저가 있는데,, 신고하기는 좀 그렇고 참 애매하게 게임을 던지는 경우들도 많을 것 같아요. 실력이 없는 경우 와 트롤을 하는경우를 어떻게 구별해야 한단말인가..!

결국 게임정지에 대한 처분을 내리는 만큼 신중해야하기 때문에 사람의 판단이 꼭 필요 할겁니다. 저는 이런 부분을 판단하는데 좀 더 개선시킬 수 있는 방법이 없을까? 생각했습니다.

또한 현재 4월기준 (5월이 다 되가는군요..) item을 무한으로 사고 팔거나, 다양한 방법으로 gold를 획득하는 스크립트 핵이 유행하고 있는데 이런 경우 , 데이터를 갖고 어떻게 확인할 수 있는지 만지작 만지작 해보려고 합니다.

시작하기 전 ..

사실 대단한 프로젝트를 했다기 보다 게임 데이터와 친해지고 제가 직접 게임회사 직원이 된것 처럼 과몰입 하게되는점에 의미가 있었던것 같습니다. api라는 것도 처음 알았고 데이터를 불러오는 것부터 해서 json 데이터를 이해하고, 뜯어보고, 준비하는데만 몇주를 보냈는지 모르겠습니다. 또 유저 대시보드를 만들다보니 streamlit 까지 공부하게 되었습니다ㅎㅎ.. 현재 70% 정도 진행중이고 차근차근 시간날때마다 정리하려고 합니다! 본격적인 내용은 다음 챕터에서 이어집니다.

profile
게임 혹은 다양한 컨텐츠가 있는 곳을 좋아합니다. 시리즈를 참고하시면 편하게 글을 보실 수 있습니다🫠

0개의 댓글