About Redfall
Redfall is an open-world, co-op (up to four players) FPS from Arkane Austin, the award-winning team behind Prey and Dishonored. Continuing Arkane’s legacy of carefully crafted worlds and immersive sims, Redfall brings the studio’s signature gameplay to this story-driven action shooter.
The island town of Redfall, Massachusetts, is under siege by a legion of vampires who have blocked out the sun and cut the citizens off from the outside world. Explore the open world and immerse yourself in a deep story campaign as you unravel the mystery behind the vampires’ appearance. Ally with a handful of survivors against the creatures threatening to bleed the town dry.
The island town of Redfall, Massachusetts, is under siege by a legion of vampires who have blocked out the sun and cut the citizens off from the outside world. Explore the open world and immerse yourself in a deep story campaign as you unravel the mystery behind the vampires’ appearance. Ally with a handful of survivors against the creatures threatening to bleed the town dry.
Development Information
- Time on project: 2 years, Jun 2022 - May 2024
- Role: Level Designer, promoted to Senior Level Designer after a year
- Engine: Unreal Development Kit 4
- Platforms: Microsoft Windows, Xbox Series X and S
- Genre tags: Open world, Online co-op, Multiplayer, RPG, FPS, Narrative, Action
My Responsibilities
- Produce the level design documentation of owned maps, including mission’s intentions and high-level concepts
- Create the level layouts (simplified level geometry / whitebox) in collaboration with the level artists and architects
- Implement gameplay events into the maps (enemies encounters, narrative scenes, maps objectives, etc..) by using specialized tools (world editor, scripting system...)
- Make sure owned map is compliant with the technical constraints and check on a regular basis if owned map is functional on all platforms
- Work closely with the art department and collaborate with all game development disciplines all along the map's iterations
- Attend content reviews and iterate on designs and implementation based on provided feedback
- Analyze and fix level design bugs
Notable Contributions
- Joined the team one year prior to shipping Redfall, rapidly ramping up on existing content and pipelines
- Immediately took on large scope performance and quality refinements in two open world zones to support AI behavior in an online multiplayer context, including enemy placement, patrols, vampire perches, cover, and navigation
- Owned the final mission and boss fight (The Black Sun) from Alpha stage through to post launch support, including writing custom scripting for enemy encounters to better accommodate the unique level design and experience goals of the boss fight
- Collaborated with all departments across multiple time zones in a mostly remote environment
- Owned, designed, and implemented new unreleased feature related to procedural content
Work Examples
The Black Sun
|
"It's nearly over. The Hollow Man, Bloody Tom, and Miss Whisper are all defeated and only the Black Sun remains. You have her remnant, given to you by her tortured brother, Charles. Go to the ruins of Aevum's former headquarters and defeat the Black Sun."
The Black Sun is the final mission of Redfall as well as the final boss. Players leave behind the open world map of Burial Point to enter a psychic space created from the ruins of Aevum's old headquarters. Once inside the boss arena, players work to weaken the shield protecting the Black Sun while fending off her minions. With her defeat, the eclipse covering the sun dissolves and Redfall is freed from the tyranny of the vampires. |
Design Overview
- When players choose to confront the final boss, they teleport to a safe space separate from the rest of the boss arena. This gives them time to get their bearings and have a safe place to respawn away from the action if they die.
- Players encounter a last piece of story content in the form of a Psychic Echo- showing how Black Sun and the other bosses had killed the Gateway to power their ascension into vampire gods. This answers some final questions as well as giving the players clear narrative motivation for removing the Black Sun.
- The Black Sun herself is initially invulnerable as she is protected by a shield. She periodically taunts the players and throws projectiles at them.
- To remove the shield, three tethers have to be disconnected from the shield in sequence, revealing a part of the blocked sun, and moving the player through the islands. A group of minions guards each of the islands as well as a few special vampires. In addition, a special Rook vampire called the Totality defends the tether with lightning until the players damage him enough. He teleports to the next island after losing about 30% of his health before finally dying on island C.
- Island A has a Shroud that obscures the players' vision and tunnels through the ground. This island is a confusing series of passages and sudden drops that will cause players to fall to their death if they panic.
- Island B has an Angler that is at the back of the island on a set of elevated platforms. If she manages to grab a player and drag them to her, the player will likely be dropped into the puddle of death mist below.
- Finally, Island C has a Siphon that attempts to drain a player's life as long as he has line of sight. Fortunately, there are many columns and other geometry that players can use to interrupt his attack and close the distance.
- When the players disconnect the last tether at Island C, the Black Sun falls to the ground, vulnerable. Staking this last vampire removes the final piece of the eclipse blocking the sun, and players leave the boss arena through a magically appearing doorway.
Problems and Solutions During Development
Overall Combat Tuning
When I first took over ownership of this level, islands A, B, and C were all available from the start of the boss fight.
Advantages to this method:
After much playtesting and iterating on enemy compositions and placement, I decided that the best way to solve these problems was to lead the player through the same sequence of combat every time, so that we could stage the vampire locations and difficulty more easily. Unfortunately, the boss arena is wide open with very few walls to block the players' path- particularly when they have teleportation powers! Since we were rapidly approaching our ship date, I made the decision that it was better for the gameplay to have the groups of enemies only spawn in when their island encounter activated and live with the slightly weird empty islands that were waiting for the fight to progress.
In order to communicate which island the players have to go to, only one of the three shield tethers is active at one time, as opposed to all active at once. This helped direct the players' attention where I wanted it and kept most players from wandering through the empty islands.
When I first took over ownership of this level, islands A, B, and C were all available from the start of the boss fight.
Advantages to this method:
- The player can choose which island to attack first, or take them all on at once if they really wanted to.
- Because of the different playstyles required to deal with each of the sub bosses, different players could experience different spikes in difficulty depending on which island they went to first. This was really hard to tune and balance for.
- If the player needed to back up to heal or reload, there was really no safe place to go back to, since the player had dropped into the arena from the respawn point and every other spot in the arena was controlled by vampires. Again, this was hard to tune and balance for.
After much playtesting and iterating on enemy compositions and placement, I decided that the best way to solve these problems was to lead the player through the same sequence of combat every time, so that we could stage the vampire locations and difficulty more easily. Unfortunately, the boss arena is wide open with very few walls to block the players' path- particularly when they have teleportation powers! Since we were rapidly approaching our ship date, I made the decision that it was better for the gameplay to have the groups of enemies only spawn in when their island encounter activated and live with the slightly weird empty islands that were waiting for the fight to progress.
In order to communicate which island the players have to go to, only one of the three shield tethers is active at one time, as opposed to all active at once. This helped direct the players' attention where I wanted it and kept most players from wandering through the empty islands.
Shield Tethers and Skipping Fights
I continued to have problems with difficulty during this boss fight, but this time a mechanic made the fight too easy! The script is set up so that the only thing it cares about, the only thing that can advance the stage of the boss fight, is disconnecting one of the tethers attached to the shield protecting the Black Sun. Unfortunately, this meant that players, particularly in multiplayer, could run straight to each tether and disconnect it before the enemies had a chance to kill them.
Initially I was against disallowing this "speedrun" strategy, but eventually realized that I should not allow players to optimize their way out of a fun boss fight. To solve this problem, I adjusted one of the Rook's mechanics.
In the open world, the Rook calls down red lightning as a regular part of his kit. The named Rook, called the Totality in the Black Sun boss fight, also does this but in a more bespoke way that bypasses the systemic lightning storm. The key part of this lightning strike ability was that it would always interrupt any player interact whenever it struck. So, to prevent players from being able to disconnect the shield tethers too soon, I adjusted the scripting and iterated until I found the right trigger volume size and the right delay between lightning strikes to prevent players ever being able to disconnect the tether while the Totality is still alive on that island.
I continued to have problems with difficulty during this boss fight, but this time a mechanic made the fight too easy! The script is set up so that the only thing it cares about, the only thing that can advance the stage of the boss fight, is disconnecting one of the tethers attached to the shield protecting the Black Sun. Unfortunately, this meant that players, particularly in multiplayer, could run straight to each tether and disconnect it before the enemies had a chance to kill them.
Initially I was against disallowing this "speedrun" strategy, but eventually realized that I should not allow players to optimize their way out of a fun boss fight. To solve this problem, I adjusted one of the Rook's mechanics.
In the open world, the Rook calls down red lightning as a regular part of his kit. The named Rook, called the Totality in the Black Sun boss fight, also does this but in a more bespoke way that bypasses the systemic lightning storm. The key part of this lightning strike ability was that it would always interrupt any player interact whenever it struck. So, to prevent players from being able to disconnect the shield tethers too soon, I adjusted the scripting and iterated until I found the right trigger volume size and the right delay between lightning strikes to prevent players ever being able to disconnect the tether while the Totality is still alive on that island.
Enemy Difficulty and Custom Leashing Scripting
Even after these massive changes, the difficulty was still too high. Players were now required to defeat the Rook on the island before they could detach the shield tether and continue the boss fight. Each of the islands had a full-health Rook- fighting a Rook three times on small islands without dying was really hard!
To fix this, instead of fighting three separate Rooks, the players fight one Rook three times for a third of his health each time. As a bonus, this also helped the sense of progression through the islands, and the feedback I got back was that it felt really good to finally defeat the Totality on the final island.
While the level of difficulty was much better, the response of most playtesters to a charging Rook is to back up (like they had probably done when they encountered a Rook in the open world). This meant that:
My first attempt to fix this was to use the leashing volumes that we already had access to and used in the open world. Unfortunately, because they were not made with constrained boss arenas in mind, the distances were either too short to keep the Rook from chasing the player or, (even worse!) the Rook would stop at the edge of is leashing volume and stare at the player like a gormless idiot while the player safely shot them out of melee range.
Ultimately I decided to write my own leashing script in Blueprint as a Macro. It tracked the Rook's health, position, tether volume, time outside the tether volume, where he should teleport back to, any voice lines he should play, invulnerability from player attacks during transport, removing enemy perception until he had finished teleport, etc. I later generalized this Macro even further so that it could be used on the other special bosses- the Shroud, Angler, and Siphon. Each had their own customized dialog lines, teleport points, etc. Luckily, all of the vampires already had some kind of teleport ability that was able to move them away cleanly even if the player was looking at them. The result is that if the Rook now stays too long outside of his volume, he teleports back to his starting position in a blast of red lightning.
Even after these massive changes, the difficulty was still too high. Players were now required to defeat the Rook on the island before they could detach the shield tether and continue the boss fight. Each of the islands had a full-health Rook- fighting a Rook three times on small islands without dying was really hard!
To fix this, instead of fighting three separate Rooks, the players fight one Rook three times for a third of his health each time. As a bonus, this also helped the sense of progression through the islands, and the feedback I got back was that it felt really good to finally defeat the Totality on the final island.
While the level of difficulty was much better, the response of most playtesters to a charging Rook is to back up (like they had probably done when they encountered a Rook in the open world). This meant that:
- Players were being pushed into parts of the arena that I did not want them to focus on (because they had no enemies)
- Skilled players could kite the Rook in circles around the entire map, which felt very silly to play
My first attempt to fix this was to use the leashing volumes that we already had access to and used in the open world. Unfortunately, because they were not made with constrained boss arenas in mind, the distances were either too short to keep the Rook from chasing the player or, (even worse!) the Rook would stop at the edge of is leashing volume and stare at the player like a gormless idiot while the player safely shot them out of melee range.
Ultimately I decided to write my own leashing script in Blueprint as a Macro. It tracked the Rook's health, position, tether volume, time outside the tether volume, where he should teleport back to, any voice lines he should play, invulnerability from player attacks during transport, removing enemy perception until he had finished teleport, etc. I later generalized this Macro even further so that it could be used on the other special bosses- the Shroud, Angler, and Siphon. Each had their own customized dialog lines, teleport points, etc. Luckily, all of the vampires already had some kind of teleport ability that was able to move them away cleanly even if the player was looking at them. The result is that if the Rook now stays too long outside of his volume, he teleports back to his starting position in a blast of red lightning.