Archive

Posts Tagged ‘riot dev blog’

Dev Blog: The Riot API

November 12th, 2015

 

DEV BLOG THE RIOT API Banner

Riot’s latest dev blog explains how the API helps community members create third-party tools for League:

 

 

Developing with the Community The Riot API

BY RIOTEXLIBRIS

We recently announced the winners of our 2nd API challenge, and the dev community continues to grow. Read about the origin of the API below.

Almost two years ago, we opened the digital floodgates and sent League data rushing out into the community via a new application programming interface (API). Requests (known as “calls”) through the API went directly into our game servers, offering up terabytes of juicy data for community devs to devour. What began as a weapon against unauthorized attempts to siphon raw data from live servers (known as scraping) became a powerful collaborative tool for devs both inside and outside of Riot.

Riot’s Developer Relations team works with the League community’s creators and purveyors of third-party apps, features, and other programming wizardry. But, “It was a fight against scraping before it was about the community,” David Pritchett, Developer Relations specialist, admits. Developer Relations and Third Party Ecosystem manager J Eckert adds, “It was about protecting the player experience by protecting the platform. We needed to find a way to discourage third parties from scraping live servers and impacting server performance as a result.”

Back in 2011 and 2012, server platforms like Europe West were scaling at a rate none of our platform engineers had ever encountered before, and our old tech suffered stability issues. A few Rioters felt websites harvesting League data from our live servers could contribute to the problems we were seeing.

Sites would fake client sessions in order to scrape the servers — they needed accounts to do that. So site owners and devs created bot accounts to send thousands of requests for game-related information. Eckert says, “The biggest negative impact players could feel was on log-in queues, because as soon as we would bring the servers back up, all of the bots would try and reconnect and clog the queue.” Normally there’s spacing between real players connecting, even if it’s just milliseconds, but with bots, they all log in at the same exact instant the servers return.

In addition to the potential stability problems and the definite log-in issues, “Scraping was, at least, white noise when we were troubleshooting,” explains Eckert. “There were a lot of connections and we didn’t know which ones were hurting us, and it was impossible to tell with all of the static, so we decided to try and get rid of some of it.” Cutting down on the thousands of extra requests for game data would either make things better, or we’d at least be closer to figuring out what was happening.

Pritchett points out, “There was never a smoking gun pointing back to scraping definitively [as the cause for service instability], but we knew it was happening, and it was happening on significant scale.”

Fan art by SizoW

Developing an official API wasn’t the first thing we tried in order to cut down on the rampant automated requests for large volumes of data. Pritchett points out, “Ban waves of accounts we knew were scraping did have at least some positive impact, but it wasn’t much.”

Enter a small group of Rioters who had it in their heart to get more data out to players. “There was a side project started by a Rioter who wrote the code basically overnight, like over a weekend, and that was the very, very early inception of [the API],” says Pritchett.

Teams working to maintain service stability realized that providing sites with official data would cut down on extraneous calls. Pritchett emphasizes, “The point was that we had a bunch of players with very valuable skillsets, who were using those skillsets to help other players, even if it was in ways that we might not have been fully comfortable with. By working with them to build this API (and the community around it), we could address player feedback and concerns in ways that are meaningful and faster to market than a big dev can usually provide.”

It wasn’t perfect. Pritchett is candid about the limitations of early implementations: “When we were first shopping around the API to a smaller group of sites, we were getting a ton of reasonable questions.” They would ask if the service was as stable, as data-heavy, or as useful as the scraping methods they were using before. Pritchett says, “We had to admit that in most cases the answer was, ‘Not yet.’”

Having identified those shortcomings , we took notes on what devs needed and what they expected from the API. Pritchett finishes, “We tried to tailor the service to fit those specifications to fully get those devs on-board with the project.” Eckert adds, “We’ve since been able to hit parity with the methods they were using to get data before.”

To the Developer Relations team, it all comes down to a really big carrot and a really small stick. Eckert describes the carrot, “We’re trying to make as many incentives as possible to work with us: sign up, get access to the API, get a lot more support, gain access to the community, talk to us one on one. It’s designed to be a huge bonus to be part of this.” As for the stick, he adds: “It’s not about punishments or penalties for coloring outside the lines, devs who choose to ignore the community just don’t receive the same resources and support.”

We love sharing our data and we’re excited every time someone finds a new use for the firehose of numbers gushing from of our servers. Now the API lives in three data centers around the world, servicing millions of calls to game servers in every Riot region for over a thousand independent devs. All the while protecting players from slowdown, disconnects, or other stability issues that might have otherwise been related to that kind of call volume.

In hindsight, the decision to start developing with the community through an official API was obvious, J Eckert concludes. “Passionate people who love the game and who know how to code are going to make stuff,” he says. “We just want to help them do it in a positive way.”

 


If you have any questions, feel free to ask me at @NoL_Chefo or e-mail me at [email protected]

 

DATA AND CHAMPION BALANCE PART 1 Banner

Riot’s latest dev blog explains why numbers often don’t determine champion balance:


Succeed while playing what you want

BY RIOT JULES

Hey everyone! I’m Jules and I help the balance team leverage data to make smart changes to the game. I wanted to offer some insight into how we evaluate champion balance and discuss the nuances of power, win rate, play rate, and ban rate. Getting started: our primary goal is to empower you to succeed with any champion. When you’re picking a champion, ideally, that decision is agnostic of power. Situationally, some champions will always be stronger than others due to team compositions, synergies, and counterpicks – all of these are an integral part of League of Legends. All else equal, our philosophy is you shouldn’t feel compelled to pick a champion because it’s OP.


Power is destroying the enemy Nexus

 

Power is the degree to which a champion is capable of winning. Champions might specialize in late game scaling or teamfights or pentakills or objective control, but those are simply tools to achieve the primary objective: destroying the enemy Nexus. Power is not constant. In a given game, it is a function of the champions being played and the skill of the players with those champions. Kog’Maw isn’t powerful in every situation, but he’s incredibly powerful with the correct team composition in the hands of skilled players. Just as one could use KDA to measure a champion’s ability to score kills and avoid death, we leverage win rate as one way to measure a champion’s ability to win, or power.


50 doesnt mean balanced

If a champion’s power is analogous to true accuracy, a champion’s win rate is akin to empirical accuracy. Win rate is the probability of winning given the current ecosystem of champions and players. It tells us something about the power of the champion (powerful champions are more likely to win), but it alsotells us something about the skill of the player (skilled players are more likely to win). More powerful champions tend to have higher win rates, but win rate is an imperfect measure of power because it’s conflated with player skill. We can validate this by observing that a champion’s win rate tends to drop during the free-to-play rotation, due to an influx of inexperienced players. One implication of this is that champions can be balanced above or below 50% win rate. According to our data, only a fraction of Azir players are highly skilled with him, so we expect his win rate to be sub-50% in a balanced state. Conversely, a large proportion of players playing Heimerdinger are die-hard mains, so we expect his win rate to be above 50%.


We balance around skillful play

We take into account the impact of changes at all levels of play, but that doesn’t mean we pretend all players fit one mold. Skilled players make decisions with greater information and execute on those decisions with greater precision. We’re comfortable saying that we look closely at these players to best understand the metagame and balance of League of Legends. We believe balancing around a skillfully – but not perfectly – played game creates the best competitive experience for everyone. It also encourages mastery. Sure, Twisted Fate is challenging to play, but as we better learn his kit, we realize what he’s capable of and start pulling off crazy plays. It feels good and makes the investment well worth it.


Its not a popularity contest

Play rate is the likelihood a champion is picked in an individual game. If players were robots that optimized only on winning, play rate would be highly indicative of power. In reality, players care about winning, but they also care about having fun and playing what appeals to them. Ahri is more appealing than Urgot for most players, so we expect Ahri to be more popular than Urgot. Play rate trends can teach us something about power, but the signal is blurry. We also care about champion variety (e.g. not seeing Jinx every game), but one of our tenets is to avoid sacrificing balance just to promote variety. In other words, we won’t nerf champions just because they’re popular and we won’t buff champions just because they’re unpopular.


We keep an ear to the ground

Listening is another way we evaluate balance. When everyone is complaining about Nidalee, we don’t act rashly, but we do refocus our attention. While it doesn’t replace reading the boards or communicating directly, ban rate does complement anecdotal evidence with a more objective lens. One caveat of ban rate is that it is highly influenced by play rate. Even if Rumble is strong, he’s probably not worth a ban if the opposing team is unlikely to pick him. As a rule of thumb, optimal ban strategy (i.e. the strategy that maximizes your probability of winning) is to ban champions that are both high win rate and high play rate.

In reality, ban rate is not only a function of win rate and play rate, but also of perception of power, transparency of power, frustration, and risk-aversion. A few months ago when LeBlanc held the title of most banned, she was a suboptimal ban outside of Master/Challenger. Janna, statistically one of the best bans in the game, was banned in less than 1% of games. With that understanding, we keep a close eye on ban rates but don’t let them single-handedly drive balance decisions.


Were players too

Data matters, but it’s only one part of the equation. Believe it or not, we play League of Legends too. We feel it just as quickly as you when Skarner is in every game and, more importantly, winning every game. We want a fun and balanced game not just because it’s our job but because we’re players. We acknowledge we’re human and susceptible to a plethora of cognitive biases. That’s exactly why we leverage information from all angles. Ultimately, everything we do is an effort to make League of Legends the most fun it can be. In the next dev blog, Jag will discuss how we examine champion balance from a design perspective.



If you have any questions, feel free to ask me at @NoL_Chefo or e-mail me at [email protected]

 

CHAMPION INSIGHTS KINDRED THE ETERNAL HUNTERS Banner

Rioters reveal the narrative and design process that led to a wolf and a lamb wandering on the Rift:

 

Champion Insights Kindred the Eternal Hunters

BY FIZZNCHIPS

The guys and gals in champion ideation start off with a simple enough goal: create something that League hasn’t seen before within the parameters of a pre-existing role. In Kindred’s case, they were tasked with making a new marksman-style damage dealer who could go toe-to-toe in the jungle. Here’s how they went from blank page to the twin prowling specters of death about to stalk the Fields of Justice.

 

GAME DESIGN NOTES Banner

by Jordan Anton aka RiotWrekz

Designing a marksman who could head into the jungle came with a bunch of unique challenges, but notbecause it was a completely new concept. Truth is, we’d seen players crowbar other ranged champs into the jungle before, and by paying attention to where they struggled, we ended up with a pretty good idea of what Kindred needed in order to succeed.

 

MACGYVERING JUNGLE MARKSMEN Banner

The ranged champs we’ve seen appear in the jungle – most recently Twisted Fate and Twitch – have been really gimmicky, and either dominate a game or do absolutely nothing. Their early ganks are often devastating (not many can survive invisible red buff ganks or TF’s guaranteed stun), but they’re pretty much useless if they fall behind, and absolutely need kill or assist money to keep up. What’s more, anyone familiar with either of their super predictable jungle paths will know where they need to be to kill or maim them, and because they were designed for life in lane, there’s very little they can do against strong counter-junglers like Lee Sin or Rek’Sai. These were all issues we had in mind when we started working on Kindred, and issues we hoped to address while creating the champ.

We’d seen players crowbar other ranged champs into the jungle before, and by paying attention to where they struggled, we ended up with a pretty good idea of what Kindred needed in order to succeed.

 

ENTER KINDRED Banner

First off, we knew that we wanted Kindred to offer their team reasonable ganks – attacks that, if timed and coordinated well, could result in a kill, but weren’t guaranteed successes. By reducing the power of their ganks – specifically compared to Twitch or Twisted Fate – we were able to add power to areas where they both struggle. We made Kindred less reliant on money, so while they obviously benefit from items as the game progresses, they aren’t anything like as useless as the Plague Rat when he falls the wrong side of the feast/famine divide. Mark of the Kindred, for example, is a really snazzy ability, not just from the bonuses it gives Kindred, but because it adds a psychological element to a game of League that’slargely indifferent to Kindred’s strength. Whether you’ve been marked by a Kindred that’s racked up a 10/0 or a 0/10 score, you’re going to playdifferently. Maybe you’re about to get ganked, or maybe Kindred just wanted to apply a smidge of suggested pressure – you don’t know, and, unless you’ve warded supremely well, you won’t know until they appear somewhere on the map.

Speaking of ganks, while Kindred’s aren’t as brutal as Twitch’s or TF’s, they’re still plenty powerful, and will often relieve pressure even if they don’t secure a kill. The percent max health burst damage from a fully triggered Mounting Dread means Kindred’s ganks sting even against tanks, and the W/Q combo helps Kindred stick to their target as they make their escape. Kindred definitely lacks the hard crowd control that a lot of junglers bring to a fight, but the extra damage they bring in lieu of the cc means they thrive especially when they gank lanes that do have the means to keep their target from fleeing. So while junglers like Sejuani and Rek’Sai bring the knock-ups and slows the gank needs, but often lack the damage to kill the target, Kindred offers the inverse to that.

 

MIXING THE META Banner

Kindred’s introduction brings the possibility of fancy new team comps built around a second jungling marksman. With two marksmen, the rest of the team might look for peel-heavy champions who can keep enemy assassins and fighters at bay, or pick up items like Black Cleaver to help both marksmen deal decent damage. Maybe they’ll focus instead on tanky frontline characters who pack a decent amount of magic damage – champs like Malphite or Amumu – to mix up their team’s damage output. The point is that a ranged marksmen jungler hasn’t really been reliably seen before, and we’re super excited to see the kinds of teams you guys build around one.

Finally, I can’t talk about Kindred without mentioning their ultimate. Lamb’s Respite is another ability that is effective regardless of Kindred’s level of success in the game, and again encourages teams to think outside the box in regards to their composition. Its death-defying zone gives sustained damage comps resistance to burst, which reinforces double AD comps and specifically rewards teams which pack in multiple marksmen. But even if Kindred’s taken into a more traditional team comp, they should still be able to offer their team plenty of unique tools along with those coveted ranged attacks.

Lamb’s Respite is another ability that is effective regardless of Kindred’s level of success in the game, and again encourages teams to think outside the box in regards to their composition.

 

NARRATIVE NOTES Banner

by Matt Dunn aka FauxSchizzle

We had a hook for the kit pretty early in ideation: a jungle marksman with the ability to “mark” enemy players for death and reap rewards for each successful kill or assist on that target. This led the team to explore several ways of expressing the champion’s growing power, and we landed on a relationship between two equals. This is where Kindred took shape.

It was ultimately one of Chris’ sketches – a glowing ethereal lamb firing a shadowy wolf from its bow – that piqued our interest. In fact, it haunted us. There was something darkly whimsical about this duo, so we decided to dig deeper. This is typically when the Narrative writers dream up a few story sketches to figure out who the champ is within Runeterra, what their powers look like, and how they behave. The first lines I wrote for this concept were a variation on their “choose me” line, with Wolf saying “Tell me again, little Lamb, which things are mine to take?” and Lamb replying bluntly, “All things, dear Wolf.”

Based on lots of discussions in the room, we realized that Kindred could be Runeterra’s first mythological representation of life and death. We dreamt up scenarios from ancient barrows featuring rough engravings of the Kindred masks to mark the sites as places of the dead, to a Mardi Gras meets Groundhog Day-style celebration in Bilgewater. Kindred’s stories were designed to build up the mythological foundation of Runeterra; the stuff of fables and nursery rhymes that children sang, blissfully unaware of the works’ dark origins.

These two animals: the stalwart Lamb with her ornate bow, and the shadowy Wolf with his tongue lolling out of his mouth, felt both quirky and ominous. I started researching the anthropomorphism of death throughout numerous cultures and found that many of humanity’s first known myths were centered around gravesites. The team agreed that Kindred was a unique grim reaper, spoken about in whispered tones by those who narrowly avoided death, and seen by all in life’s last moments. To help clarify what made the characters distinct, we took a look at what a Lamb’s death looks like in comparison to a Wolf’s. To accept Lamb is to rejoice in life and depart in serenity. To run from Wolf means a violent and terrifying end.

The masks proved pivotal to the champ. By having Lamb wear Wolf’s mask – and vice versa – we tapped into a yin-yang dynamic, which helped us crack their personalities. We gave in spades to one what the other lacked. In this case, Lamb knew much about the world, but felt very little, whereas Wolf felt everything, but lacked in the knowledge department. We loved the idea that these two never fought over kills, or were ever at odds, because, in the end, the Lamb and the Wolf are two parts of one whole.

The first lines I wrote for this concept were a variation on their “choose me” line, with Wolf saying “Tell me again, little Lamb, which things are mine to take?” and Lamb replying bluntly, “All things, dear Wolf.”

 

ART NOTES Banner

by Edmundo Sanchez aka Mundo and Chris Campbell aka Skeeziks

After identifying the type of champion we wanted to make (in this case, a dual character jungling marksman), we entered open ideation, and started noodling on what these characters would actually look like. But, turns out dual characters are hard. We tried out a couple of ideas, but they trod on existing champions a little too hard and failed to get much support internally. Other ideas came and went until we found ourselves spinning our wheels two weeks into our four week ideation window. Chris, looking for a change of environment, headed out to a coffee shop for a while to continue sketching. A few hours later, he turned back up, and opened up his sketchbook to show us this:

Something clicked with the concept instantly. These characters – the fierce wolf and the gentle lamb – neatly juxtaposed with each other while still functioning and appearing as a single entity. Meanwhile, Jordan and Matt had made decent headway on a death theme, which was an easy fit with the characters: Wolf represented death, and Lamb, at least initially, represented life. And though it was never defined as the goal of 2015’s champions, Bard and Tahm Kench both had plenty of folkloric qualities about them that complemented Kindred’s burgeoning theme and look. Progress, at least internally! Then we brought the concept to stakeholders, and though they were super supportive, we ran into some tough feedback from other Rioters.

Bard and Tahm Kench both had plenty of folkloric qualities about them that complemented Kindred’s burgeoning theme and look.

“You guys are going to put a fucking lamb in the game?”

When we challenge ourselves with things that are new, that often unsettles people. And that’s a good thing. We ran into a ton of feedback as we started expanding our feedback sessions. Lamb and Wolf were super polarizing champions, and we had to fight tooth and nail throughout the process to get them pushed through. Though we were comfortable with the champion being contentious, we still wanted to refine and focus on the characters of Lamb and Wolf. We refocused them so bothrepresented death, then gave them masks – masks of each other, actually – to highlight the duality of the two characters. Lamb wasn’t all good and noble, and Wolf wasn’t purely brutal, but they had aspects of each other that turned them from black and white characters to various shades of gray. We started treating them as yin and yang – two halves of a complete whole that couldn’t exist without each other. Next we turned to their animations, and again deliberately countered how people would expect Kindred to move. Lamb, instead of skipping around, became stoic in its movement, while Wolf became the more playful of the two.

Ultimately, we wanted Kindred to become a cultural archetype for League – creatures that truly embody the world of Runeterra and highlight how unique the world is. And here’s the kicker: we don’t even see Kindred as physical characters in the world. So far as anyone in Valoran knows, Kindred is just a fairytale, a way for some Runeterran cultures to rationalize or personify the mystery of life and death. As for whether they’re actually real? Well, that’s for the dead to know.

We started treating them as yin and yang – two halves of a complete whole that couldn’t exist without each other.

We’ll be back in a few days with more Kindred information!

 


If you have any questions, feel free to ask me at @NoL_Chefo or e-mail me at [email protected]

 

HOW PROJECT CHAMPS TRANSCENDED HUMANITY Banner

 

How PROJECT Champs Transcended Humanity

BY CACTOPUS

No great idea gets into League of Legends without being examined, challenged, and mutated by our collaborative process. When Marco “Wendigo” Silva, an artist from the São Paulo office, dreamed up “Cyber Yi,” he knew it’d be put through that creative gauntlet.

Silva wanted to fight hard for his idea, so he put together a team of concept artists and animators and created a 50-page presentation detailing how a legendary Yi skin could fit into an entire universe inspired by classic cyberpunk films. The first few Rioters who saw the pitch sent it around to others, and it spread virally through the company. People started piling aboard Silva’s cybernetic hype train.

My first reaction was like, ‘whoa, this is ridiculous,’” recalls lead concept artist Larry “The Bravo Ray” Ray. “I was impressed.”

Still, there were obstacles Silva hadn’t considered. While the Cyber Yi concept was still being pitched, a team at Riot’s Santa Monica office was independently working on a cybernetic-themed skin called PROJECT: Yasuo. Our artists thought that Cyber Yi might complement the new Yasuo skin, but first they’d need to figure out the artistic direction for PROJECT: Yasuo — and for any other champions that might fit into that world.

Cyber Yi would need to evolve.

PROJECT vs. the Robots

Two other futuristic, techy skin lines existed in League of Legends at this time: the hulking “Mecha” skins (featuring Malphite, Aatrox, and Kha’Zix) and the fiery, monstrous “Battlecast” army (starring Creator Viktor and his mechanized mutations of Kog’Maw, Vel’Koz, Cho’Gath, Urgot, and Skarner).

Battlecast, says visual effects artist Adam “Riot AdamUnicorn” Kupratis, “is like what the Vikings would build if you gave them combustion engines.” There’s black oil, hot sparks, pistons, a fuel source. “Everything’s on fire and it’s gonna hurt to be near it.”

In the Battlecast designs, all the armor and weapons are forward-facing. “They’re not worried about what’s behind them because they’ve already killed everything in their path,” says Larry Ray.

Mecha, on the other hand, pulls influence from Giant-Robot/Monster-Attacking-The-City movies and animes. The sensitive parts of the mechs are covered up and painted, bringing form and function together to create a gigantic machine that looks like it could fit a whole family of yordles in the cockpit.

Artists decided to keep PROJECT skins people-sized, though the champions have fused and augmented their bodies using some big, crazy technology. “In order to become PROJECT you have to surrender your humanity,” says Lisa “Saiyaka” Thorn, a visual designer. “The technology takes over your soul.”

PROJECT champs aren’t just soulless husks, though. Little clues point to their human origin: Yasuo’s leather glove, Leona’s exposed jaw, Master Yi’s wuju-sculpted washboard abs. These aren’t robots—they’re just seriously tricked out people.

Shaping Up

Using certain shapes and colors can unify skins in subtle ways. Cold, teal-tinged steel defines Mecha designs, while fiery bursts of orange and red light the unpainted Battlecast bots from within. Most of the PROJECT champs also sit somewhere on the spectrum between yellow and red, says Kupratis, but the skins “play with subtractive elements.” By this he means other colors peek out of the PROJECT champions’ gear, but are muted by the surrounding light.

In the Battlecast skins, cylinders spring out of every joint and opening: Cho’Gath’s mandibles are replaced by tubes, and a slew of pistons bursts out of Kog’Maw’s muzzle. Hexagons dominate the Mecha skin line. They show up in the honeycomb-like texture of Kha’Zix’s wings, but also the shape of his head, the bend of his arms. Artists call these sorts of defining details “shape language,” and clearly determining the shape language for each champ and skin line creates a sort of visual consistency that’s easily understood and recognized by players.

To determine the shape language for PROJECT Skins, we had to do more than differentiate the skins from Battlecast and Mecha. Paul “SpaceW0mbat” Hoefener, the concept artist behind the original PROJECT: Yasuo skin, sees it as a combination of digital (think hardware, fitted with chips and carbon casings) and ethereal, intangible effects. “The way the particles dissolve feels magical,” Hoefener says, “but it’s still tech.” To dig deeper into this idea, the art team wrote a complete definition of what “PROJECT” means.


PROJECT: is the perfect fusion of one’s supernatural essence with advanced weaponry and body augmentation. This linking of technology and energy allows extraordinary hosts to channel their essence into physical manifestations and, in rare cases, transcend the corporeal plane. Only subjects possessing extremely focused inner essence and exceptional physical attributes can unlock the true power of PROJECT.


Ultimately, PROJECT is about transforming the “mere human” forms of champions using technology, and the shape language the artists used reflects that. ”When champs use their heightened PROJECT powers, it’s through shapes and geometry that fit their unique characteristics,” says Thorn.

Fiora, for example, is graceful yet sharp — it looks like it might sting if you bumped into her. Lucian is defined by sleek, speedy-looking parallelograms, and his W bursts into a compass rose. Designers wanted those elements to peek through even after the champs fused their souls with technology to become PROJECT. So, PROJECT: Fiora’s pointy triangles became digitized. PROJECT: Lucian’s bursts got brighter and burstier.

From Brazil to the Rift

Players loved the PROJECT concept, but it took time to figure out how to integrate its themes and ideas with the potential suggested by Marco Silva’s pitch for “Cyber Yi.” Size, color, shape, purpose, personality: each of these elements had to be carefully considered and toyed with to turn PROJECT into a full-blown skin line.

Hoefener says that the long, multi-faceted design process PROJECT: Yi went through is all part of what defines League of Legends’ artistic sensibility. “By the end of the process everybody’s put their personal spin on it,” he says, “and that’s how it gets League-ified.”

For Silva, seeing his “Cyber Yi” idea evolve into PROJECT: Yi is like a dream come true. He says he’s still a Master Yi main, “but now there’ll just be a lot more particles flying everywhere when I gank people.”



If you have any questions, feel free to ask me at @NoL_Chefo or e-mail me at [email protected]