League of Legends Wiki

Want to contribute to this wiki?
Sign up for an account, and get started!
You can even turn off ads in your preferences.

Come join the LoL Wiki community Discord server!

READ MORE

League of Legends Wiki
Advertisement
Image
Renata Glasc Concept 01
Renata Glasc
Renata Glasc (Universe)Renata Glasc (Universe)
Renata Glasc (League of Legends)Renata Glasc (League of Legends)
Renata Glasc (Esports)Renata Glasc (Esports)
Renata Glasc (Teamfight Tactics)Renata Glasc (Teamfight Tactics)
Renata Glasc (Development)Renata Glasc (Development)
Renata Glasc (Trivia)Renata Glasc (Trivia)

Champion Roadmap: September 2021[]

By Ryan 'Reav3' Mireles[1]

Cash Rules Everything Around Me

Money runs this city. Technology, power, people. All can be bought when you have enough cash. Technology to reach out and take what you want, discarding it like trash when you're done. Power to turn your enemies against each other, watching them kill the very ones they swore to protect. And people to manipulate with your terrifying charisma, sending them to almost certain death, only being saved if they fulfill your wishes.

In the end they will know your name, the one that truly ran this game, the one calling the shots… the “support.”

Renata Glasc Teaser 01

Champions in Season 2022[]

The next new champion we will be releasing this year is a new enchanter. When we were thinking about the type of support we wanted to make, we looked at the enchanter cast overall. There are a lot of lighthearted, colorful, good aligned champions there and we felt support players deserved something more dark and sinister to balance out the cheeriness of the role.


We also wanted to make a champion whose theme and kit makes support players feel like the boss they are. All you support players know what I'm talking about. Those damage carries always get all the credit. But it's always been you, behind the scenes. Keeping them alive with your buffs, constantly saving them from certain death. How could they make all those sick plays without you?

And if any of you supports out there know what I'm talking about, then I think you're going to go berzerk over this new enchanter.

Ryan 'Reav3' Mireles[2]
Separator


Renata Glasc Teaser 02

Glasc Industries - Don't just survive - Thrive![]

For her teaser, a fake website for Glasc Industries was created.[3]
Renata Glasc Teaser 04

Our Products[]

Luxury Line

Fulfilling your greatest desires.

Fusing elevated design with cutting-edge innovation, uncover a limited collection of captivating fragrances, self-defense solutions, and augmented limb technology. Wear Zaun’s unique beauty wherever you take it.

Renata Glasc Teaser 03
Diffusion Line

Rising to meet your needs.

Discover elegant, affordable chemtech solutions for any lifestyle, from everyday filtration units to replacement limbs and medical alchemy. We apply tech from Zaun’s brightest minds to solve Zaun’s greatest problems.

Our Story[]

We started with a dream: to make chemtech affordable, beautiful, and accessible for all.

With origins in Zaun, we are committed to improving lives and earning our community’s trust. We donated hundreds of breathers to victims of last year’s noxious chemical fire. Now we’re extending our reach, starting with the City of Progress.

Glasc Industries partners with brilliant minds to produce designs of the highest caliber, and our apprenticeship program fosters new inspiration. Our goal is to become the most revolutionary and impactful manufacturer in the world.

Our Founder[]

From humble origins in the Sump of Zaun, Glasc Industries founder Renata Glasc was inspired by her family’s alchemical practice to improve life across Zaun and Piltover alike. For the last 30 years, her visionary work has touched civil development, tech, and philanthropy, collaborating with both citizens and chem barons to keep the streets safe.
Currently, she heads Glasc Industries in its next objective: redefining beauty through state-of-the-art technology. To those who seek a greater future, Renata Glasc embraces all.

Quick Gameplay Thoughts 2/11: Champion Releases[]

By Blake 'Squad5' Smith[4]

Renata Glasc AdmiralGlascSkin

Ever wonder how we prepare for new champions? Here's part of our process for Renata Glasc's release!

Whenever we release a new champion, we often get questions like “How did you decide this champion’s new mechanic was fit for the game?” (or, alternatively, something more along the lines of "How dare you?"). We wanted to answer these questions by sharing how we validate gameplay and plan for champion releases and, since I’m the gameplay designer on the latest one, you’re stuck with me. Sorry.

Validating Gameplay

Case Study: Renata Glasc
With each champion, we want to bring something unique, whether that be a new playstyle, mechanic, thematic, or something else entirely. Each release should broaden potential experiences for players rather than push older champions out of their gameplay space. However, new ideas often come with risks, so every possible addition to the roster needs to be carefully evaluated and planned for.

Let’s take a look at how this panned out with the hot topic of the day, Renata Glasc’s W, Bailout. Bailout is intended to create intense, live-or-die moments for her team. With its buff, an ally can push their limits and prove their value even beyond death to get a second chance at life. However, it can also be used on a champion that isn't currently at the brink of death to boost their offensive stats.

As a basic ability, we recognized it could have too much power and lead to unhealthy game states. The potential revive needed particularly extensive testing. To validate the gameplay, we always start out with high level questions like:

  • Does the existence of Bailout lead to game states where opponents feel like there’s no point in being aggressive?
  • Does Renata only wait for opportunities to revive allies rather than use Bailout proactively?
  • Do opponents feel like they have counterplay options when Bailout is cast on an enemy?

We test these questions by adding/removing constraints or tuning the numbers until hopefully eventually the ability is in a reasonable state. If the ability isn’t matching our expectations, we keep on iterating to determine why.

Getting More Granular

Once a mechanic's power level is in the ballpark range of acceptable, we start asking more specific questions to get into fine-tuning:

  • How often do Bailout casts result in saving an ally? How often and long do allies live after being saved?
  • How often do Bailout casts result in pushing a kill that wouldn’t have happened otherwise?
  • What do early game all-ins look like using Bailout?

These give us insight into how the ability can be tuned, or what we call "levers". Different levers tune different aspects of the ability. For Bailout, we have levers that allow us to increase or decrease outputs such as the consistency of revives, the potency of the bonus stats, and the frequency of casts. After enough iterations, we reach a point where we have enough levers and feel the ability is known well enough to release—with a plan, of course.

Post-Release Plan

Post-release plans are, well, plans for what we expect to see and do after champion release. They cover topics like predicted winrates for each bracket, item builds, skill max order, and role priority. If any of the numbers in Live turn out to be significantly off from what we predicted, we’re likely to take action(s) to correct it with the levers we've already identified. Sometimes we include specific "action items" for riskier abilities, which are like playbooks where we describe a possible scenario and list a potential action (or, like, five) to address it.

For Renata Glasc, Bailout is one of those risky abilities we needed to prepare action items for. For example, the potency and frequency of successfully reviving an ally is a potential area of concern. If the frequency is too high, we already have several viable levers from gameplay validation and know what each of them will do:

  • Reduce the duration of Bailout's buff to reduce the window of time the unit gets to be potentially revived
  • Shorten the revived ally's burndown period so that they burn faster, reducing the chance of them getting a takedown to stop their burn
  • Make the takedown window less forgiving by requiring a dying ally to have dealt damage to an enemy within a few seconds, rather than revive off any assist
  • Make the actual stat buffs bigger so that she is more tempted to buff an ally who is likely to remain alive rather than one who is near death
Overall, our goals are to ensure that champions with new mechanics release with acceptable conditions, and that we're prepared for any possible significant gameplay issues. However, even with all our testing, players play thousands more games than we ever could in a champion's whole development. We'll be watching to see how close we were with Renata Glasc and can't wait to see how she plays when she arrives on February 17!

Champion Insights: Renata Glasc[]

By Erika 'Cashmiir' Haas[5]

Renata Glasc Concept 14

Gaslight. Gatekeep. Girlboss.

If Renata Glasc was in our world, she’d be investing in crypto while actively manipulating its economy via Twitter. But, thankfully, she’s not in our world—we already have enough of those types.

Instead we have Renata Glasc, the Chem-Baroness. A capitalist who saves the poor of Zaun with one hand while choking the life from them with the other. An evil enchanter who uses powerful chemtech to bend her enemies to her will and “empower” her allies (read: bend them to her will).

And honestly, what more could a girl from the Sump of Zaun ask for?

Support for a Price

The current enchanter roster consists of shy egirls, a handsome himbo handsome himbo, a fairy-flinging lunatic fairy-flinging lunatic, and a cat cat. But what about us edgy Pyke Pyke-appreciators who want to play an enchanter while being baddies?

“We discussed making a dark enchanter pretty early in the process,” recalls game designer Blake “Squad5” Smith. “So I started by focusing on the outputs of an enchanter: protecting your teammates and enabling them to succeed. Then I thought about how I could give a more sinister twist to those mechanics.”

On the surface, it seems like there’s only so much you can do to make an enchanter evil. Healing, shielding, and buffing are inherently selfless—you’re granting a piece of your power to your ally and in return asking for nothing (unlike mage supports who ask for your kills so they can buy Deathcap). But if you dig deeper, there are plenty of ways to make enchanter mechanics more malicious.

Renata Glasc Concept 02

Power for a price, manipulating your enemies, forcing allies to fight beyond death. These are the avenues Squad5 found for making an evil enchanter.

“I narrowed in on the gameplay mechanics before Renata was even Renata,” Squad5 explains. “It’s pretty unusual for champion development, but because we had a strong gameplay thematic goal from the beginning, it was just clear what kind of kit we needed. Her R literally turns her enemies against each other. It’s kind of a remix of taunt, in that it taunts you to attack your allies if you’re Renata’s enemy. And she buffs you with increased attack speed, which makes you more deadly when you’re killing your friends. It’s this cool moment where she can turn your power against you. It ended up becoming my favorite spell in her kit because it’s a new approach to enchanters that we don’t currently have in League.”

Renata Glasc Concept 04

Renata's weapon is more than just a tool: it’s her servant. It has sentience and obeys her every command.

Every enchanter needs a weapon, and when looking at the ones enchanters mainly use, senior concept artist Sundo "Kringlejim" Pambito realized there wasn’t much diversity. There are a lot of staves—wind, water, magic. But there were two things that tie them together: they’re big and they do many different things.

“I probably drew hundreds of designs for Renata’s weapon. I needed it to be clear that it enrages people, makes them immune to death, damages enemies, shields allies, makes enemies turn on each other... It does a lot,” Krimblejack explains. “And because she’s an enchanter I wanted some sort of twisted medical approach, so I tried a syringe, a weird chemical tank, even a machine gun. But in the end invoking the feeling of the caduceus staff felt the best.”

Renata Glasc Animation Concept 01

At 6-feet-tall, Renata Glasc looks up to no one. But one the off chance someone is taller, she opens her umbrella, forcing them to now beneath, below her eye level.

From there the team just needed to do the easy task of designing a whole-ass champion who embodied the malevolent kit Squad5 designed—what kind of evil do these abilities embody?

Evil in League takes many forms. From a comically tiny master of evil, to world-ending rage inspired by grief and loss, even an entire compendium of demons who’ll do everything from eat you to torture you. Yet we’ve never really had an evil that was relatable. Sure, we all remember the pain from our first breakup and the belief we’d never get over that world-shattering pain, but very few of us spawned Ruination from the Black Mist-creating hole in our chest where our heart once lived.

What if we created something a little closer to our world? Something a bit more modern.

Late Game Capitalism

CEO, entrepreneur,

Born among the Zaunite poor.

Renata, Renata Glasc.

Who doesn’t love capitalism? Picking yourself up by your bootstraps, climbing the socioeconomic ladder, and building a corporate empire. All you need to do to get there is step on the people who helped you, destroy the environment, and commit tax evasion. Isn’t it amazing!

While we’re all very familiar with corporate evil, it’s something we’ve never explored in League. But there’s one problem: It’s so real—a modern creation from our world. How do we create a champion who embodies corporate evil while existing in a world full of dragons, demons, and magic?

We already knew the core of the kit, we knew they'd be evil (or morally gray), and now we knew we wanted them to be a rich entrepreneur. So where are they from in Runeterra and what's their story?

Renata Glasc Concept 01

Zaun and Piltover are unique in Runeterra. They’re cities of progress, technology, and rampant inequality. We’ve got a lot of characters who give us a look into both cities and the subcultures that exist there, but none who show us the people who profit from it all. Well... actually that’s not entirely true.

When thinking about the type of character who’d fit the gameplay, personality, and archetype the team was creating, Silco’s name came up. But as champions team lead Ryan “Reav3” Mireles already explained, Silco isn’t coming to League.

“We explored Silco really early in the ideation process, but we just didn’t feel like he hit the bar of a League champion,” Reav3 explains. “Most of the characters in Arcane kind of fail to hit that bar actually, even Jinx Jinx, Caitlyn Caitlyn, and Vi Vi. They wear muted clothes and have slightly more subdued personalities. It works really well for Arcane because the show’s more grounded and the characters are supposed to be relatable, but that’s not what we’re looking for in League. Champions need to be clearly readable, unique, and have clear sources of power. We tried to beef up Silco to hit those goals, but he stopped feeling like Silco. And we didn’t think that was fair to the character we fell in love with in Arcane, so we ultimately went another direction.”

Renata Glasc Concept 11

Renata Glasc's suit should feel reminiscent of the Chem-Barons from Arcane

Zaun is ruled by chem-barons—crime bosses who profit off of the most vulnerable citizens in the city. They’re ruthless. Cunning. Hungry for power. It simply was perfect.

“When thinking about who Renata would be, we knew we had someone very manipulative,” explains narrative writer Dana Luery “griddlebones” Shaw. “Someone who’s able to get people to do her bidding, doesn’t have to dirty her hands, and could turn her enemies into her allies. It reminded me a lot of crime bosses, and we spent a lot of time looking at organized crime lords.”

“I asked myself, ‘What kind of crime boss from the 20s or 30s would have these sorts of abilities?’ Because similar to Renata, a lot of these people wanted to be viewed as legitimate businesspeople, enough so that they had people killed left and right,” griddlebones continues. “So what would happen if we had a legitimate businesswoman who also had people killed left and right? That’s kind of where, personality-wise, Renata came from.”

Renata’s fortune comes off the back of her parents, Zaunite alchemists who were humanitarians to a fault. They provided medical care to the poorest of the poor, and instead of accepting compensation, they went without. Renata would go to bed cold, hungry, and bitter. So it shouldn’t come as a shock that when she grew up, instead of following in her parents’ footsteps and providing free medical aid for Zaun, she decided to build a corporate empire.

Renata Glasc Concept 07

“It’s expensive to be poor. But when you’re rich, they just give you things.”

Unlike the CEOs and executives of our world, however, Renata Glasc knows she’s not the good guy. Sure, she might donate breathers to the citizens of Zaun after chemical disasters, but that’s the cost of doing business.

Bringing Class to Chemtech

Everything about Renata should feel high class, like the Piltovan elite she secretly emulates (though don’t expect her to admit to that). From her white suit which stands out in the filth of Zaun, to her one-of-a-kind, beautifully lavish, triple barrel, magazine pistol. Everything about Renata Glasc is bespoke, elegant, and expensive. Including the things she’ll use to kill you.

Prosthetic limbs aren’t a novel concept in Zaun. Many of the city’s citizens work under terrible conditions and are victims of horrific accidents, sustaining traumatic injuries or worse. But Renata approaches things with more... pragmatism.

Renata Glasc Concept 10

Renata shakes with her left hand as a test of loyalty

Within Renata’s prosthetic arm is a series of snaking pipes and syringes that contain her chemtech “medication.” She can control her enhancement at will, snapping it out to grab for things, manipulating the fingers to create custom keys, or, if there’s need, delivering a deadly chemical cocktail to any who would dare cross her. But if you’re brave enough to place your life in Renata Glasc’s hand, perhaps you’ll get close enough to see something beautiful and familiar.

“I try to ground characters in the world so every element of their design comes from things you’ve seen before. For Renata’s arm I looked at Orianna’s design,” explains Kinglejingle. “Renata’s prosthetic probably wasn’t made by the same person, but it most certainly was made by a craftsman who’s more focused on the artistry and beauty of design instead of the more serviceable or industrial styles you see in a lot of other Zaun champions. Even the color scheme should feel complementary to champions like Jinx and Mundo Mundo.”

But beyond the surface of beauty and class, Renata Glasc was always intended to be a terrifying and all-powerful figure in Zaun. And someone who wears a suit made of the finest elnuk wool doesn’t necessarily give off the “f*&^ with me and you’re dead” vibes Renata needed to exude.

Renata Glasc Concept 09

Kindlejack worked with illustrator Jeremy “Jermu” Anninos to give Renata a truly unique face

“I looked at some other masks in League—like Urgot's Urgot's and Viktor's Viktor's—and thought about whether there might be styles and techniques that are shared between craftsmen in Zaun,” KrimbleMas shares. “I didn’t want it to feel out of place, but it should feel higher quality. Renata didn’t pick it out of a catalog or something, but perhaps an expert engineer she hired to design it may have shared notes with Viktor. Or perhaps they’d been in a class with someone who dropped out, went to prison, and then designed a mask for Urgot.”

As for why Renata’s wearing a mask... It’s the intimidation factor. She doesn’t need it to live (except when she’s visiting Piltover and breathing that disgustingly clean air), but it does microdose her with chemtech. The cartridges towards the bottom act as asthmatic inhalers and constantly keep her supplied with the finest medicine in Piltover and Zaun. (We get it, she vapes.)

Glasc Industries is Eternal
Some of the visual language in the Glasc Family Crest is inspired by flowers from a certain other Chem-Baroness

And there she is, Renata Glasc, capitalist dommy mommy with ambitions to control the Sun Gate and with it, Piltover, Zaun, and all trade in Runeterra. But is that really enough for her?

“Nothing will ever be enough. Once Renata achieves her goal, she’ll always find something bigger to dream about. Maybe she’ll launch a car into space or something,” griddlebones laughs. “For me, at least, in the same way that capitalism is about constant expansion and never being happy with the profits you have now—needing to make more and more and more, hand over fist—that’s what Renata is. She’s an endless, gaping maw of ambition and greed. I could see her saying, ‘All right. I guess it’s time to hire some mercenaries and take over Noxus, maybe. Who knows? It’s a Thursday.’”

Getting into the Guts of Berserk[]

By Jeffrey 'Nekomaru' Doering[6]

Getting into the Guts of Berserk

Hey there tech enthusiasts and deadly poison gas fans! Jeffrey Doering (aka Nekomaru) here today to talk to you about the dangers of aggression-inducing chemicals and adding them to your video game systems. As the primary engineer on the Renata Glasc pod, I’ve been working with Blake “Squad5” Smith (the game designer behind Renata) to bring the Chem-Baroness to the Rift for the better part of a year now. Much of that time was spent on the nuances of her ultimate and the new form of crowd control it introduces. In this article, I’ll cover how we went from a hacky prototype spell to a game-changing ultimate that’s built to last.

Early Bids for a Hostile Takeover

Renata’s ultimate is a slow cloud of fumes that applies a new type of crowd control called “Berserk” to enemies it passes through. Squad5 started out with a simple goal for the ability: force Renata’s enemies to attack each other. We referred to this behavior as forcing the enemies to go berserk, and with the blessing of our narrative and localization teams, the name stuck.

As an initial prototype, Squad5 had put together a nifty little hack to “taunt” enemies onto an invisible minion at their ally’s location. The spell tracked the damage dealt to the minion, then applied that damage to their ally. This simulated a baseline for what he wanted Renata’s ultimate to be, alongside a basic goal: Renata makes her enemies fight each other.

Although his prototype helped us validate that gameplay goal, it wasn’t sufficient to reach that goal, so engineering was pulled in to figure out how we were actually going to make this work. To reach a shippable quality, we knew we would need to ensure a few things like:

  • Berserk champions apply on-hit effects and other modifiers when attacking allies.
  • Kill and assist credit is attributed to Renata Glasc when a unit kills an ally.
  • Designers can create and easily modify how a Berserk unit prioritizes which unit to attack.
In Which I Explain the Hurricane Vayne Ally Pain

When you first imagine the idea of allies attacking each other, your mind goes to whatever would be most effective (or funny), so I immediately started looking at Vayne’s Silver Bolts. League of Legends scripts (which power actions in-game) operate in an event-based buff system. All logic lives within buffs that have owners, and all buffs have their logic split into discrete events with specific triggers. Silver Bolts, for example, is run mostly by a buff named VayneSilveredBolts that lives on Vayne. This buff has an event called OnDealHit that runs all of the logic contained within any time its owner (Vayne) hits a target with a basic attack.

This functionality doesn’t play nice with our original prototype: it was simulating an attack by applying damage to a minion instead of actually forcing Vayne to attack, so it would never trigger the OnDealHit event for Silver Bolts. A similar issue occurs with any buff that contains an OnLaunchAttack event, since that won’t fire without a real basic attack either. An example of a buff that uses OnLaunchAttack is Runaan’s Hurricane, so our prototype wouldn’t be able to fire Runaan’s extra bolts. So our Vayne with Runaan’s Hurricane (I know it’s not good on her, but it rhymes) may deal her attack damage to allies, but most of her actual threat exists in other systems that we need to support for Berserk.

Runaan’s Hurricane also raises another issue: who should the Runaan’s bolts fire at and how were we supposed to make that work? We can’t just go into every spell or item that interacts with attacks and add logic just for Berserk. That’s a never-ending job and not a particularly fun one. Whatever we did with Berserk, it had to work naturally with the scripts as they already existed. So toss another problem on the heap.

Berserk Concept 01

Diagrams used to help illustrate our options for Runaan’s interactions.

Never Underestimate the Complexity of the Scout's Code

So now we have a solid understanding of what issues we need to tackle in the moment of the attack, but what about everything that comes afterwards? Once you Berserk a champion, they aren’t going to stay that way forever, but some of their attacks could have lasting consequences. Let’s take Teemo for example. The little rascal puts a poison on whoever he attacks that lasts for several seconds, meaning it could theoretically kill one of his allies well after Teemo is no longer Berserk. Now our kill attribution requirement has gotten significantly more complicated, as the simple fix of “if you get a kill while Berserk then give it to Renata” is no longer viable.

I Mean, It's One Refactor. How Long Could It Take? Ten Months?

Now that we have a good understanding of all our problem spaces, it’s time to start investigating solutions. First we need to actually allow allies to attack each other while Berserk. We have no issues telling a unit to attack their ally, and the unit will even move into range to attempt to attack, but once they get to that stage they’ll just kind of…sit there. Enter the AutoAttack file and its Start function. This function is responsible for everything that occurs when a basic attack begins firing, and if we take a look inside…

Berserk Concept 02

Yeah, that’ll do it. The first thing this function does is check to see if the target is on your team, and if so, it shuts the whole thing down. Luckily, we have something called a Character State that tracks all sorts of things like CanAttack, CanMove, and all of our Crowd Controls like Stun! Sounds like a perfect place to add whether or not a unit can attack their allies, and we’re already making changes in there to track whether or not you’re Berserk, so we’re able to launch a big ol’ boulder at all these problem birds.

Berserk Concept 03

Problem solved! Now we only shut down the attack if the target is on the same team as the unit and the unit is unable to attack allies, which we can turn on/off when they enter/exit the Berserk state. Similar changes were required for other systems, like allowing units to crit their allies, so we had to hunt those down as well. But now the easy work is done, and the worms are out of the can.

The Origins of a Solution

On to the hard part. We now have Berserk units attacking their allies and applying all kinds of wild effects, but at the end of it all they’re also getting gold for the deaths of their friends. Meanwhile, Renata Glasc gets nothing. Sounds like a pretty bad deal for a successful business woman to make. We needed a way to trace a source of damage back to its origin to see if it came from an attack fired while a unit was Berserk. Luckily, this is very similar to a system already present in League: Spell Origination!

Spell Origination tracks parameters like a spell’s Cast ID, Cast Time, and Spell Slot for the entirety of its lifetime. These parameters are passed through any extended effects of the spell, which is what allows a rune like Electrocute to only stack once per button press, even if a spell has knock-on effects such as Brand’s Blaze passive. Spell Origination is created during the initial spell cast, and it turns out that at this stage we already know if the spell is a basic attack. Sounds like the perfect hook!

Each unit in a game of League has a network ID that allows it to be tracked and referenced easily, so this was the perfect data to pass around. When a unit enters the Berserk state, we now store the network ID of the Berserk Instigator (the unit who applied the debuff – in this case, Renata Glasc). At the start of an attack, when the Spell Origination is created, we grab that ID and bundle it in with the other Origination parameters as the BerserkInstigatorID, or just leave it as zero if there isn’t an ID present. This allows us to perform two important functions:

  • The Instigator can be accessed at any point during the spell’s lifetime.
  • The presence of a non-zero BeserkInstigatorID can be used in lieu of a boolean to tell if the source of the current event came from a Berserk attack or not.

From here, it’s as simple as hooking into the kill attribution flow and checking against our BerserkInstigatorID. If a valid ID is present, we override the killer with the unit referenced by the ID. Now even if Teemo’s poison kills an ally well after he is no longer Berserk, we still know that the original application of that poison came from a Berserk attack and can correctly credit Renata Glasc as the killer.

Proc You Like a Berserk Vayne

Now that we have all of this working, our Hurricane Vayne can attack an ally, deal damage from her Silver Bolts, get the kill, and Renata will get all the credit. The same will happen with any of Runaan’s extra bolts, assuming they fire at its owner’s enemies. But Runaan’s wasn’t firing at enemies, so we had another problem.

Runaan’s searches for nearby targets within the OnLaunchAttack event in its scripts, using something known as a ForEachUnit check. These checks have several different permutations, but they all essentially boil down to a radius to check in and a list of types of valid targets. The check in Runaan’s Hurricane is searching within a radius of the attack’s target to find the two closest enemies. Even though Vayne is Berserk and can attack her allies, they’re still her allies. So Runaan’s wasn’t registering them as valid targets for its effect.

As I mentioned way back at the beginning, we can’t just go around modifying every script that performs checks like this. We need a solution that just works out of the box. Luckily, our Spell Origination solution also helps here! Area checks and pretty much all targeting checks in League of Legends end up in a single shared function that lives within the aptly named TargetHelper file. This check takes in the list of valid target types, such as EnemyChampions, as well as a few other flags to check if the target is targetable or invulnerable. Because it’s so broadly shared, it’s the perfect place to check for Berserk!

The affect type flags for spells and area checks are stored as bitfield enums, with each bit representing a flag. The solution boiled down to checking if the BerserkInstigatorID is non-zero, and if so, performing a few bitwise operations on the flags to mirror enemy and ally flags. If the bit for EnemyChampions is true, then set the flag for AllyChampions to true as well, all the way down the line. Now when Runaan’s Hurricane, Sivir’s Ricochet, or Volibear’s The Relentless Storm search for nearby targets, they will also include allies if the attack was launched while Berserk! No script changes necessary.

Stop Hitting Yourself

A fun side effect of all these changes manifested once we started testing the true implementation of Berserk. Things like Tiamat’s splash damage were now properly affecting allies while the attacker was Berserk, but you know who also counts as your ally? Yourself! So if Renata hit you with her ultimate, suddenly your Tiamat attacks would damage you as well as everyone around you.

The solution to this problem already existed, as one of the affect type flags discussed in the previous section is one called NeverSelf. It’s pretty self-explanatory: whatever checks performed with this flag enabled would never return the owner as a valid target. It just so happened that this flag didn’t matter for most effects before because they were only searching for enemies. This issue was very simple to fix, but required us to go through and set the flag in pretty much every check where it had been ignored before.

Some of you may be thinking “Hold on a second, you said one of your goals was to avoid changing a bunch of scripts!” You are correct and I’m flattered you’ve been paying such close attention, but there’s a key difference here. The work done for these flags involved going back and fixing a problem that had always been lying dormant. So in this situation, we were reducing tech debt rather than increasing it by adding specific script logic for Berserk. Sometimes you have to do this kind of cleanup in order to open up exciting new opportunities.

Investing in Designer Futures

Hooray! We’ve done it! Berserk is working and meets all of our functional requirements! But that doesn’t mean anything if designers can’t implement it and easily make tweaks for testing. The final step was getting the tools to do so into the hands of non-coding people.

Crowd control application in League is well over a decade old at this point, and to be frank it’s quite a mess. When implementing an ability, a designer must specify that a buff being applied is a certain buff type (BUFF_Stun for example), then call a specific chunk of logic like ApplyStun, and then also make sure to constantly update whether or not a unit is able to attack or move. Missing any of those steps means the stun won’t work. This involves lots of different files talking back and forth in multiple different coding languages just to make sure a player can’t move for a few hours when hit by Dark Binding. Not great.

For Berserk we had an opportunity to build something better. During last year’s Dr. Mundo rework, Iris “NyanBun” Zhang (Mundo’s engineer and current Champions team engineering manager) and I had done some brainstorming on what a more ideal crowd control system would look like from a designer’s perspective. This came pretty late in the development cycle, so there was only time for a proof-of-concept refactor of the Charm crowd control before Mundo’s release.

Since we planned around Berserk from the onset of Renata Glasc’s development, we were able to budget some time to build the new crowd control system as a stretch goal.

In the new system, all that needs to be done is setting the buff to type BUFF_Berserk and the code handles the rest from there. From a designer’s view, the new system is much simpler than the previous one! Once we validated that this system worked for Berserk, we also moved Charm over as well to make sure converting existing crowd controls was a viable option. The refactored Charm went to live servers with patch 12.3, and hopefully nobody has noticed a difference!

The second part of designer authoring for Berserk involves the ability for a designer to easily adjust the targeting priorities for the system. If these priorities are all hard-coded into the system logic itself then only engineers can access them and a bottleneck is created for iteration. For this we largely copied an interface designers were already familiar with from setting up spell targeting and copied it into a new system called AICCBehaviors. Here designers are able to create sets of targeting parameters and an associated acquisition range, then order these sets so that the Berserk system goes through them in order while searching for the first valid target. Allowing designers to make quick changes to this system saved a lot of time as they were able to test different settings and fix bugs without having to wait on engineers to have spare time to help.

Berserk Concept 05
We've Renata Time
And that about covers it! There were several other issues we ran into, such as some empowered attacks that were actually not attacks at all, or champions like Urgot who acquire targets around them automatically, but those are stories for another tech blog. I hope you enjoyed this look behind the curtain of Renata’s noxious fumes as much as you enjoy watching the enemy team’s fed Caitlyn headshot her “support” Lux!

Trivia[]

  • Renata Glasc is voiced by Debra Wilson[7], whom also voices Malgurza in Ruination.
    • Renata Glasc's Japanese voice actor is Yoko Soumi whom also provided the Japanese voiceover for Senna Senna.[8]
  • Renata Glasc being presented with her full name was inspired by famous billionaires who are generally referred to by their full names such as Elon Musk, Jeff Bezos, and Bill Gates.[9]
  • Renata Glasc and Zeri Zeri were both created as Zaun Crest icon Zaun champions as they were originally planned to ship with the RiotX Arcane event before being delayed.[10]
  • Renata Glasc's gameplay hook was to create a dark themed enchanter.[11]
  • Renata Glasc's placeholder model in development was a recolored Swain Swain.[12]
  • Renata Glasc's codename in development was Chem Baroness.
  • Inspirations for Renata Glasc include capitalism, cryptocurrency, and COVID-19.[13]

Media[]

Related Music

Related Videos


References

Advertisement