Control Core Angel: Introducing Angel
Hello, it’s me again, Keith Schuler, a Senior Designer on Borderlands 2. For today’s edition of Inside the Box, I wanted to talk a little bit about Angel’s introduction in Control Core Angel. By the way, while my articles are often a minefield of spoilers, I wanted to offer an extra cautionary note this time. If you haven’t played through Control Core Angel yet, there are some serious spoilers here. You have been warned!
Paul Hellquist and Anthony Burch had some big goals in mind for Where Angels Fear to Tread. One of these was to reveal Angel as a human being rather than the AI she’d spent the entire game purporting to be. Another goal was to firmly cement in the players’ minds that Jack was an evil jerk.
Gearbox hasn’t fully explored what it means to be a Siren in the Borderlands universe, but we know that they’re rare and powerful. We also assumed that Jack had some sort of “secret weapon”, in order to have risen to the prominence that he did. A Siren in his pocket would’ve given him a great advantage, so one of the ways we demonstrated Jack’s evil was through his treatment of Angel. If his Siren prisoner also happened to be his daughter, then we have a nice explanation for how she came into his possession, and what could be more evil than to allow greed and narcissism to override paternal instinct?
So, Angel’s Chamber was imagined as the type of place that Jack would have built, both to protect a key asset and to exploit her abilities to the fullest. As soon as her powers manifested, Jack probably locked Angel away in this high-tech version of Rapunzel’s tower, there to grow up as a slave to his ambition, all while telling her (and himself) that it was for the greater good.
Our original plan was that Angel, with her “Phase Shift” Siren ability, could make her environment appear however she wanted. When the players entered Control Core Angel for the first time, it would look like a normal environment, possibly as a child’s nursery in a mansion, or as a scientific research facility. Angel would meet the players face-to-face for the first time in a situation that was almost surreal in its normalcy. Then, Angel would be snatched away, which shattered the illusion and revealed the true nature of herself and her captivity. Hopefully, this would give the player a surprising moment of revelation.
Early concept sketches of the players meeting Angel, before she is suddenly snatched away.
Where we finally landed was almost the opposite of that. The players start in a high-tech, sci-fi environment, and Angel makes it dissolve before the players eyes, to reveal a sort of “ethereal realm.”
The player meets Angel in a weird, ethereal environment.
Leaving the Player in Control
We knew Angel’s introduction would have the most impact if we made it happen while the player was still in control. In cutscenes, game developers can make practically anything happen, but that freedom typically comes at the expense of player agency. The player isn’t playing a game anymore; they’re watching a movie. This may frustrate them, since a movie isn’t what they signed up for.
Leaving the player in control presents designers with a challenge, though, because you guys can be pretty unpredictable. Game designers have to assume that at any given moment, a player could choose to do the worst possible thing. It’s cool– you’re totally the boss and the game is yours to enjoy however you wish. But, that means the scripting needs to be solid enough that players can’t break the game, whether intentionally or not. We don’t want to annoy the player who doesn’t care about the story, and we also don’t want the player who does care to accidentally miss an important plot point. So, for Angel’s intro, we tried something similar to what we did with Sanctuary taking flight: we temporarily trapped the player in a small area, but otherwise gave them total freedom to move about and do what they wanted, even if that meant they were staring at the UI or dueling each other.
This “corral” in Angel’s chamber was originally planned to be that nursery or house interior I described above. Angel would introduce herself and carry the narrative forward while the player was trapped in a small room with her, and then the walls of the nursery would disappear with a dazzling effect, leaving the player standing in the larger chamber where the battle would take place.
Unfortunately, that plan required a lot of artist resources to create assets that would ultimately be used only once, and very briefly at that. During prototyping, we also discovered that building a “fake” room within a larger “real” room caused problems with static lighting, collision, and AI navigation. These were problems I wasn’t sure I could solve in the limited time I had available. In addition, I realized that I needed to include a safe area outside of the main combat space for players to spawn in, in case they died or late-joined the game.
To deal with these problems, we deviated from the original plan. We added an antechamber built from simple, reusable wall assets. It would connect to the main chamber, and serve the dual purpose of trapping the players during the narrative moment, and also as a safe player spawn area. Unfortunately, this change meant that we could no longer have the room dissolve away to reveal the player standing in the main chamber. But, we thought there might be a way to have a similar moment by dissolving the antechamber to introduce Angel in an ethereal environment. Technical artist Ryan Smith created some amazing material effects that proved the idea could work.
The antechamber, dissolving away.
The Teleport You (Hopefully) Never Noticed
The addition of the antechamber presented a new problem. The “ethereal world” for Angel’s introduction was inside of a giant sphere with several effects projected onto it. It took up quite a lot of space in the world, and that space couldn’t intersect with the real chamber for the same reasons I mentioned above. Fortunately, I had a designer hack in mind to solve the issue.
The hack involved creating an exact duplicate of the antechamber, which was safely distant from the original. I added a switch, which the players would probably assume was supposed to open the door to Angel’s main chamber. What the switch actually does, though, is to teleport all of the players from the real antechamber to the duplicate. Once inside the duplicate, I could dissolve the antechamber walls to reveal the giant ethereal sphere. I didn’t want the players to know they had been teleported, though; I wanted them to feel like Angel’s Siren abilities were making the walls of the realantechamber dissolve.
To that end, programmer Jeff Broome kindly gave me a “relative” teleport feature. There is an invisible “anchor point” in the exact same position in both versions of the antechamber. Relative teleportation instantly moves the players from room to the other, while keeping their rotations and locations relative to the anchor point intact. If set up properly, the players would be completely unaware that they’d been teleported.
A top-down illustration of how relative teleportation works. The player is teleported from one identical room to the other using the same location and rotation relative to the anchor points. Hopefully, the player never notices.
I failed to anticipate a problem with this hack, though: the mini-map clearly showed the players that they had been moved. Fortunately, producer Matt Charles had a brilliant suggestion which solved the problem perfectly: the copy of the antechamber needed to be placed directly below the real one, and precisely aligned so that change in location was not obvious on the (thankfully) 2D mini-map.
Angel’s Title Card
By now, you may be remembering that there is a cutscene in the final game, and that it happens as soon as the room dissolves away. The players have mere seconds to enjoy their freedom before being locked into a cutscene anyway. That happens because even after we’d solved all the other problems with Angel’s introduction, still one more reared its ugly head, only this time it was a stylistic issue instead of a technical one.
Once the player’s excursion into Angel’s realm was implemented and being tested regularly, players were noticing something missing: every major character had gotten a cool intro moment and a title card, but not Angel. The omission was deliberate; Borderlands titles were always cool, upbeat, or funny, and we didn’t think that was the appropriate mood to set for a character that was about to ask you to kill her.
Even so, the omission was too obvious. At the moment when we didn’t need anything else distracting the player, the game didn’t feel right! So, with no production time left to create a Title Card cutscene for Angel, Brian Thomas was tasked with creating a Title Card cutscene for Angel. Fortunately, he’s a superhero and got it done with enough time left over to put out another hundred fires elsewhere on the project. On top of that, he understood the mood we were going for, and nailed it perfectly. Angel makes a cool entrance, but projects a sadness that it’s all come to this.
Fortunately, she’s still got a little more exposition after the cutscene ends, so the players still have some time to run around in the ethereal world, stretch their legs, and try to figure what player actions the designers might not have accounted for. So, our efforts to let the player stay in control during this narrative moment were not entirely for naught.
Back to the Real World
Getting players down to the fake antechamber is actually pretty easy, because everybody in the game can be teleported together. When the switch is pressed, a Kismet script checks whether all players are inside the same room with the switch. If they aren’t, a message is displayed and the switch doesn’t work. If all players are present, then they get teleported. In UnrealEd, the Kismet looks like this:
The first box (called an “action”) checks if players are in the room, the second action displays an error message if they aren’t, and the third action teleports them if they are. Easy peasy.
The return trip isn’t as simple. Remember that I didn’t want the players to know they were being teleported at all; I wanted everyone to feel like Angel was creating illusions with her Siren powers. So, I needed to use a relative teleport again, this time from the duplicate antechamber back to the real one. Since I was trying to maintain the illusion that there was no teleport, Angel needed to teleport right along with the players. The last thing I needed was for her to shift location relative to the players and reveal how the magic trick worked!
I couldn’t just teleport all of the players, though, because they could have done something unpredictable while in the ethereal realm. For example, players might’ve decided to test the invisible floor by firing rockets at their feet, or tried to impress Angel by staging a duel in her presence. If a player managed to die while in the ethereal realm, or if a new co-op player joined the game, then they had to spawn back up in the real antechamber. If I were to hit all players with a blanket relative teleport for the return trip, any players in the real antechamber (and therefore quite distant to the anchor point) would be transported outside of valid player space.
What was required wasn’t especially difficult; I just needed to test whether each individual player was in the ethereal realm before hitting them with the teleport. As a result, the Kismet is slightly more complicated than before, and looks like this:
The “Is In Volume” action tests whether each player is inside the volume before teleporting them. The apple icons are references to the two anchor points.
Once all of the players are back in the original antechamber, the introduction finishes with Angel getting dragged backwards into her enclosure. Angel and Jack speak a final bit of exposition, and then the combat kicks off.
To Be Continued…
I should’ve known better, but it looks like it’s going to take more than one article to cover everything I wanted to about Control Core Angel. I thought I might get to everything, but instead I only (almost literally) got my foot in the door. I guess I got a little carried away talking about player agency during narrative moments, and one of my favorite designer hacks, the relative teleport. So, I hope you’ll join me next time, when I go into how we kept players “alive and supplied” during the main battle. Thanks for reading!