Evercore Heroes: Ascension

Evercore Heroes: Ascension is a roster-based co-op focused roguelike game where 1-3 players team up to progress through islands filled with enemies and objectives in search of rewards and upgrades. Players fight through several islands, each with their own objectives, enemy compositions and layouts. At the end of each island, players are given a reward and then 1-2 teleporters activate which are marked with the reward type of the next island. After completing enough islands, players must fight through a boss battle after which they are given account rewards which allow them to purchase extra characters.

I worked on a broad range of features over the course of the project from characters, biomes, enemies, bosses, rewards and more. I’ll cover some of the highlights of my work below.

Characters:

When Evercore Heroes shifted direction into a roguelike, many of the roster characters needed to be reworked in order to fit into the new game. While on the surface, many of the characters could neatly port over to the new game, there were several design considerations that needed to be made such as:

  • Roguelikes typically have health be a resource that players have to carefully manage throughout a session. There is often a lack of natural healing in roguelikes and sometimes a cost and/or risk associated with regaining health. How do we bring a healer role into a game where a lack of healing options creates tension and engaging gameplay?
  • Roguelikes tend to give players simple, limited combat kits in the beginning that are made more complex and enjoyable as the player gains rewards and customises their build to their liking over a session. The playable characters in the original Evercore Heroes have often very complicated kits with unique passives, skill varieties and sometimes bar swaps that changed their entire kits. How do we simplify these kits so that they are still satifying to play at a base level while leaving room for rewards to amplify them in unique and fun ways?

These are just some of the questions we had to ask ourselves and I think a good rework to use as an example is Beko, our cute little support character that is always a fan favourite.

Beko was one of our first reworks from the original Evercore Heroes. He was intended to be a support that could be picked up by anyone and could reliably keep a team topped off while offering interesting ways to heal team mates that offered some depth. Beko players had fun itemisation options due to the character’s innate high healing which allowed players to either further invest in support shards for ultimate protection or throw caution to the wind and build damage to become a tiny wrecking ball that kept his team alive. Below is Beko’s old kit summarised:

  • Passive: Each time Beko used an auto attack, there is a chance that he’ll enter a clearcasting state, removing the cast time and mana cost of his next spell.
  • Q: Beko channels for 1 second before giving the targeted player an instant heal and a heal over time.
  • W: Beko grants the targeted player a heal over time. If the player already had one or more heal over times active, they are consumed and the target is instantly healed for 120% of the remaining heals.
  • E: Beko can target either an ally or an enemy to apply an effect:
    • Allies are cleansed of any negative effects.
    • Enemies become confused and attack nearby targets randomly, including other enemies.
  • R: Beko drops an effigy of life that grants a massive heal every 1 second to allies in the area of effect.

As you can see, the kit is very focused on healing which made it an interesting kit to port into a roguelike setting. When designing the rework, I needed to ensure that the kit would not trivialise content by having too much healing or allow players to easily cheese the game. This is ultimately the design we ended up moving forward with:

  • Passive: Beko carries a lantern with him that grants the following effects to the holder:
    • When held by Beko, increase his basic attack damage by a small amount.
    • When held by Beko or allies, whenever an enemy dies, a wisp spawns on that enemy and travels to the lantern holder, healing them on contact.
  • Ability 1: Target yourself or an ally to move the lantern to the target.
  • Ability 2: Apply a heal over time to the lantern holder.
  • Ability 3: Hold-to-charge to power up the lantern and emit a shockwave that knocks enemies back. If held for 2+ seconds, the knockback is much stronger.
  • Ultimate: Drop an effigy that heals allies in the area every 0.5 seconds.

The thinking behind these changes is to reduce the overall healing output of the character to fit the genre swap while also creating a more fun and engaging gameplay loop of bouncing the lantern between allies to heal and protect them by knocking enemies back. I also wanted to avoid situations where Beko players just left the lantern on the Tank all the time so I added the passive which gives Beko more damage while the lantern is on them. Ultimately, this kit wound up being a very positive change to Beko and transferred seemlessly into the new roguelike gameplay.

Rewards:

Throughout my time working on Evercore Heroes: Ascension, I have worked on many different types of rewards. Players can earn currencies to purchase powers that can be equipped before going into a session and there are also rewards found throughout a player’s session. The reward types that players can find during their session are as follows:

  • Soulbound Blooms: Character specific upgrades that usually amplify individual ability effects, grant max HP or Luum (Evercore’s version of Mana) or alter the behaviour of a character’s dash by granting more travel distance or reducing the cooldown.
  • Shards: Evercore’s items which grant unique effects, stats, ability interactions and sometimes activatable effects. The following categories are in-game with more in the works:
    • Flame: Apply short-duration, high damage burns to enemies, amplify skill damage and give players explosive effects against burning enemies.
    • Wild: Apply and spread stackable, long duration poisons and make them apply crippling effects. Also contains some healing, nature themed effects like dropping healing flowers, allowing healing effects to chain or summoning a bug to attack poisoned targets.
    • Invention: Gain access to Overshield which acts as temporary bonus health to mitigate incoming damage. This category also contains a number of deployable and activatable gadgets and ways of turning your Overshield into damage.
    • Fury: Amplify your basic attacks by increasing overall damage and giving players ways of gaining survivability and other alterations to support a basic attack playstyle. This category is also aimed at increasing overall damage and has shards that support damaging playstyles for non-damage roles for example, increasing damage when hit for Tanks or dealing high damage around a healed target for Supports.
    • Mischief: Gain access to random effects such as critical hits or chance-on-hit effects. Also contains a whole host of other cheeky effects like blowing up enemies you kill, causing chain reactions and dropping distracting deployables to distract enemies.
  • Gold: These are often performance based, meaning players will do a timed objective on that island and gain gold based on how well they do. There is also a small chance to land on a Gold Chomper island which spawns fleeing gold-hoarding lizards that must be hunted down before they escape and before the timer runs out.
  • Core Keys/Gems: Currencies that are used to purchase and upgrade power-ups at the hub that can be chosen before a session starts.
  • Healing Shrines: These are only seen in solo runs and allows players to choose between getting further rewards or entering a safe island with a healing shrine that will restore them to full HP.
  • Shop: Enter a safe island with a shop where players can spend their gold for shards, some of which are unique shards that can only be purchased.


I worked closely with leadership to design reward categories and once designed, I set up a range of base classes that covered many of the triggers and potential effects that we would want. This enabled other team members to rapidly create shards without needing to do too much complicated blueprint work. For example, one of these base classes I developed was an ability that would trigger when skill damage was applied:

  • We use the Gameplay Ability System to handle player and enemy abilities, attributes and effect application. We use a Gameplay Effect Execution Calculation (we refer to these as a GEX) to apply damage and I set up a base class for Ability Damage which player abilities use for damage application. This GEX also allows us to trigger events on the source and target ability system components to detect when ability damage is dealt or received.
  • I then created a Gameplay Ability that is used as a base class and is triggered when the event for Ability Damage Dealt is fired on the player’s ability system component.
  • This ability is able to pull out the target of the damage as well as the calculated damage value from the event data which we can then use for different purposes.
  • I set up an Enum that allows team users to choose between the following targeting styles:
    • Self: Apply an effect to the player.
    • Single Target: Apply an effect to the target in supplied in the event data.
    • AOE: Apply effects to targets in an area of effect around the target.
  • I then created variables to support the above behaviours and categorised them where needed. For instance, “Gameplay Effect To Apply” would apply to all of the above targeting styles however, “AOE Radius” or “Target Filters” would only apply to the AOE targeting and would be categorised as such.
  • I made sure to create events that could be overridden for behaviours like applying effects or targeting so this could be altered in more niche cases but the default behaviour would cover the majority of basic “On Ability Damage” shard effects.
  • I also set up a Gameplay Cue and a variable containing the associated tag so users would have a some default visuals and audio for testing that could be easily swapped out by changing the tag and setting up their own Gameplay Cue.
  • Lastly, I also set up a projectile version of all of the above behaviour which would have the effects be delivered via projectiles when ability damage was applied. For instance, if we wanted to deal damage in an AOE around a target but wanted to deliver it as spikes that erupted out of the target, that could also be easily set up by users by tweaking the class defaults.

I set up base classes much like the above for:

  • Basic Attack Damage
  • Healing Applied
  • Damage Received
  • Dash:
    • Dash Used: Includes start and end locations as target data in the event data as well as all enemies that were dashed through to apply effects.
    • Dash Started: Do something at the starting location of a dash.
    • Dash Ended: Do something at the end of the dash.

Overall, these classes allowed other team members to rapidly set up working shards for each shard category and contributed heavily to the successful delivery of our reward system in a timely manner.

Biomes:

In Evercore Heroes: Ascention, we have multiple biomes that players need to traverse through on their adventure. These include:

  • Ironcrag Hollow: Standard biome designed to be easier without any unique hazards or mechanics while players power-up.
  • Shiverforge Mines: A crystal-themed biome with a number of hazards and colour-coded enemy variants with unique mechanics.
  • Stormspire Summit: An icy biome with enemy variants whose attacks slow and freeze players.

Ironcrag Hollow does not have any biome-specific mechanics but I’ll cover the other two biome’s unique aspects below:

  • Shiverforge Mines:
    • There are enemies and hazards on the maps which are colour coded to indicate what they will do to players. The colours are as follows:
      • Red: Deals high damage.
      • Amber: Targets move and attack faster.
      • Purple: Applies breach, causing the target to deal more damage.
    • Crystal pillars can be found in many of maps which, when destroyed, will cause crystals to fall from the ceiling and shatter on the ground. The colour of the crystal denotes what happens when the crystal shatters:
      • Red: Drops red crystals deal much higher damage on impact.
      • Amber: Drops amber crystals which leave a frenzy fog on the floor that increases the movement speed and attack speed of players and enemies in the area.
      • Purple: Drops purple crystals which leave a Breach pool on the floor that causes players and enemies in the pool to take more damage.
      • Prism: Drops the above three crystals at random.
    • Enemies are also colour-coded and I’ll give a few examples of the variants below:
      • Red Roller: All attacks are quite slow but deal very high damage. If the player is breached or has taken damage on a low max HP character, these enemies can kill in 1 or 2 hits.
      • Amber Large Slasher Golem: Moves and attacks much faster. The standard version of this enemy also has an attack where it spins around and deals damage. The amber version spins faster.
      • Purple Shooter Golems: Can fire a triple shot that applies the Breach status effect to players.
    • Boss Fight: The final boss of Shiverforge Mines is a crystal-themed variant of our Troll boss from the previous game, named Thrashclaw. I’ve broken down the mechanics in more detail in the Enemy & Boss AI section below.
  • Stormspire Peak:
    • Frost Status Effect: A status effect which slows players each time it is applied and will freeze them in a block of ice after 6 stacks are applied. Enemies in this biome can apply this status with many of their attacks and can also drop patches of freezing fog, an area of swirling icy that rapidly applies stacks of frost over time.
    • Boss Fight: The final boss of Stormspire Summit is an icy version of Thrashclaw with some unique attacks that differs it from its crystal variant.

Enemy & Boss AI:

When starting work on Evercore Heroes: Ascension, we had a lot of enemies from the previous game which we ported over but there was still a lot of work to be done to get them into a working state. Very few enemies in the previous game made use of behaviour trees which we wanted to move towards, many enemy abilities would need to be updated to work in the new game and several new abilities were designed to add more depth to the combat. Not only that but we added several new biomes which required enemy variations which would change their behaviours and abilities.

I worked extensively on enemies in general but I’m going to highlight my work on our boss, Thrashclaw and his crystal variation. In the previous version of Evercore Heroes, Thrashclaw and his arena was designed as a competitive race against another team and as such, much of the challenge didn’t come from the boss himself, rather it was the pressure put on by the race to kill it first. Since this aspect of the game was gone, I made changes to the fight to increase the difficulty and make it feel more like a standalone challenge for players to overcome:

  • Boss Minions:
    • In the previous game, Thrashclaw would occasionally summon minions that would run towards the player and generally just die by AOE while killing the boss. We added a Luum orb drop to them so players could continue casting abilities consistently throughout the fight but since they ran into melee range slowly and died so fast, they were not actually a hazard and instead were more like a food delivery driver carrying resources to the player.
    • In order to make them an active hazard, I removed their melee attack and instead gave them a long range icy projectile which applies a stack of Frost.
    • This way, players would need to go out of their way to kill them to get their Luum orbs and if they are ignored, they’ll quickly ramp up in numbers and become a deadly firing squad.
    • To offset this new threat, I added another effect to the boss where if he were to walk over a minion or if they are hit by one of his attacks, he’ll instantly kill them, meaning players can now pull the boss around the arena over his minions or bait certain attacks to kill many minions at once.
  • Icy Rock Fall:
    • In the previous game, the boss would drop icy pillars from the ceiling to hurt players on impact.
    • In Ascension, we wanted to increase the lethality of this ability without just adding damage or increasing the AOE size.
    • In order to make this ability more interesting, I added an effect where these pillars fall and deal some damage but now also have a delayed AOE explosion that also leaves a large patch of freezing fog.
    • Since he drops several of these rocks in an area around him, players will either need to move him to an area of the arena where there is no fog to continue the fight or they will need to very carefully navigate the fog or risk getting frozen right next to the boss.

Ultimately, these changes lead to a much more engaging fight where players needed to think a lot more about not only their positioning, but also the boss’s to not get overwhelmed.

I also created a crystal biome variant of this boss which had a number of interesting changes compared to his icy counterpart. This boss does not have ice-themed attacks and instead makes use of the crystal status effects seen previously in the Shiverforge levels. His moveset differs in the following ways:

  • Boss Minions: His minions follow the same design as the icy variants however, instead of applying frost with their attacks, thety apply breach which can make the boss’s attacks much more dangerous.
  • Rather than making icy pillars fall from the ceiling, this version of Thrashclaw causes crystals to fall much like the breakable crystal pillars throughout the Shiverforge islands. This means that instead of the arena being littered with freezing fog, it is instead covered in frenzy clouds and breach pools which the player can use but they need to be careful as the same rules that apply to the boss also apply to players.
  • The largest change was the boss’s eye laser attack. The Stormspire Summit version of Thrashclaw has a sweeping eyebeam attack which deals high damage to players caught in it but I wanted the Shiverforge Mines version to have a more unique version of this attack which would play around with the idea of light dispersion and be a more interesting attack for players to play against. The end result was an attack that begins with a stomp which causes a larger, prismatic crystal to fall from the ceiling and Thrashclaw then fires his eye laser directly into it. After a delay, this causes 6 lasers of different colours (red, purple & amber) to emit from the crystal in a circle. The lasers then begin to spin around and gain speed as the attack goes on, meaning players need to move in specific patterns or dodge carefully to not get caught by the lasers.