Category Archives: Class Design

Classes I’ve shipped over the years (does not include bosses from unnanounced or unreleased projects)

Darksiders 4 Horsemen

I can’t meaningfully talk about this group as very little has been published about the game, so I’m mostly just leaving this post here to be replaced later, and to reflect that I’ve also worked on this type of class design. I took over these characters at a fairly early stage, and worked closely with animators to design and build most of their core kits.

Specifically, these characters are high fidelity third-person action combat characters, each with their own signature weapons, playstyles, and personalities. Unlike my work on Xadia, Darksiders combat lives in combo strings and what I like to call “state machine combat”, where each move is effectively a node and has transitions (based on button pressed, whether the button was held or delayed, etc) to other nodes (other moves). Other example games in this style would of course be Darksiders 1-3, but also God of War, Devil May Cry, Monster Hunter, so on.

Once more info is publicly available, I’ll update this post, but for now here’s the only media available, the announcement trailer:

Xadia Hero: Soren

Narratively, Soren was a skilled swordsman and captain of the guard, though also young and often in-over-his head, trying a little too hard to show off his skill and fumbling in the process.

Soren was an unfinished hero that I picked up and drove across the finish line, primarily adjusting his resource and his primary ability, along with smaller adjustments to the rest of his kit.

The most significant change and “A-ha!” moment was to change his primary ability, which empowered his next attack and gave brief Block frames, to have its usability refreshed every time his combo meter passed a marked threshold. This meant he had 1 free “you can block while attacking (and benefit from the empowered attack)” per X hits, and would waste it if you didn’t use it within those hits. This made his optimal play care a lot about when the enemy would hit, and exactly when you’d hit your next combo threshold (note: most empowered abilities had more hits, growing the combo meter faster).

Additionally, his ultimate was stronger based on what combo tier he was in, reset his combo meter, could be empowered itself, AND its hits counted for the new combo meter, to where a max combo empowered ult would hit enough to immediately grant another use of his primary ability. The original designer wanted Soren to be a combo fighter that really wanted to stay in the fight to get to max combo and hit a max-combo ultimate, and these changes really brought that to life in a dynamic way that could loop through a whole fight, where each loop was different based on enemy behavior.
– Note: His ultimate had no cooldown, it just required that he was at least into his second tier of his combo meter. But a Tier 2 ultimate wasn’t much stronger than a normal Ability, so it was mostly only useful for finishing fights or getting some extra AoE.

This desire to stay in and do fancy things, but getting punished when you mis-time the block by getting bonked on the head and dropping your combo — this really captured the “play like Soren” that we were driving for. All in all, he was intended to have a high skill ceiling that was really dynamic and rewarding to pull off, and we pulled that off! He was a blast to play in all content.

Here’s a video of Soren’s tooltips for his abilities, resource, and level-up bonuses

Here’s a video of Soren’s abilities in a controlled environment (training dummy)

Xadia Hero: Runaan

Narratively, Runaan is a masterful assassin and fighter, sporting a bow that can break apart into dual blades, and the ability to use his Moonshadow Elf powers to camouflage himself. He’s also Rayla’s caretaker and mentor.

Runaan was well-suited to be a hybrid DPS character with high skill expression.

All-in-all, the most critical decision I made in his kit was HOW he operates as a hybrid character. In particular, I made each mode generate resource for the other mode, his form switch to be an evade, and gave him reason to want to move around beyond just evading enemy attacks (e.g. if he has a tank on his team).

Namely, his arrow generation for his strong bow attack would spawn an arrow in a nearby location, close enough for him to evade into it. This meant that he would regularly be in melee form (where this resource is generated) -> spawn an arrow pickup nearby -> evade through it to grab it while simultaneously switching to bow form -> shoot the empowered arrows. Super stylish!

We had some initial worry that having resources for each form would be too complex (and they were especially daunting to explain in tooltip text), but he proved to be a player favorite internally and externally!

This video shows Runaan’s tooltips for his abilities, resource, and level-up passives

This video shows Runaan’s abilities in a controlled environment (training dummy)

This video shows Runaan against a miniboss (disclaimer: miniboss was WIP at the time)

Xadia Hero: Amaya

Amaya wasn’t my hero, I only touched her up at the end and designed/implemented her block mechanic (well, “the” block mechanic for all tanks). So really I’m just making this post to talk about tanks, defensive abilities, and how her resource works since that was my main contribution to her kit.

Amaya was the primary tank that players were given immediate access to, so we positioned her to be fairly straight-forward and provide a clear experience of what tanks bring to the table. Narratively, she was a leader in the army, fought with a massive shield, and was quick to deliver the beat-down.

For her resource, we mostly wanted to equally reward her aggression and successful defensive action, promoting that players learn to continuously attack between blocking, which was important for tanks for holding aggro. So for her resource, while keeping her straightforward, she builds up a meter to buff her shield, and once maxed, she can use any of her abilities immediately with empowered bonuses.

Defenses and Aggro

As part of the combat system design, I gave each role a different defensive ability, shared among members of that role. The game was designed to be played in solo, duo, or trio, with no healing role. The limitations of these defensive abilities, as well as other details like availability of staggering moves and other CC in kits, were a big part of how the game was “enjoyable in solo and unbalanced parties, but teammates with different strengths are appreciated”

  • Block (Tanks) – Blocking a hit drains stamina based on the amount of damage the hit would’ve dealt (post-mitigation). If you don’t have enough stamina to block the whole hit, the remainder is dealt to you with a flat % reduction for a “partial block.” However, if you block with perfect timing, you get a Perfect Block, and the hit is fully blocked without any stamina loss. It’s also a keyword, so abilities and items can trigger off of a Perfect Block. Elites and bosses also take some stagger damage when Perfect Blocked.
    • This promotes active tanking and rewards players for learning the precise timing of enemy attacks, in some cases leading to a sort of rhythm game to perfect block combo attacks.
    • It also prevents players from simply holding block on high-difficulty content, as they’ll run out of stamina and start taking damage. But against low-difficulty content, they can pretty safely hide behind their shield and take it slowly, as lighter hits won’t break through stamina or tank sturdiness behind partial blocks.
  • Dodge (Melee DPS) – Dodge in the desired direction. Has iframes, costs a large chunk of stamina per use. Players have directional control for the last portion of the animation, after the iframes have ended. Stamina recovers relatively quickly.
    • This provided melee dps with a pretty regularly usable defensive option, but with limitations to prevent spam-dodging, a slightly strict iframe window, and of course downtime where they aren’t doing damage, wasting cooldown time, etc.
  • Backstep (Ranged DPS) – Dodge away from the current facing direction. Has iframes, costs a large(r) chunk of stamina per use. Players don’t have directional control during the last portion of the animation. Stamina recovers slightly more slowly than for Dodge.
    • This gives ranged dps an easy way to kite, and skilled players can basically “aim backwards” (or sideways) to do advanced backsteps towards the target or sideways. For newer players, it helps teach kiting. Overall, it provides a defensive measure that’s slightly more restricted and less flexible, balancing out ranged capabilities of killing enemies before they pose an active threat.

I’ll probably strip that out and make a combat systems design section on the portfolio, but for now it’ll live here. Here’s a video of Amaya’s tooltips

And here’s a video of Amaya’s abilities in a controlled environment (training dummy)

And here’s a video of Amaya in a mission, albeit solo. Tanks were balanced to support solo play well, as their “training dummy DPS” was nearly 70% of the DPS of others, but in a solo scenario, other classes are losing DPS uptime during dodges moreso than tanks are losing DPS from blocking. (Though highly skilled DPS players will minimize that uptime loss by clever use of abilities and CC)

Xadia Hero: Janai

Narratively, Janai was a leader of the sunfire elves. She’s a skilled swordsman, but could tap into her sunfire elf powers to ignite fire in her veins and gain incredible physical power. She wields a special sword crafted by the sunfire elves that can retain incredible heat and cut through steel.

I positioned her as a mid-difficulty melee dps, embodying skilled swordsmanship by utilizing well-timed counterattacks to evade incoming hits, and, when successful, building great heat in her sword and dealing high damage in a countering sweep. She could dispense the heat built up in her sword to deal high damage in an area around her, and build up her inner fury, eventually earning an ultimate. Her ultimate transformed her to her berserker-esque rage, where she alternates between left-and-right punches to decimate enemies, and ends by jumping into the sky and slamming down with a massive eruption.

Between cooldowns with charges, resources being bankable, counterattacks being timed to enemy attacks, and the duration and power of her ult, she had a really situationally dynamic playstyle that kept her really engaging with really low complexity.

This video shows Janai’s tooltips for her abilities, resource, and level-up bonuses.

This video shows Janai’s abilities in a controlled environment (training dummy). Note that her counterattack ability is used when the training dummy attacks

Xadia Hero: Claudia

Continuing with Dark Magic characters, Claudia is Viren’s daughter, a mage that’s been doing Dark Magic since she was quite young and carries a bunch of spell reagents with her in her purse. She’s quite resourceful, has a fairly playful attitude, and wasn’t as canonically villainous as her father (but still a Dark Magic user and aligned with Viren’s faction).

Given her narrative resourcefulness, I positioned her to be the most complex caster. As part of “playing like Claudia,” I wanted players to come to learn what each Dark Magic reagent would do, and play accordingly.

I designed her to have a pseudo-random reagent chosen, which would modify what her primary damage ability did. This was shown to the player with a Tetris-like UI of showing what the current reagent is, and what the upcoming one(s) will be. Additionally, her ultimate was to empower her next reagent, further rewarding players for understanding optimal reagent use and planning out their uses. That ultimate had no cooldown, but caused Corruption, so its usage was quite dynamic and up to the player to balance out.

Beyond that core mechanic, she had solid combos (e.g. “Put poison pool on the ground -> root them in it”), and had one rarely-appearing reagent that served as a sort of “ultimate reagent” so she still had big exciting power spike moments beyond her more regular reagent empowerment.

This video shows Claudia’s tooltips for her abilities, resource, and level-up bonuses

This video shows Claudia’s abilities in a controlled environment (training dummy)

Xadia Hero: Viren

Narratively, Viren is one of the premier villains, pushing war against the elves, capturing souls into golden coins, and using corrupting Dark Magic which sacrifices the life force of other beings to fuel great power.

In making this character, I wanted players to feel villainous and overpowered (while being balanced). To accomplish this, I designed the character around regularly-occurring massive power spikes as his premier damage source, balanced out by downtime that supports his theme of draining the life essence from his enemies.

Additionally, I tied his soul coins into his kit as a powerup that lasts the rest of the mission. The powerup modifies his resource management for the rest of the match, as it allows him to get to max resource significantly faster, but going mad with max-energy lightning strikes is dangerously corrupting.

Speaking of corruption, Viren wasn’t the only Dark Magic character. I designed Corruption to be a resource used by each Dark Magic character, while fitting the narrative implications of Corruption. Narratively, using Dark Magic for the first time was quite harmful and disorienting to the user, but afterwards they were more attuned to it and could use Dark Magic quite freely unless they went overboard. Designing around this, powerful Dark Magic abilities would cause a fixed amount of Corruption based on their power. Corrupting abilities used at Low Corruption would cause a self-slow, at Mid Corruption they’d benefit from a damage bonus, and at High Corruption they’d still benefit from the damage bonus but would inflict self-damage based on how corrupting the ability is. Corruption wore off over time when not gained recently, and some abilities could decrease it directly.

This allowed Dark Magic characters to categorically follow the narrative around Dark Magic where their abilities are especially powerful, but must be mediated due to risk to the user. However, unlike cooldowns, the resource puts that mediation in the players’ hands, allowing them to take damage to rip back-to-back powerful spells if they deem it worth it.

This video shows Viren’s tooltips for his abilities, resource, and level-up bonuses

This video shows Viren’s abilities in a controlled environment (training dummy)

Xadia Hero: Rayla

Rayla was designed to be the go-to character for new players, even used as the tutorial character. We anticipated that players less familiar with ARPGs would stick to Rayla for a while before branching out to other heroes.

Narratively, Rayla is trained as an assassin but had closer to the heart of a warrior, often fighting more directly and canonically choosing not to kill her targets when she didn’t agree with the cause.

Given the above, I designed her to have:

  • Very low difficulty, especially early on
  • High satisfaction even just mashing basic attack with, but every other button press was designed to be a “I’m glad I hit that” spike (even when used suboptimally) to help newer gamers get engaged with core kit mechanics
  • The simplest resource, the common simple “energy” resource that auto-generates at reasonably high speed and starts full
  • A generically strong ultimate, great for both AoE and single target

This video shows her tooltips, resources, and level-up bonuses

This video shows her abilities in a controlled environment (training dummies)

This video shows an example of playing her in a mission

Xadia Hero: Karim

Karim was my first hero on the project, and an initial proof of the value of simple, unique resources that tie kits and abilities together.

Narratively, Karim was a villain character, a historian, an arrogant fire mage that wanted to destroy relations between elves and humans due to his hatred for humans.

Given the above and as a fire mage, I positioned him as a relatively low-difficulty character to see initial success with, with some strong combos and rewarding skill checks to drive deeper engagement as players stick with him.

This video shows all of his ability tooltips, as well as his core resource and the passives he unlocks as he levels up.

This video shows his abilities in use in a controlled environment (training dummy).

This video shows some normal mission gameplay with him. This is a mini mission so it’s just a few enemies and a miniboss