[개발 인사이드] 리그 오브 레전드에서 부정행위 없애기
이 글을 읽는 분들은 리그 오브 레전드 이용이 금지되지 않은 분들일 가능성이 높습니다. 그리고 대부분 아직 저희를 만나본 적이 없겠죠. 저희가 상대하는 부정행위를 저지르는 플레이어들처럼, 저희도 보이지 않는 곳에서 일해야만 할 때가 종종 있습니다. 저희의 감지 방법을 숨기고 부정행위 제공자들에게 필요 이상의 관심이 쏠리지 않게 하기 위해 숨죽이고 있어야 하죠. 그늘에 숨어 지내다 보니 프로그래밍 실력이 나아졌고 공정하게 싸우지 않는 이들로부터 저희를 보호할 수도 있었습니다.
어쨌거나 저희는 플레이어 여러분의 아군인 부정행위 방지 팀입니다. 리그 오브 레전드의 시즌 막바지를 맞아 오늘 저희를 가장 애먹이는 부정행위에 대한 통계를 공유하고, 저희에게 있어 최고의 게임은 공정한 게임이라는 것을 다시 한번 플레이어 여러분께 상기시켜 드리고자 합니다. 본 공지의 그래프 및 통계는 모두 글로벌 수치이며, 각 지역별로 수치나 현황 등은 상이할 수 있는 점 참고 부탁드립니다.
부정행위 방지 팀이란?
부정행위 방지 팀은 일반적으로 게임 내에서 공정한 경쟁에 영향을 주는 문제로부터 게임을 보호하고, 부당한 특혜를 줄 수 있는 메커니즘, 애플리케이션, 전략을 주의 깊게 살핍니다. 이와 같은 메커니즘, 애플리케이션, 전략이 의도한 게임 설계(말자하를 선택한다는 등)인지 아니면 용인될 수 없는 행동(아름다운 골드 테두리를 얻기 위해 대리 게임으로 랭크를 올리는 것 같은 행위 등)인지도 저희가 판단하고 있습니다.
불건전한 행동에 대해서는 몇 가지 대처법이 있지만, 주로 세 가지로 분류합니다. 바로, 예방, 감지, 억제(Prevention, Detection, Deterrence)인데요, 저희는 이 세 가지를 통틀어 ‘빛나는 정의의 삼위일체™’라고 부르고 있습니다.
- 예방: 예방은 플레이어가 애초에 부정행위를 저지르지 않게 하는 방안을 시행하거나 장애물을 설치하는 것입니다.
- 감지: 예방할 수 없는 것은 잡아냅니다. 감지 방법에는 클라이언트 메모리 통제권을 놓고 벌어지는 끊임 없이 진화하는 싸움에서부터 플레이어의 기량을 기반으로 훈련된 첨단 머신러닝 모델까지 실로 다양한 방법이 있습니다.
- 억제: 철퇴를 휘둘러야 할 때도 있습니다. 계정 이용 정지 등 제재와 같은 징계 조치는 억제 효과를 낼 수 있습니다.
부정행위 방지 팀이 있는 이유는 뭔가요?
부정행위를 하는 플레이어가 있기 때문이죠. 사람들은 이기는 걸 좋아합니다. 더 정확히 말하자면, 승리한 후 다른 이들이 자신을 우러러보는 것을 좋아하죠. 부정행위를 제공하는 이들은 실력과 연관된 지위를 이용해 금전적인 이득이나 인터넷에서 인정을 얻고자 합니다. 저희의 목표는 이러한 행위로 이득을 얻지 못하도록 하고 경쟁력 유지를 위해 결코 악성 프로그램을 사용할 필요가 없도록 하는 것입니다.
이해하기 쉽게 말하자면, 리그 오브 레전드가 진정한 스포츠로서 받아들여지기 위해서는 모든 이들이 동일한 규칙에 따라 경쟁해야 합니다. 트로피를 단순히 돈으로 산다면, 그 트로피의 값어치는 그 트로피가 만들어진 브론즈 주형보다 못할 것입니다.
부정행위 방지 팀에는 어떤 사람들이 있나요?
라이엇 게임즈 부정행위 방지 팀은 해커로 구성되어 있으며, 트렌치 코트, 모니터로 도배한 벽, openGL의 사각형들을 쉴새 없이 렌더링하는 화면으로 중무장하고 있습니다. 팀에는 실전 경험 확보를 위해 과거 부정행위 프로그램 개발 경력이 있는 이들, 멋진 그래프를 만들어주는 데이터 전문가들 그리고 1~3명의 분석가도 있습니다.
2018년에는 어떤 일을 했나요?
저희는 최근에 중국 선전에 방문해 텐센트에서 있었던 부정행위 방지 그랜드마스터 행사에서 연수를 받았습니다. 중국의 부정행위 대응은 지옥 난이도에서 진행되는데, 저희는 힘을 합쳐 애초에 부정행위를 제공하는 사람들을 파악하기 위한 새로운 방법을 개발하고 있습니다. 대리 게임 단속에서부터 더욱 찾아내기 힘든 감지 시스템에 이르기까지, 저희는 경쟁을 벌이는 게임에 대해 플레이어들이 기대하는 글로벌 기준을 만들어나가고 있습니다.
리그 오브 레전드에서의 부정행위
이제 안내방송은 그만하고 본론으로 들어가 보겠습니다.
게임을 하다 부정행위로 인해 제재를 받는 분들을 보면 제재 이유에는 대개 자동 입력 프로그램 사용, 계정 공유, 봇 프로그램 사용 이렇게 세 가지가 있습니다.
자동 입력 프로그램 사용
리그 오브 레전드는 서버가 관장하는 게임이며 모든 클라이언트는 게임의 상태를 관리하는 인스턴스에 접속합니다. 그렇기 때문에 일반적으로 볼 수 있는 부정행위는 챔피언이 무적 상태가 되거나 맵핵을 사용하는 것 등 얼토당토않은 부정행위(패치를 통해 없앨 수 있는)가 아니라, 자동으로 챔피언을 조작하는 행위입니다. MOBA 장르의 게임에서 가장 큰 영향을 끼치는 부정행위라고 할 수 있는 ‘자동 입력 프로그램 사용’은 외부 프로그램이 플레이어 대신 명령을 입력하거나 적에게 대처할 수 있는 스킬을 사용함으로써 부당하면서도 사람으로서는 불가능한 게임플레이를 가능하게 해주는 것을 의미합니다. 이러한 프로그램에는 조준 보정 프로그램, 재사용 대기시간 추적기, 스킬 자동 연계 프로그램 등이 있습니다.
“스페이스 바에 다이아몬드 테두리를 달아주고 싶은 사람은 아무도 없습니다.”
이런 부정행위가 행해지는 일반적인 과정은 약간 복잡합니다. 먼저 해커가 특수 소프트웨어와 자신의 역량으로 게임 클라이언트를 분해합니다. 중요한 게임 기능이 있는 곳을 파악하고 이 기능을 참조하는 코드를 만들죠. 마지막으로 이 코드를 게임 내에 투입해 다른 개발자들이 자동 스크립트나 특정 챔피언 맞춤형 로직을 짤 수 있게 해주는 API를 노출시킵니다. ‘좋은 게 좋은 거지’라는 생각에 이런 부정행위를 하는 사람들은 게임에서 이 스크립트를 실행해 ‘카이팅’ 실력을 친구들에게 손쉽게 자랑할 수 있죠.
지난 몇 년간 리그 오브 레전드에서 자동 입력 프로그램이 얼마나 많이 사용되었는지 알아봅시다.
![그래프 – 부정행위가 발생한 랭크 게임 (글로벌 기준) X축: 날짜, Y축: 게임 비율](https://nexus.leagueoflegends.com/wp-content/uploads/2018/10/scripting_games_percent_s9aygmcmlm38vdgik3r8.jpg)
그래프 – 부정행위가 발생한 랭크 게임 (글로벌 기준) X축: 날짜, Y축: 게임 비율
녹색 선 그래프는 전 세계에서 진행되는 랭크 게임 중 자동 입력 프로그램 사용자의 일별 비율을 나타냅니다. 시간이 갈수록 줄어들고 있으며 통계학적으로는 매우 좋은 그래프라고 볼 수 있죠. 같은 기간에 시행된 제재를 보여주는 정의로운 금색으로 된 그래프도 표시되어 있습니다. 해당 그래프는 글로벌 통계이며 한국의 경우 더 낮은 수치를 보이고 있습니다.
알아 둘만 한 기타 통계
- 지난 3년간 자동 입력 프로그램 사용으로 인해 전 세계에서 700만 개가 넘는 계정의 이용이 정지되었고 그중 500만 개는 중국 텐센트에서 관리하고 있습니다. 한국 서버의 경우, 일반 플레이어가 헛된 희망을 안고 자동 입력 프로그램을 사용하는 플레이어를 만날 확률은 하늘의 별 따기 정도로 아주 희박합니다.
- 2018년에 자동 입력 프로그램 사용으로 이용 정지 조치된 전 세계의 플레이어 중 프로그램 사용을 중단한 플레이어는 불과 9%입니다. 다만, 한국의 경우 자동 입력 프로그램 사용이 적발될 경우 동일명의 계정이 모두 제재되므로 한번 적발이 되면 이후 다시 해당 프로그램을 사용하는 것이 불가능합니다.
- 물론 이미 부정행위를 저지른 사람들은 기어코 다시 부정행위를 저지르고야 말겠지만, 이용 정지 조치만으로 자동 입력 프로그램 사용률을 최저 수준으로 낮추었기 때문에 이제 저희는 처벌뿐만 아니라 예방 측면으로도 싸움을 확장해나가고 있습니다.
“그런데 mirageofpenguins 님, 자동 입력 프로그램이 실제로 도움이 되기는 하나요? 친구가 물어보래서요.”
질문 잘하셨네요. 이에 대해 자세히 알아보죠.
![그래프 – 자동 입력 프로그램 승률 (글로벌 기준) X축: 날짜, Y축: 승리한 게임 비율](https://nexus.leagueoflegends.com/wp-content/uploads/2018/10/scripting_winrate_t3aqsy5uc5ig6gcsc3go.jpg)
그래프 – 자동 입력 프로그램 승률 (글로벌 기준) X축: 날짜, Y축: 승리한 게임 비율
무작위 샘플의 평균 승률은 50%가 되어야 합니다. 그렇기 때문에 자동 입력 프로그램이 아직 조금이나마 도움이 되고 있긴 하죠. 하지만 자동 입력 프로그램의 성능이 떨어진 이유를 살펴보면 재미있는 점이 있습니다.
- 자동 입력 프로그램은 원거리 딜러나 카시오페아처럼 좋은 피지컬이 필요한 챔피언을 플레이할 때 가장 유용합니다. 주문을 완벽한 타이밍에 시전하는 것의 효용성을 떨어뜨리기 위해 저희는 일부 스킬 난사를 의도적으로 ‘용인’했습니다. (이블린의 Q 스킬 연타 등) 이렇게 해서 인간이 기계와 경쟁하는 것을 도울 수 있었습니다.
- 자동 입력 프로그램 개발자들은 감지를 피하기 위해 자신들이 만든 자동화된 움직임에 추가적인 지연을 자발적으로 추가했습니다. 그로 인해 프로그램은 더 인간적인 모습을 보여줄 수밖에 없게 되었죠.
- 자동 입력 프로그램 제공자를 끊임없이 단속함으로써 해당 프로그램들의 플랫폼과 코드베이스가 계속해서 바뀔 수밖에 없었습니다. 차가 잘 달리게 하려는데 자꾸 누가 바퀴 나사를 훔쳐 간다고 생각해보세요.
더딘 작업이었지만, 이제 기계들의 반란은 적어도 수십 년 뒤로 미뤄졌다고 자신 있게 말씀드릴 수 있습니다.
계정 공유
때로는 실버에서 벗어나기가 조금은 힘겨울 때가 있습니다. 그럴 때면 양심이 굳건한 사람이 아니고서야 누군가 이 일을 대신해 줬으면 하는 생각이 들 수 있습니다. ‘트로피 구입’, ‘테두리 쇼핑’이라는 애칭으로 불리는 대리 게임(계정 공유 행위 중 하나)에는 시즌 말 보상이 큰 동기로 작용합니다. 실제로 대리 게임으로 랭크를 끌어올리는 전 세계 플레이어의 경우, 68%가 골드 V까지만 랭크를 올리고 있습니다. 또한, 실력을 뽐내고 싶어 하는 욕심도 동기가 됩니다.
“친구한테 내가 실버라고 말하는 게 어때서요. 좋은 친구라면 외면하지 않을 거예요.”
이건 직접 경험에서 말씀드리는 건데, 골드 III 랭크 게임에서 다이아몬드 II 플레이어를 만나면 큰 좌절감에 휩싸이게 됩니다. 그보다 더한 경우에는 플래티넘 V 승급전에서 계정 공유로 랭크를 끌어 올린, 사람이긴 한지 의심되는 플레이어를 아군으로 만날 수도 있죠. 최고의 게임은 비슷한 수준의 실력을 지닌 플레이어들끼리 즐기는 게임입니다. 그래서 저희는 특정 플레이어가 랭크 차이가 심한 플레이어를 대신해 그 플레이어의 랭크 순위를 올릴 목적으로 게임을 플레이하는 모든 경우를 비롯해 일반 게임, AI게임이라도 타인의 계정으로 게임을 할 경우 제재 대상으로 보고 있습니다.
지금까지는 계정 공유를 예방하기가 힘들었기 때문에, 저희는 주로 가장 명확하게 위반을 저지르는 경우를 감지하는 데 힘써 왔습니다. 이에 실시간으로 계정 공유에 대한 제재를 가하는 등 최선의 노력을 다하고 있습니다. 모든 계정 공유 건을 잡아낼 수는 없지만, 점점 더 감지에 능숙해지고 있습니다.
![그래프 – 랭크별로 대리 게임을 한 계정 수 (일별, 글로벌 기준) X축: 날짜, Y축: 대리 게임을 진행한 계정 수](https://nexus.leagueoflegends.com/wp-content/uploads/2018/10/boosting_leagues_j1wpprvhs1e7v4vdnnt1.jpg)
그래프 – 랭크별로 대리 게임을 한 계정 수 (일별, 글로벌 기준) X축: 날짜, Y축: 대리 게임을 진행한 계정 수
가장 눈에 띄는 랭크 상승은 연구가 충분히 진행된 다음의 두 가지 현상과 연관되어 있습니다.
- “내 배치 게임 좀 대신해주라.”
- “야, 나 승리의 그레이브즈 좀 받게 해줘.”
계정 공유 제재의 목적은 이 행위를 근절하는 것이지만, 이 목적을 달성하기 위해서는 갈 길이 멉니다. 계정 공유로 랭크를 올리는 플레이어의 계정을 정지시키는 것은 해결책의 일부일 뿐입니다.
봇 프로그램 사용
레벨 올리기 용도로 봇 프로그램을 사용하는 경우가 있습니다. 이 봇들은 게임 세계에서 큰 골칫거리입니다. 리그 오브 레전드는 무료로 플레이할 수 있는 게임이기 때문에 계정을 생성하는 데 별다른 어려움이 없습니다. 야스오가 주 챔피언인 플레이어들은 연습용 부계정이 필요할 테니까요. 레벨을 30까지 올리는 데에는 시간과 노력이 들기 때문에 봇 프로그램이 악용되고 있는 상황입니다.
“창고에 스마트 냉장고를 왜 그렇게 쌓아두고 있죠?”
그래서 저희는 이 문제 해결을 위해 노력하고 있습니다. 저희 팀에는 박사 과정을 수료한 팀원들이 있는데, 이들은 전동 식기세척기와 인간을 구별해내는 기계 모델을 만드는 일에 매진하고 있습니다. 플레이어 여러분께서 신고를 해주시면 이들이 더 나아질 수 있으니 적에게서 기계 냄새가 난다 싶으면 지체 없이 신고 버튼을 눌러주세요.
이러한 부정행위로 인해 아쉽게도 무작위 총력전에 대해 감시가 이루어지고 있습니다. 게임 모드 중에 봇 설계가 가장 쉽고 경험치를 얻을 수 있는 가장 짧은 게임 모드이기 때문이죠. 그냥 미드로 밀고 나가서 닥치는 대로 스킬을 쓰고 챔피언 캡슐을 챙기면 되니까요.
![그래프 – 월별 무작위 총력전 봇 프로그램 사용 신고 현황 (지역별 수치) X축: 날짜, Y축: 봇 프로그램 신고 횟수 초록: 오세아니아 노랑: 북미 주황: 서유럽 빨강: 북유럽](https://nexus.leagueoflegends.com/wp-content/uploads/2018/10/botting_player_reports_96jyp0rc7ypessmsnp6w.jpg)
그래프 – 월별 무작위 총력전 봇 프로그램 사용 신고 현황 (지역별 수치) X축: 날짜, Y축: 봇 프로그램 신고 횟수 초록: 오세아니아 노랑: 북미 주황: 서유럽 빨강: 북유럽
위 그래프에서 한국은 빠져있습니다. 봇 프로그램 사용자를 줄이기 위해 노력하고 있으며, 최근에는 새로운 탐지 방법을 적용하여 대규모 제재를 준비하고 있습니다. 이번 제재를 통해 봇 프로그램 사용자가 확연히 줄 것이라 예상하고 있지만, 새로운 프로그램과 우회 방법으로 전에 없었던 봇 프로그램이 등장할 수는 있습니다. 우리는 이에 대해 언제나 대비하여 플레이어 여러분이 최적의 게임 경험을 할 수 있도록 노력할 것입니다.
앞으로
위에서 모든 부정행위를 말씀드린 건 아닙니다. 부정행위를 하는 사람들은 언제나 새로운 부정행위 방법을 찾겠죠. 저희 측에서는 할 일이 끊기지 않는다는 뜻이기도 합니다. 공정하게 경쟁할 수 있는 게임을 즐길 플레이어 여러분의 권리를 지키기 위해 저희는 최선을 다할 것이며, 부정행위에 가담하는 사람들을 전향시키기 위해서라면 무엇이든 할 각오가 되어 있습니다.
“공정하게 플레이하고 싶지 않다면 리그 오브 레전드 커뮤니티에서 환영받지 못할 것입니다.”
단순한 원칙이죠.
플레이어 여러분의 댓글을 살펴볼 테니 질문이 있으시면 남겨주시고, 부정행위 대응 관련 글을 더 보고 싶으시다면 알려주세요!