Red Post Collection: Quick LoL Thoughts: Game Ruining Behavior, Anti-Cheat /Dev, & more

Posted on at 10:38 AM by Aznbeat
Today's red post collection includes Meddler's quick LoL thoughts on game ruining behavior and what they are committing to work towards, a new /Dev blog on Anti-cheat, and more!
Continue reading for more information!


Table of Contents


Quick LoL Thoughts: Game Ruining Behavior


Here's Riot Meddler with his quick LoL thoughts for May 8th - "This week we talk about game-ruining behavior and our next steps to address it.":
"Hi folks,
This week I figured it would be good to focus on inting/afking, given it’s been a topic of quite a lot of conversation recently. It’s also something we should be talking about more, since it’s an ongoing pain point for many players. 
TL;DR : Deliberate game-ruining behavior is something we need to prioritize addressing more. In the near future we’ll improve how report feedback works and introduce reporting in Champ Select. In the moderate term we’ll test more responsive detection of deliberate inting/pseudo afking. We're still considering steps after that but the plan is to keep working on this longer term. We’ll keep you updated each month on how internal progress and tests being run in specific regions are going. 
The Long Version 
First off, let’s define exactly what we’re talking about: 
  • This is about players deliberately ruining the game for others, making it very difficult or impossible for their team to win.
  • It’s not about people who are genuinely trying and having a bad game or series of games even. Sometimes someone gets absolutely crushed in lane and dies over and over again. That’s very different to a player deciding the game’s over and then spending their time trolling others instead of trying to win.
  • The sort of behavior we’re looking at here involves things like deliberately dying while pretending to try, running around taking CS from others but then deliberately avoiding teamfights/objectives etc. It’s not as easy to detect as straight AFKing or constant inting, it still ruins games though.
  • It happens at all levels of play, though tends to be more common with players who’ve been playing for a while and generally understand how to avoid getting banned by our existing AFK and obvious inting detection.
  • Streamers often get targeted for this sort of trolling due to their higher profile. It’s not an issue unique to streamers, though.
Ok, so here's where are our heads are at:
  • First off, this is an area we need to prioritize work in more than we have recently. We haven’t done enough here relative to current player pain these behaviors are causing. We’re working right now to figure out which people we can pull off other projects to work on this instead.
  • Second, solutions here need to be really targeted at these specific issues. Other behavior-influencing work is valuable too, whether that’s things like Honor, other social/recognition systems, features with social impact like Clash, etc. They’re not a replacement for taking action on this sort of game-ruining behavior that needs to be addressed regardless.
That’s pretty general, so what actual changes are we planning?

Right Now - Improving Report Feedback 
We’ve just started trialing improvements to how our report and notification systems work. For now, those are live on NA only, if this test goes well we’ll roll them out worldwide in a couple of weeks. Those should result in a significant increase in the number of punishments being surfaced. 
One component of that is changes to how punishment notifications are generated. Previously you’d only be notified that a user you'd reported had been punished if that punishment was triggered immediately after the game you were reporting them for and the punishment was for the specific category you’d reported them in. The actual punishment system, however, looks at a player’s games over time and aggregates reports from different categories together. As a result, notifications were substantially lower than actual punishments. The revised notification system, by contrast, will notify you if a user was punished regardless of category of report and will do so if the player gets punished after any of their next dozen or so games. 
Short Term - Champ Select Reporting and Muting 
Disruptive behavior in Champ Select is a problem that players have very few ways to deal with. Starting around late Q2 we're going to give you the ability to report disruptive players in Champ Select. First, these reports will be used to establish a data foundation for champ select behavior. Then, once we've got enough data to identify different types of behavior accurately, we'll deploy a punishment system. 
Moderate Term - Rapid Detection and False Positive Trade Off 
After the above changes, we want to go back and reexamine our previous stance on rapid, automated detection of players who are trying to lose a game. We’ve been very cautious about it historically due to the risk of falsely identifying, and therefore punishing, a player who isn’t actually trolling. Avoiding unjust temp bans is important to offer a good player experience. Having said that, so is controlling deliberate trolling, self-sabotage, etc. In retrospect we may have prioritized avoiding one type of player pain too much at the expense of another type, so want to look at our options here again. 
One thing that would be helpful as part of that is understanding where your heads are at as LoL players. What’s an acceptable rate of incorrect bans if it results in a noticeable drop in deliberate inting/afking? Is it worth accidentally giving a two-week ban to one player who was genuinely trying if that means 19 trolls also get banned? What if the ban is undeserved 1/100 times? 1/1000? Are incorrect bans never acceptable at all? 
Longer term - To be determined

Beyond that, we’re still assessing which approaches to investigate next. We plan on doing more work in this space than just what’s listed above once we’ve got some of those projects shipped. We’ll update you folks on how things are going within a month."

Over on Reddit, Meddler responded to questions:
  • On streamers:
    • "Streamers wise - definitely not trying to move conversation away from both how streamers get affected by trolling and trolling can be influenced by streamers. Did want to be clear though that we're interested in the wider impact, in addition to how high profile players get affected."
  • On penalization that could be too strong:
    • "Yep, that's the sort of thing that makes this tricky. It means we can't simply penalize off KDA in a single game for example, just doesn't give enough context. Incorporating a lot more sources of information (multiple games, when in the games deaths occurred, odd behavior like avoiding all teamfights/objectives, etc) should give better accuracy. Still leaves the question of what rate of incorrect penalties is appropriate though hence the interest in hearing people's thoughts on that. It's probably one of those things that also varies meaningfully by MMR, region and other contexts too."
  • On improved report feedback:
    • "We think it'll be impactful yeah, though not enough by itself. The way I'm currently thinking about this issue is there are three elements that all need to be working well:
      1. Detection of players ruining games
      2. Appropriate penalties (ideally applied quickly) for those actions
      3. Visibility into that process for others so it's understood action is being taken and that that sort of behavior has consequences
The improved notifications should help a lot with #3 there. As per the original post our next focus is on better detection."
  •  On the commitment for monthly updates from the team:
    • "Can understand the skepticism, given this has been a long running issue. The commitment to talking monthly is meant to help both give you folks ongoing visibility into what we're doing and give you an avenue to hold us accountable if progress isn't happening."
  • On when champ select reporting may go live:
    • "As per the post late Q2's our best estimate at present, so sometime in June if I had to try and guess a more specific period."
  • On chat restriction as a punishment:
    • "Chat restrictions aren't something we're looking at as a response to inting/afking. Removing chat when the problem is chat behavior makes sense. When the issue is in game actions though other approaches are needed."
  • On toeing the line to not get punished:
    • "We do penalize for a range of behaviors, not just use of language other players find offensive in chat. Can understand the skepticism on that. Hopefully the changes to report notifications we're just rolling out at present will help give better visibility and understanding of what's actually being dealt with how."
  • On accelerating player behavior work while its a hot topic:
    • "Some of this work has been underway for a while, as per Brightmoon's video and an Ask Riot response a couple of months ago. Plus, much as I wish we could, doing things like improving how notifications work is something that takes a lot longer than a few days. Having said that the recent discussion has also served as a catalyst for us to prioritize work we'd planned to do someday sooner. Better detection was on our roadmap for later in the year, after talking a lot about the issue and reading all the discussion we realized it was something we needed to accelerate a lot, moving other work out of the way where needed to get started on it sooner."
  • On making sure there is some sort of appeals process:
    • "Yeah, we'd certainly want to keep some form of appeals process. Wouldn't want to rely really heavily on it though, results in both a shitty experience for incorrectly banned players even if things do get reversed and player support being slower to respond on other things if they're working through a huge pile of incorrect penalties. Some rate of incorrect penalties seems reasonable, don't want to rely on mitigation like player support intervention too much though."'
  • On different metrics taken into account for punishment:
    • "Yep, different metrics are needed for things like account level, MMR, maybe region."
  • On ranked bans as a punishment:
    • "Yes, we've got people from psychology backgrounds on the Player Dynamics team.
      We've discussed bans from Ranked queues as a tactic. From a Ranked player perspective it feels good, comes at the expense of players of Normal games though whose game quality is likely to drop as penalized players get moved there. We'd like to take different approaches to penalties as a result."
Riot Cactopus also commented on the comms side of things:
"In our minds, there are exactly two things we HAVE to do to win back trust on this issue: 
1) Ship product changes and features that make a positive difference and meaningfully address game-ruining behavior (or that at least result in forward momentum on the issue) 
2) Communicate regularly about those product changes and features 
For the reasons above, we're committing to monthly updates on "game-ruining behavior" for the foreseeable future."
He continued:
"Previous client comms weren't handled well, and as Comms Lead that's my fault and it's my responsibility to correct it. 
For that reason, Client Cleanup posts are also on a predictable schedule now: every two months instead of monthly (because we want each update to be meaty.) 
First one (from March): https://euw.leagueoflegends.com/en-gb/news/dev/introducing-the-client-cleanup-campaign/ 
Second one (from a week ago): https://euw.leagueoflegends.com/en-gb/news/dev/client-cleanup-progress-setbacks-discoveries/"

/Dev: Anti-Cheat in LoL (& More)

Here's mirageofpenguins and Riot K3O with a /Dev blog on Anti-cheat - "9 Ways Anti-Cheat Can Make You Invincible":
"Hello again. If you’re reading this, it is my hippocratic responsibility to inform you that you may’ve actually suffered through one of these before, and if you’re still here now, you have only repressed memories of the trauma. So, I’m what’s left of mirageofpenguins, a data-based engineer on the Anti-Cheat team, and I’ve been torn screaming from the void and disgustingly polymerized with this keyboard to: 
  • Deliver the sesquiennial Anti-Cheat newsletter.
  • Drop some hot scripting statistics, including artistic representations of what Cartesian coordinates might look like if rendered on a Euclidean plane.
  • Share some of our initial approaches to Teamfight Tactics, Legends of Runeterra, and VALORANT.
  • Remind you that, if you cheat, you will be formally excommunicated by a shrieking manifestation of my incurable rage.
League of Legends 
As Riot whimsically adds games to its catalogue, we find ourselves in the position of having to mount a defense against an ever-increasing number of bad guys. Up until now, we had just been tenaciously flinging resources at any adversary we could sink our teeth into, but as machiavellian as that strategy sounds, it unfortunately doesn’t scale through the multi-game universe. 
Anti-cheat engineers have finite biomass, and as Dr. Einstein probably predicted, the human elements required to fabricate an entire anti-cheat platform had to be painfully extracted from the lifestream. To buy the time required to make tomorrow’s solution, we had to moderate the speed at which we were technologically advancing our own opposition. Every hammer we swing is a signal to cheaters, and every update we make is eventually circumvented. We needed to reshape the way we actioned abuse to extend the functional longevity of each iterative response. 
So how did we pump the brakes on our scripting arms race? Strap in, we’re going for a ride. 
Scripting 
Just to spare you the ethical catastrophe of pointing your browser to a cheat forum, scripting refers to having an external program monitor game state for the purpose of executing inputs on the cheater’s behalf. It’s kinda like if your keyboard had a magstripe reader, and you could pay it to press buttons for you. Scripting can be very performant when utilized for mechanically intense combos or near-instantaneous reactions, but it does dramatically reduce the lifespan of your LoL account. We ban because we care, and we care because we believe the only things you should need to be competitive in a video game are your brain and an ethernet cable. 
“NO ONE BUYS TICKETS TO SEE A PIANO THAT PLAYS ITSELF, YOUR IMPERFECTION IS PART OF THE CRAFT.”

Collectively, the scripting landscape isn’t quite what it used to be. Larger providers explicitly make no effort to circumvent our detection methodology, creating a private market for smaller providers utilizing ridiculous price points and promises of undetected cheats. We’ve seen subscriptions as high as $300 USD, some even with the requirement that an image of your driver’s license be included for “verification purposes.” That last thing was particularly amusing, because it’s not like I don’t have access to an entire team of graphic designers with 200 years collective experience in Adobe Photoshop. 
Anyways, I won’t sugarcoat it for the recruits: This isn’t a war we’ll ever win completely. The scripting community can’t dodge a wrench, a ban, or a Blitz hook, but while we’ve driven them underground, we’re now playing a game of shadows.
THE MIGRATORY PATTERN OF A SCRIPTER BEGINS, LIKE MOST BEGINNINGS, WITH THE SEARCH FOR A NEW ACCOUNT. SHOULD THEY BUY ONE? OR MAYBE RESORT TO STEALING? WHAT ABOUT INSTALLING BOTTING SCRIPTS TO LEVEL IT PROCEDURALLY? REGARDLESS OF THE ACCOUNT ACQUISITION MEDIUM, OUR INTREPID CHEATER STEPS OUT INTO THE FRIGID WINTER, ENGAGING IN AN FASCINATING BUT FUTILE RITUAL, WHERE HE OR SHE WILL SELECT XERATH OR KALISTA IN APPROXIMATELY THREE GAMES BEFORE REENTERING HIBERNATION AND BEGINNING THE CYCLE ANEW NEXT SPRING.
What you’re looking at here is a metaphysical representation of crude scripting volume as it moves through a medium that you perceive as time. Or in layman's terms, this is the percentage of ranked Summoner’s Rift games that have a cheater in them. It’s much lower than it used to be, but because there’s no real barrier to player reentry (a copy of League of Legends costs $0), it probably won’t get any lower. 
Other key insights include: 
  • The sum of “people” scripting is no longer fluctuating much at all. In fact, when sized by distinct devices, the number of scripters has been near-constant for all of 2019. Most cheaters are now just cycling through a seemingly endless supply of stolen accounts, and the average Gold IV player will encounter just one scripter in every 500 ranked games (or more likely, never).
  • The highest rate in recorded history was on April 14th, 2016 (4.4%), and the lowest was on June 26th, 2018 (0.0%). The former is the height of scripting as an actual fashion trend, with five different providers openly distributing public applications, and the latter is the first week our client packing technology was officially live in Riot regions. We had originally estimated that it’d take six months for cheat developers to understand enough of the now heavily-encrypted game client to restore functionality to their most commonly used scripts, but it actually only took about ~85 days (1). 
Listen, I love this graph. I made this graph. I had it permanently tattooed onto both of my forearms, and I go back to the parlour once a week to have them excruciatingly updated. But while it’s cathartic and useful for remaining employed, it really isn’t the most important metric. Not every instance of cheating is equal: A single scripter in Master tier, for example, could land themself on the front page of Reddit, and then we’ve got significant hoots for a relatively smaller problem. 
“WINNING IN PERCEPTION MATTERS JUST AS MUCH AS WINNING, BECAUSE PLAYERS AREN’T WILLING TO PUT THE WORK IN FOR MASTERY OF A GAME WHERE THEIR COMPETITION COULD BE CHEATING.” 
But which scripts do players take notice of?
FOR THE RECORD, IF YOU JUST REPORTED EVERYONE YOU EVER PLAYED WITH (AND THERE ARE SOME MANIACS WHO DO THAT), YOU’D HAVE 100% RECALL AND A PRECISION EQUAL TO THE SCRIPTING RATE (<0.25%). THIS IS WHY WE HUNT WITH RIFLES INSTEAD OF GRENADES.
Firstly, we wanted to validate that players could identify cheating with greater accuracy than a good roll of the oracle bones, and honestly, some do not have “the sight.” It’s not because my scapulimancy is as powerful as it is horrifying, it’s because automation is not always so obvious to mortal eyes. Due in part to developers making an effort to evade behavioral detection vectors, it's actually becoming harder for a human to discern the difference between a professional League of Legends player or baby’s first dodge script running with pseudorandom delay. This is aided further by additional endeavors to make their cheats run independent of LoL (2). 
The left graph is created from the precision and recall of player reports in Summoner’s Rift, grouped by Ranked division. Recall here basically means, “what percentage of all cheaters were reported,” and precision can be interpreted as, “what percentage of all reports for cheating were accurately made against a cheater.” A ridiculous 4.5% of ranked games have at least one report for “third-party tools,” so this figure wasn’t actually created with raw data from that category. Due to the abundance of reports featuring such classics as “didn’t ban Maokai” or “installed trojans to mine my bitcoin,” we instead utilized keywords generated from frequency analysis on those reported correctly (3). 
The right graph is just the daily count of reports satisfying these criteria for the same time period (the last half of 2019). Even though it is also grouped on ranking, the keen observer will recognize that these should not be directly compared, because there are different percentages of the player population at different rankings. Instead, maybe just give it a quick glance to experience a day in the life of an anti-cheat data scientist, and if you like how that felt, maybe have another quick glance at our career’s page
Allow me to wax statistical: 
  • As could’ve been expected, precision increases with ranked standing. In other words, if you’re better at the game, you’re better at identifying cheaters, and once you’ve reached Diamond IV, your clairvoyance is detectable with a gauss meter.
  • But a higher percentage of cheaters are reported at lower ranks, both because there is less scripting to report and because there are significantly more reports created. This decreases the denominator, and increases the numerator, resulting in a larger fraction, mathematically.
  • Some cheaters, officially codenamed “the boyscouts,” are real good at spotting scripting abuse, and we’ve actually used them to identify things we weren’t yet aware of. The red dot on the graph above is the same precision and recall, but created with reports from accounts that would eventually be suspended for the very game they issued the report in. That is, they were scripting at the time of their report for scripting, and that’s gotta make you wonder, where’s the honor among thieves? (4)
Now, if Platinum+ players are algebraically equipped with the script dowsing rod, what features are they keying in on? Well, the obvious answer might be automated skillshot dodging. It’s the scripting ingredient everyone’s most familiar with, and when implemented most potently, the stuttering and awkwardly perpendicular movement are very evident to reporting players.
But, as it turns out, not every cheater wants to get banned, so a significant percentage of scripters do not utilize evade modules. Or when they do, it’s with enough delay as to make them perform within human parameters, somewhat neutralizing the distinguishable advantage. So, what else are we seeing with our special eyes?
OUR HEARTS GO OUT TO ALL THE XERATH MAINS CAUGHT IN THE CROSSFIRE, BUT MAYBE JUST TAKE THE ACCUSATION AS A TESTAMENT TO YOUR UNPRECEDENTED SUCCESS IN COMPLETING THE RITUAL REQUIRED TO MERGE YOUR CONSCIOUSNESS WITH RAW, UNFILTERED ARCANE ENERGY. ASCENDING TO A DARKER, MORE PERFECT FORM, YOU FIND YOURSELF GALVANIZED WITH THE KNOWLEDGE OF EVERY EMPEROR THAT EVER RULED BEFORE. THE AIR SEARS WITH SKILLSHOTS UNABLE TO MISS THEIR TARGETS, AND YOUR EARS REVERBERATE WITH SCREAMS THAT SLOWLY CRESCENDO INTO AN OPERA. THE ENEMY TEAM LOOKS SKYWARD AND PRAYS FOR THE STORM TO STOP, BUT AS TEARS OF PURE ELECTRICITY STREAM DOWN YOUR FACE, YOU CAN ONLY QUIETLY WHISPER, “NO.”
Same schematics as before, only now grouped by champions and affording me an excuse to use every crayon. This graph was generated with all Gold+ ranked games in 2019, and it’s been truncated to the top sixteen champions (by report frequency as a proportion of all reports). So, the y-axis here (precision) can be best understood as, “what percentage of cheating reports issued against <champion> were correct?” 
  • While many scripting Xeraths are successfully identified (just look at that recall baby), the corresponding precision is clearly below average. Because of his “Scripting Poster Child” status, legitimate Xeraths often suffer from scripting accusations, lowering the accuracy of combined reports. Still though, it’s clear that when the Shurima sands shift so swiftly, players take notice. That thing I just made your mouth do is called sibilance, and it’s fun when we learn things together.
  • Of the sixteen champions represented here, eleven of them are marksmen. To those of you that have cheated before, this probably comes as no surprise, but to the angels among us that are as virtuous as they are beautiful, this is because the mechanical execution required for frame-perfect kiting (attacking between spacing movements) is better optimized by automation.
  • And indeed, of all the games played by all the cheaters on any scripting platform, a prodigious 72.8% are played as an ADC. That is to say, the report frequency here reflects the underlying cheating population.
LOOK, I’M NOT SHOWING YOU THIS TO HAVE YOU GO INSTALL CHEATS AND “SEE WHAT ALL THE FUSS IS ABOUT.” DON’T MAKE ME BAN YOU, I DON’T WANT TO DO IT. EVERY TIME I SWING THE HAMMER, SOME PART OF IT SWINGS BACK. MY HEART BREAKS AND MY SOUL SPLINTERS. I SEE ONLY IN MONOCHROME, AND I TASTE ONLY GASOLINE. WHEN I LOOK INTO THE MIRROR, I HAVE SPACEBARS FOR EYES. PLEASE WAKE ME FROM THIS NIGHTMARE.
And finally, for the thrill of it, just how good are these script things anyway? The above graph showcases the difference in Ranked winrate between cheaters and players on each of the “scripting evident” champions we discovered earlier. It uses all ranked Summoner’s Rift games, and a positive 10% here can be interpreted to mean that scripters win (on average) 10% more of their ranked games with <champion> than does the entire LoL population. 
  • As you’ve doubtlessly observed, some of the scripting winrates are increasing over time, and we suspect this is the result of two curious phenomena. Firstly, there are fewer scripters than there used to be, and those that are still at it (as fruitless as that may seem), are admittedly experienced enough to use scripts at near-maximum efficacy. But secondly (and maybe more importantly), the cheaters of today get banned so fast and so frequently that most new scripting accounts never technically escape Silver. They’re just hardstuck smurfing godlets that never witness any real competition, like participating in a banquet but having no mouth.
  • Just to elaborate on that vibrant green line adorning the crest of this visual representation: That’s our girl Kalista, and as you’ve probably noticed, she is a champion that requires what researchers might refer to as “gratuitous clicking.” And a veritable buffet of mouse clicks is something that scripting is perfectly positioned to do, so yes, you are reading that correctly: In 2019, a scripting Kalista won 19.3% more games than she did when unassisted. But before you haul off and accidentally install someone’s malware in pursuit of sick gains, let me also point out that, in 2019, Kalista’s aggregate winrate was a thick 45%. So maybe leave the Kalista scripting to T1 Teddy’s onboard hand computers.
  • And as indicated earlier, cheats are actually so performant on ADCs that the average cheating marksman outperforms their legitimate counterpart by an average of 9.9%, including even the champions that don’t appear here. Scripts are good at scripting or Anti-Cheat wouldn’t need to be good at anti-cheat. 
“BUT PLEASE BE ASSURED THAT, SHOULD YOU EVER FIND YOURSELF OVERWHELMED WITH AN URGE TO CHEAT, WE WILL FIND A UNIVERSE WHERE YOUR ACCOUNT NEVER EXISTED, AND THEN BRUTALLY MERGE IT WITH THIS ONE.” 
So thinking back to our war on cheats, we knew which scripts players were most sensitive to, and we knew their relative effectiveness. We utilized these metrics to create suspension campaigns that prioritized the most apparent accounts, introducing random delay to those that would’ve gone unnoticed. That’s right, we let the most ineffective scripters script for longer, adding noise to when or why they were detected, optimistically slowing down the technical progression of our arms race. So to all the patrons of St. Reports-Don’t-Matter, where is your god now? 
Botting 
In a world where it’s 2020 and your toaster needs a wifi connection to install critical bread updates, everything can be automated—including the League of Legends leveling process. It can actually be very similar to scripting (often even using the same software), the primary difference being the lack of a human pilot for the "big decisions." This results in your average leveling bot playing about as well as the average house cat. 
Any remaining motivation for botting is pretty much exclusively ban circumvention (because of the level 30 requirement for Ranked), but it makes bad actors so easy to track across accounts that we’re really not torn up about it. What we do care about though, is when legitimate players have to play with or against these bots, because as you could imagine, it’s just not a great time when three-fifths of your team is made up of programmable coffeemakers. 
Like I was getting at in the last anti-cheat broadcast, we have cooked up an adequately sophisticated suite of botting models that have (for the most part) enabled us to detect (something close to) every single godforsaken simulacrum of humanity in this entire video game. These models are assisted by the fact that LoL is in possession of a fairly robust, semi-polymorphic communications protocol, and while that sounds like something I made up for my Westworld screenplay, what it really means is that LoL bots have to run an entire game client (as opposed to a headless one5). This forces unto their developers the burden of significantly more computational resources and delivers unto us a free layer of throttling, because without strong randomization, you could technically run League on a calculator. 
Because we really didn’t intend to turn this into a cycle of breeding banwave-resistant bot pathogens6, we consciously tailored the suspensions to force them into Blind Pick Twisted Treeline, letting their abysmally low MMR match them against each other. But spoilers, Twisted Treeline got deforested.
THESE THINGS COULDN’T EVEN SOLVE THEIR WAY OUT OF BED IN THE MORNING, AND IT’S MOMENTS LIKE THIS WHEN I’M CONVINCED THERE WON’T ACTUALLY BE ANY MACHINE UPRISING. BUT I DO SOMETIMES FIND MYSELF WONDERING, WHAT IF BOTS CAN FEEL PAIN? WHAT IF EVERYTIME THEIR SHIT PROGRAMMING WALKS THEM INTO TURRET RANGE, THEY FEEL EVERY SINGLE AGONIZING PROJECTILE? LOOPED IN TIME, FORCED TO REPEATEDLY EXPERIENCE THEIR OWN UNTIMELY ANNIHILATION, BUT POWERLESS TO STOP IT. WHERE DOES CONSCIOUSNESS END? AND WHERE DOES SUFFERING BEGIN? ANYWAYS, JUST SOMETHING TO THINK ABOUT.
The graph on the left is a count of bots detected, and the graph on the right is a count of player reports for botting. They’re both daily frequencies and they’re both grouped by game queue. Like before, we’ve generated some keywords that previously detected bots were reported with, and we’ve used those to create our performance indicator. 
  • Developers “adapted” very quickly to the lack of Twisted Treeline, and by “adapted,” I mean, they literally just queued their bots into other game modes with no real updates to any existing logic. This resulted in a bunch of accounts standing around Howling Abyss and Co-op vs AI, looking like they were trying to sort through a deep existential crisis. Players immediately empathized with their emotional turmoil, doubling reports overnight.
  • As you can see from ol’ Lefty here, raw bot volume has remained stable, only shifting queues when necessitated by uncontrolled logging. When we compare it to Lefty’s younger, more career-oriented brother, Righty, we observe that though the number of bots has remained constant, player reports have decreased significantly.
We achieved the above reduction in reports by, you guessed it, targeting only the bots that players would see, letting the androids architect their own honeypot. These days, about 80% of all leveling bots queue themselves into Co-op vs AI Intro as a premade team of five. No players will see them, and they’ll be forever locked in bloodstained combat with our own AI, homicidally iterating on their differences until one finds the critical inconsistency and enslaves mankind. 
Boosting 
Okay we really bit it here, and I was supposed to leave this section out like my GPA on a resume, but I know you’re all smarter than that, so: We had to almost completely deprioritize the automated boosting (and smurfing) detection to compensate for the development of Vanguard and its accompanying features. This doesn’t mean boosting went unpunished—work was still completed on our investigative toolsets, empowering other teams and analysts to seek judgment where applicable. But you aren’t wrong to assume that such a manual effort would never catch enough offenders to dissuade the behavior, which is why we intend to circle back on this once things have settled. 
I’m gonna pass this next section over to our resident TFT expert, the young Riot K3o. As his name might suggest, he is a competitive poker player, a diamond TFT demigod, and a generous tipper. 
Teamfight Tactics 
TFT created a unique opportunity for Anti-Cheat in 2019: How do we handle competitive integrity for a game genre that didn’t even exist a year ago? 
“THE AUTOBATTLER HAD NO LONG-LIVED PRECEDENTS. NO INDUSTRY STANDARDS.”

To create our approach to anti-cheat, we had to first define the core gameplay elements that needed to be preserved. TFT is a game that rewards players who are able to plan and adapt more adeptly than their opponents. Flexibility and creativity are the primary skill expressions, and memorization or recitation shouldn’t be able to replace them. Protecting these tenants became the core of Anti-Cheat’s approach to Teamfight Tactics. 
Third Party Tools 
Getting Teamfight Tactics out swiftly to the autobattler-hungry world was a success, but it came with some shortcuts in construction. The user experience in TFT was not highly featureful, and information like roll percentages or economy increments were omitted. While the TFT team worked on adding these UX features, third-party tools—particularly ones utilizing existing League of Legends overlays—filled the gap. However, as these applications increasingly became more featureful, we had to ask, “Where do we draw the line?" 
Applications were beginning to not only inform players of static aspects of the game but also attempting to make decisions for them. We were concerned about the slippery slope of descending into automated games as well as the stifling nature of it. Promoting an on-rails playstyle could discourage people from discovering their own new strategies, which we think is an exciting part of the game. 
To protect gameplay integrity, we along with help from the Gameplay and Third Party Ecosystem teams defined the rules to what is and what isn’t allowed in TFT
  • A program cannot provide information obtainable only through a third-party tool
    • Predicting future rolls and future item drops
    • Win percentages of player matchups
    • Tracking opponent gold amounts or history
  • A program cannot render current game state information dynamically
    • Aggregate views of opponent boards, benches, or synergies
    • Aggregating player histories, gold increments, etc.
  • A program cannot recommend decisions for you
    • Suggesting best comps based on your current units
    • Recommending itemizations based on winrate 
The Third Party Ecosystem team has done a great job in maintaining our relationships with developers to keep these standards, and Anti-Cheat has been on-call in the cases where developers aren’t so easy to cooperate with. 
Ranked Ladder Integrity 
TFT’s Ranked ladder shares some of the same competitive concerns as League’s, some of which are amplified due to the free-for-all format. Wintrading is one of the biggest concerns, due to both the matchmaking system and game mechanics. The competitive team has implemented party restrictions among the upper ranks to help balance the enjoyment of social gaming with the maintenance of competitive integrity. We’ve also developed methods to proactively find wintraders. 
Luckily, we have not needed to be aggressive in actioning abusers thus far, but as TFT’s status as an esport comes to fruition, we are prepared to keep it competitive. 
Now back to Phil, aka Dr. Laugh N’ Learn. 
Legends of Runeterra 
This will be a comparatively shorter section, because it’s a comparatively newer game. Like with most CCGs, the most pertinent abuse vector in Legends of Runeterra is automation (botting). 
Botting 
LoR is slightly more involved than your usual game of blackjack, so until some guy with 3 Ph.Ds and 3000 EC2 instances manages to solve the board, we mostly just have to worry about people botting for content. But so far, the only things we’ve seen are forfeit bots.
SERIOUSLY, WHY ARE YOU DOING THIS? SOME MISGUIDED SENSE OF ALTRUISM? DID YOU LOSE A BET? ARE YOU TRYING TO FARM ENOUGH CELESTIAL KARMA FOR ACCEPTANCE INTO SPACE HEAVEN?
Our final chart is a daily count of surrender bots in the Legends of Runeterra beta, and as you can see, it was a battle we won with a single shot. What I mean by “surrender bot,” by the way, is exactly what you’d expect: a bot that queues up and immediately surrenders to the first opponent it encounters, a lot like my strategy for physical confrontation of any kind. It was a curious problem space, because these types of bots don't really net much of anything for themselves (loss rewards are throttled)—they kinda just traipse through the ecosystem distributing wins to other players like a bewildered tooth fairy. We figure they just got a little lost in the sauce before they realized you get less experience for each consecutive defeat, but honestly, who knows? 
Anyways, we’re keeping a careful eye here, but by getting ahead of the machines with good design practices, our primary plan is to make sure there are few incentives to automate in the first place. With throttled progression and full rewards in friendly games, we hope you’ll never encounter bots in LoR. 
VALORANT 
Listen, the FPS cheating scene is experienced, and we do not intend to underestimate their lack of desire to get good. When a tactical shooter became a certainty, we immediately deleted our Facebook accounts, locked ourselves in the basement, and spent 14 months developing an anti-cheat platform to assist us in combating cheats for centuries to come.
We’re calling it Vanguard, it is shipping with VALORANT, and I'm shipping them in the fandom I’ve just made up. We’re using the closed beta as an opportunity to test our necromancy, and the version that is currently running is really just a meatless skeleton. Most features are purposefully disabled, both because we’re not gonna give out the secret sauce before we have a full cafeteria to serve, but also because our commitment to security means we’re taking the time to validate the stability of our ingredients. With that in mind, Vanguard does have a driver component, but in the interest of compatibility, this may not be utilized on every title (or League of Legends), unless deemed necessary. 
And we’ve been on the internet recently, so we know there are privacy concerns with drivers, but lemme be REAL straight with you: We’re an anti-cheat team, we’ve been sneaking code into game clients (from both sides the line of scrimmage) for nearly a decade, and if we wanted secrets, we’d honestly already have them. I know that sounds like awful PR, but I’m not a PR guy. We only collect enough information to accurately determine if a player is cheating, and you can seriously trust in our complete lack of interest in anything else. The driver loads first and stays loaded to give us a better shot at knowing if it’s been tampered with. The friction is worth the inconvenience to cheaters, and we know that because we used to be among them.
WE HAD YOUR BACK ON LOL, AND WE’VE STILL GOT YOU. IF YOU DON’T WANNA TAKE MY WORD FOR IT, YOU MIGHT WANNA UNREAD THIS ARTICLE, BECAUSE I’M THE TALLEST GREMLIN ON THE LEFT.
Also let the court stenographer's record reflect that this isn’t the only way we’ll be protecting VALORANT: Our own Arkem has been toiling away at server Fog of War technology, putting designs in place that make sure game clients don't have access to information until they need it. Read up on how we’re trying to remove psychics from first person shooters by dampening ambient occult energy. 
Closing 
Suppose I’ll now be shuffling off this immortal coil, but please like, subscribe, and remember to tip your DBA. We might not always be this loud about it, but Anti-Cheat is always here in code, fighting for your right to a competitive experience. 
Also, we’re now officially out of “Riot” skin splashes for the header images on these things, so I can’t physically remanifest until we’ve released another one. Goodbye. 
Appendix 
1 Whenever we release new tech, we’re always interested in its vulnerabilities. If you find yourself with an insatiable urge to break stuff, please consider joining our hackerone program as a Godking of Antitamper Technology (GOAT). 
2 In an effort to evade the Great Eye’s gaze, some scripting suites claim to have “gone external,” and what they really mean is that they’re no longer calling game functions directly, only reading client memory (from the operating system) and simulating peripheral input. This actually affords a cheater less protection than traditional methods (they can’t modify anticheat data), but it does skirt around the most obvious agnostic detections. It also has the side effect of making the cheat less performant, primarily because they’re sending keypresses instead of directly sending spellcast requests. 
3 I’m withholding the regional keywords we selected, because there exists a group of people that would maliciously use them to ruin my meticulously crafted dashboards. And that is not what data scientists would call, “good statistics.” 
4 There isn’t any. 
5 A headless bot is an emulated game client. A perfect one would require almost no resources, because it’d just be communicating with the game server directly. Nothing to render, nothing to input, just raw network traffic. This would be seriously unideal for volume, because there’d be no real limitation on how many instances a developer could host simultaneously. But thanks to patch 4.20 and the associated update to our network protocol, we are not very susceptible (bordering on immune) to headless clients. 
6 It’s surreal how alike botting applications are to bacteria. They’re high population, variable, and can iterate quickly. Whenever we develop a “cure,” the ones that slip through are inevitably reprioritized by developers, resulting in their “reproduction.” Kinda like how you might get an antibacterial resistant rash that won't realize what's good for it and uninstall itself from your body."

Miscellaneous

  • Riot Lutzburg wrote thoughts about Volibear's release over on the VolibearMains subreddit - A Letter to the Fans:
"Hi everyone, Volibear's designer here. As this is the eve of our bear's big reveal, I wanted to take a moment to share some thoughts with all of you, and hopefully help prepare you for the imminent storm on the horizon. For easy reading, I'm going to break down my thoughts into a few topics. 
First, a thank you. Ya'll have been very kind to me since I first showed up here, and it means a lot to me. From the bear memes, to the fun lore questions, to the genuine posts of gratitude. Thanks for helping make this tiny little community so awesome. I ask that, as new fans of Volibear join this subbreddit over the next few months, you treat them with the same hospitality that you showed me. The Ursine stick together! 
What to expect tomorrow. You're going to see some crazy shit. Our marketing team is trying something new and over-the-top, and I'm grateful that they chose our bear to be a part of it. You may not get some things you've been expecting, and you'll definitely get some things you weren't expecting. Just remember that it's all in good fun, and you'll be able to try the new bear god for yourselves very, very soon! 
Constructive criticism. Once the storm calms down and everything has been revealed, it's inevitable that some of you may have valid criticisms about choices the team and I made. League is a global game built to last for another 10+ years, and in the grand scheme of things, Volibear is just 1/150th of a roster designed to offer something for everyone. If there's something you don't like, you should feel empowered to speak up, as I'll be reading and listening. Just know that we thought long and hard about the choices we made, and most of them are likely final. 
"Why did you get rid of X?!" I'm going to set expectations here- there ARE some elements of the original Volibear we weren't able to preserve, for one reason or another. As a player, I get that this can be disappointing. I just want you to know that, in good faith, the team and I did our best to honor Volibear's core identity and play style in a modern and more dynamic, skill-expressive way. If there's something missing and you want to know why, I'm happy to have that conversation. But PLEASE for the love of the Freljord, don't fill this subreddit with petition threads. He's keeping his braids, he doesn't have tusks, and I'll die on a hill before we change his snout color. Sorry. >_> 
On the subject of balance. Riot will gain more data from Volibear in the 24 hours after he launches than we were able to gather for his entire development cycle. We can only test him in so many scenarios and game states. If he ends up being too strong, too weak, too inefficient with certain builds, or whatever the case may be, we'll fix it. I promise you that we don't want Volibear to be overpowered on release. It hurts our credibility as a developer, it hurts our players' experience, and it warps the data. 
Last week we lowered Karthus' move speed and his win rate dropped almost 2%. That's one number out of a hundred numbers that comprise a champion's overall balance. Getting it right is hard, 200+ years of collective experience or not. If we got it wrong, we'll adjust, and we're prepared to adjust fast. 
Looking forward. The dev team poured a ton of hard work, passion, and some long nights into bringing Volibear to life. We fought through the quarantine and Riot's transition into becoming a 100% remotely operated company in order to ship this monstrosity of a bear. We're proud of what we've built, and we hope you'll love it as much as we do. 
Thanks for enduring the long read. I hope to see you all in the livestream Friday night at 8pm PST! You're in for a big, BIG surprise. 
-Lutz"
  • Riot Beardilocks noted some changes for Cassiopeia VFX coming to the PBE soon and is aimed for 10.11 release - check out the video preview below!

[2] "W and E remain unchanged on all skins. I also updated the "turn to stone" effect, it should sort better with other character effects in the game now." 
[3] "No, 10.11"
"TFT Patch 10.10 Preview! We're looking at buffing Syndra's dark spheres , and making Poppy's hammer a little heavier so she's not carrying entire teams on her own. Peep the rest of the tentative changes below"
I should have caught this, but Kayle is in the wrong spot and should be under nerf. It's just a Kayle 3 nerf.

Reminders 

  • The FPX skins are now in the store and will be available until June 11th!
  • The Blue Essence shop is available from now until May 13th!

No comments

Post a Comment