
The piece below is written by Adrian Finol, Principal Software Engineer for Overwatch, and Lead Designer on Retribution.

Finol works on everything from encounters and mission playthrough to enemy behaviour, and he also wrote the code that drives the in-game third person smart camera.

In the piece, Finol goes over how the Overwatch team created the Retribution PvE brawl, with a particular focus on the AI and replayability.

Adrian Finol (pictured) is the Principal Software Engineer for Overwatch, and was Lead Designer on the Retribution event

Overwatch is a team-based player-vs.-player game, but ever since its release—and even before that, frankly—the development team has been interested in exploring new kinds of gameplay built around the heroes and world of Overwatch. We've experimented with all sorts of different PvP ideas in the Arcade, but we also know there are lots of people out there who love the Overwatch universe who aren't necessarily into PvP.

As designers, the temptation (and the challenge) is clear: build a PvE experience out of a game with primarily PvP building blocks. That's what brought us to this point where, two years post-release, we're giving you Overwatch's biggest—and hopefully also best—story-driven co-op experience so far with Retribution.

The Retribution brawl follows the story of a fateful Blackwatch mission, containing heroes Moira, Reaper, McCree, and Genji

From Chaos to Order, Then Chaos Again

Thanks to our experience creating Junkenstein's Revenge and Uprising, we already knew that making cooperative PvE work in Overwatch isn't as simple as dropping our heroes onto a map and swarming you with AI bots. PvP and PvE each present a different set of creative challenges.

There are a lot of things that are easy to take for granted when you're creating strictly PvP experiences. As the designer, I provide you the setup ('you assault; you defend!') and the tools (heroes' powers and abilities), but then the rest is largely up to you, the players. In every game, wildly different things can happen, and almost all of that variance is out of the designer's control—in a good way. One person goes right at the start of a match; another goes left. Sometimes you get a really good Reinhardt who makes it easy to push; sometimes you get a good Torbjörn who makes it easier to defend. A ton happens that we as developers have no real hand in as countless different human variables collide—and just like when you shuffle a deck of cards, you're never going to deal the exact same sequence twice.

With PvE, by comparison, we're in charge of almost everything. We not only have to design how the heroes play, but also how the non-player characters behave and how the encounters work. This poses entirely new creative challenges: how do we want players to approach this encounter? What happens when it starts? Do things spawn here? What do those things do? What about the next time you play through? Or the time after that? In PvP, it's a given that the next playthrough is going to be different. In PvE, unless you put a lot of effort in, you risk the opposite—everything will just be the same every time.

When we started exploring concepts for Retribution, we talked a lot about what we call the 'street level' view of our PvE experiences—the 'A to B' of a mission, or how you get from the beginning to the end. When we looked back at both Uprising and Junkenstein, we felt—and players agreed—that the 'A to B' was too static. In Uprising, the flow was kind of sedentary: You head toward an area, you hack a terminal and wait it out while holding off a wave of enemies, and you move on to the next one. In Junkenstein, there wasn't even really a B to begin with; you were fighting with your back up against the wall (or, technically, a door).

In previous Overwatch brawls, people found the pace to be too sedate, or the modes weren't dynamic enough for replays

We always knew that Retribution's 'A to B' was going to be dictated almost entirely by the narrative, because we really wanted to bring players into this crucial moment in Overwatch history that we've only really alluded to before: exposure of Blackwatch, the rift between McCree and Reyes, and how Reyes goes from being a key member of Overwatch to the antagonist we now know as Reaper. The story was there, and the Blackwatch characters were there. And crucially, the flow of the mission—this extended street fight where you're trying to escape a city while all these enemies are trying to kill you—was there, too. That said, we realized we'd put ourselves into a tough spot: the Blackwatch team was three offense characters and a single support.

In story terms, Blackwatch might make perfect sense; but in pure gameplay ones, three DPS characters plus a healer generally isn't an ideal composition for an Overwatch group. (You can just imagine hearing someone over voice chat going, 'where's the tank?!?!') But the story we wanted to tell, and the characters we wanted to tell it with, challenged us to think about our encounters differently.

A lot of Retribution was shaped by this constraint. If we had designed Story Mode with a tank in mind, we probably would have just thought, 'Oh, you can have the tank shield for you as you move up slowly, and then you hop in a corner and shoot from there.' But with mostly DPS characters, we knew players would want to spend most of their time running around killing stuff, not hiding in a corner. Our job was clear: since we had so many offense heroes, we had to make extra sure that the enemies we designed were fun to kill.

Learning to Take a Rocket Punch

Here's the thing about AI: at the end of the day, it's really just there to put on a show for you. Take the Talon assassin we built for Retribution. We wanted to make an enemy who was scary, distracting, and disorienting. So we decided to make a character that quickly jumps from wall to wall and forces you to constantly look around everywhere, just like in a horror movie. Then, when she jumps off the wall, she chases you down . . . and if she catches you, she pins you to the ground as you watch her stab you in the face.

That looks and feels really cool, but you wouldn't look at the assassin and think it's being controlled by a sentient being—and that's OK. It's fun to have something that does all those dramatic horror-movie things, and that's something we had to consider when determining how 'smart' to make our co-op enemy AI.

The Overwatch team designed a few new enemy types for the Retribution event. The assassin clings to walls and pounces

We also faced some unique challenges bringing 27 heroes designed for PvP into a PvE scenario, which led us to custom-tailor some things along the way. We had to change the way the assassin reacts to Pharah since she can fly, for example. The first day we tried playtesting with Sombra, I tried to hack the assassin and nothing happened. Obviously, something cool should happen. Ultimately, we decided that Sombra's Hack ability should have different effects on all the different types of bad guys. Against the assassin, it makes her stall out when she's up on the wall and fall to the ground.

We made a ton of small but very deliberate choices like that in Retribution. As a designer, it's easy to have mixed feelings talking about this kind of stuff—it sort of feels like you're revealing a magic trick. Even when a moment is engineered, we want players want to feel like they discovered something on their own, because that's when you feel the most badass—most like a hero.

Sometimes that means intentionally programming the enemies to not be too ruthless. Imagine if you're playing Doomfist, and every time you charge someone with your Rocket Punch, the AI immediately jumps out of the way. Or imagine playing Genji and having that chain-gun-toting soldier stop shooting as soon as you put up Deflect. We could program AI to behave more like real, clever players, but where's the fun in that? Sometimes we tell the Talon sniper, 'No, finish the shot!' because Genji is going to feel awesome when he one-shots that sniper with a reflected headshot. A 'smart' AI foe would stop shooting and take cover the second you enter Wraith mode as Reyes—but just like with Genji's Deflect, it's more fun if the enemies keep shooting, because having all those bullets fly by your head makes the 'street level view' of the fight more harried, frenetic, exciting.

I can go on with more examples, and don't get me wrong: we understand that these kinds of moments happen in Overwatch's PvP all the time. When your Genji deflects a full Roadhog ult, for instance, we know that's going to feel absolutely incredible as the Genji player. But those kinds of sudden, crazy spikes tend not to happen as much when there are two human players, unless there's a significant disparity in skill levels or an elaborate coordination of team strategy. Trapping the whole enemy team in the middle of an open courtyard right as your McCree pops his Deadeye ultimate feels incredible, and I've definitely seen some quality Plays of the Game like that. But are you going to accomplish that in every PvP game?

The AI was programmed to act differently according to which heroes the players selected. They'll panic when McCree ults

That's the thing with AI bots; we can always let you wipe the floor with them, because at the end of the day, we can just make more. So in Retribution, when McCree goes into High Noon, we have the AI bots play some panicked animations so they look like they're ducking into safety, but they're not going to suddenly all disappear the way they could if we'd made them smarter. We intentionally let you do stuff like this that will make you feel like a hero.

Mission Objective: Replayability

It was important to us when developing Overwatch's enemy AI that players could easily understand what exactly the AI is doing, so they could predict how it's going to continue to act. Seeing the assassins or snipers in Retribution, for instance, it doesn't take you very long to figure out what either of their tactics are. That said, there's a very fine line between setting up these moments that let you feel like a total badass and making the gameplay too easy or repetitive. It's definitely no fun if you miss every deflected shot, but effortlessly nailing it every single time isn't great, either. Part of our goal in making Retribution feel more dynamic than the other PvE experiences was to make it more replayable, too—so this was another challenge we had to confront.

In Uprising, you can mix things up by bringing a new set of heroes, but the mission itself remains largely the same. In Retribution, we wanted to take things another step further by introducing more layers of variance. For us, it was more about creating as many fun—and different—puzzle pieces as possible.

They could've programmed the special sniper to not fire at Genji when he's reflecting, but it would remove some of the fun

For example, on Normal mode, you might just encounter a Talon sniper on its own. If you've already played through the Story Mode, you probably know what to expect: they'll go up high, try to find cover, and headshot you from far away. And you probably have a good idea of how to handle it.

But when we increase the difficulty, we add another piece to the puzzle—now, you might run into a sniper and an assassin. You could end up in a situation where you think you're safe, but as you're running for cover away from a sniper, the assassin pounces on you, putting you right back in the line of fire.

With so many possible configurations of enemies and situations—and so many different combinations of heroes to deal with them—we hope that your 15th time playing Retribution is just as much fun as your first.

We've been playing it for three months now, and we still play it daily on Legendary difficulty in All Heroes Mode. We're all pretty excited about how it turned out, and I can't wait to start thinking of how we can make things even better the next time we have an opportunity to bring another co-op experience your way.