All posts by admin

Xadia System: Enemy Progression

For enemy progression, I had a few core goals:

  • Players are able to feel that they’re stronger as they progress, through their interactions with enemies
    • Unlike, say, Remnant or Diablo 4, where enemies autoscale to your level
    • and ideally, even moreso than in games where you’re naturally always fighting enemies your level (even without autoscaling), which has a similar result to autoscaling
  • Enemies provide gameplay challenges to the player relative to their expected skill level
  • Players experience their progression through gameplay power, not just numbers (i.e. enemy level number and player damage number)

and some core constraints / considerations:

  • We didn’t have the staffing/resources to make very large amounts of enemy types
  • We’d been planning around level 20 as the max player level

The Design

What I landed on was as follows:

  • Most enemies have 3 level variants — level 1, 10, and 20
    • These variants were shown visually by color and accessory changes, aiming for a “similar but slightly more powerful” silhouette and no anim changes needed
  • Some enemies didn’t appear until later levels (and therefore didn’t need earlier variants)
    • Namely certain specialist and elite enemies, things that would provide an “oh crap what is this” experience that spices up progression
  • Beyond stats, later enemy variants would gain 1 move (i.e. 1 at lv10, another at lv20), or modification to an existing move
    • This mainly supported the 2nd goal, and let new players get comfortable against pretty simple enemies. It also kept the game more fresh as players progressed
  • Missions would exist as lv1, lv5, lv10, lv15, and lv20 missions. Lv5 and Lv15 missions would have a mix of enemy levels, e.g. a pack might have 3 lv1’s and a lv10
    • This let players really experience the disparity of “I’m really strong against the enemies that used to be even, but these new versions I’m seeing are really strong and scary”
    • and then as they got towards level 10 themselves, those lv10 enemies became very manageable. Really experiencing that power curve
  • And importantly, we held the line on NOT showing the enemy’s level in their UI. This kept players engaged with what they’re fighting visually, and improved the immersive feeling of getting stronger
    • It also prevented us from stopping short when the art variants weren’t quite different enough for players to notice
    • Ultimately, we might’ve been willing to take the cheaper route and let the UI do more of the work, but the game was action combat with active dodging and blocking based on watching enemy animations, so there was additional value in immersive, model-based approaches
  • We also allowed players into missions relatively early, e.g. you could do a lv10 mission as a lv7-or-so player (or earlier if using hand-me-down gear), allowing players to opt in to the amount of challenge they wanted

All in all, this worked really well, though balancing the damage/health of the player and enemies across progression was quite challenging, since this really relied on tight balancing for those lv5 and lv15 missions to have the right amount of “the lower level enemies are easy but not totally trivial, the higher level enemies are challenging but not a total slog and don’t just 1-shot me”, but if I tuned them too close together then the feeling of progression wasn’t strong enough. I had to push them as far apart as possible before becoming boring-ly trivial / demoralizing-ly difficult

Class Design Considerations

Detailing my thoughts for each move/resource/passive for each character would be way too much text so I’m writing one big blurb here about my general approach (albeit ever-evolving as I continue working and learning from new feedback), instead of trying to detail it out for each class I’ve worked on.

I’ll try to capture the main pieces and structure it. A lot of these don’t cleanly land in just one section, but hey structure helps legibility so here we are!

Forming the Foundation

The initial creation of my classes have started from one of several angles:

  • Target Audience
    • Is there a hole / underserved niche out of the hero roster?
    • Do we have specific targets like “This character will be the tutorial character” to drive specific goals from?
  • Narrative Inspiration
    • Characters with pre-defined narratives often lead to a lot of inspiration either through gameplay ideas or synergistic identities
      • e.g. Karim was a suave villain fire mage, naturally inspiring a destructive-but-stylish playstyle
  • Gameplay Inspiration
    • Sometimes I’ll have an idea for a resource, ability, or otherwise mechanic that seems like such a great core/”glue” for a character, that it’ll drive other areas

And regardless of the initial inspiration, the other 2 need to be met, so I work backwards from there, and e.g. if a good gameplay idea doesn’t also mesh with narrative and target audience needs, then I stash that away and look for new inspiration.

How it plays

Once I’ve got a good foundation of what the character’s core identity is, I fill in the rest with cohesive ideas. I also like to work with the rest of the team to source cool ideas, and overall I work at the kit until everything is cohesive and meshing really well together.

Below is a big list of stuff I deeply consider / iterate on as I work away at a class. I’ll endeavor to come back and add to it as I remember or learn things!

  • I want players to think like the character
    • For example, Soren was a skilled swordsman but a showboat that would sometimes fumble it and embarrass himself
      • So his kit really thrives on pulling off daring “block frames at the start of certain moves” to keep his combo going, and his combo meter leads to really flashy moves, BUT it’s easy to mis-time those block frames and get your whole combo meter reset to 0. Embarrassing!
    • Another example, Viren was a villainous Dark Mage character who would sometimes push his dark magic too far even for his own good
      • So his kit had regular access to remarkably powerful spells, but they would cause Corruption, and if he kept using those spells while at high Corruption, he’d take significant damage… but sometimes that was worth it for the immediate results!
  • Good spread of difficulties, roles, complexities, playstyles
    • Mentioned in the target audience section, but even when the target audience needs aren’t especially strict, I’m thinking about how this class ( / spec / weapon) fits into the greater pool, and how it will provide value to players
  • Playing “as” or “with” or “against”
    • Speaking of providing value to players, it doesn’t just come in the form of people playing that class, it also comes in the form of them being present in your game (“with” or “against”). This can largely be thinking about synergies and counterplay, but also informs things like “Will players be annoyed or confused by this spell? Will this make intuitive sense to allies/enemies who don’t play the class?”
  • Rhythm
    • I always endeavor to build good rhythm into my classes, both in the individual abilities (e.g. a basic attack string having a nice rhythm to it), and in how the kit plays altogether, like how a bread-and-butter combo sounds, or how it’ll sound to interrupt basic attacks with a special attack -> go back to basic attacking.
    • I also make sure to differentiate rhythm between characters. I think it’s a big subconscious element of keeping characters feeling different
  • Resources
    • In Xadia I had the luxury of giving each character a unique resource, which made them feel especially unique. But even short of that, just looking at cooldowns, ability charges, health, common resources like mana — how can this character interact with resources in a cohesive, often differentiated way? And how does it all come together for a good play experience (e.g. good-feeling rotation, or “no bad conflicts, only good conflicts” when playing by priority order)
  • Button placement
    • This moreso applies in games with limited abilities where most players will play with a given default (e.g. MOBAs “QWER” setup, or default gamepad setup, or positions of touch screen buttons), and it tends to fall into patterns like “1st ability is their bread-and-butter, 2nd ability is their defensive or offensive cooldown, 3rd is their other utility”, but is still considered for each class individually.
    • Based on how the hero plays, what buttons will typically be hit in what order, what buttons need to be easy for a quick reaction-based hit… how can each ability be mapped to where these actions feel fluid?
  • Satisfaction / Gamefeel
    • There’s a whole lot to this, and a lot also falls on anim/vfx/sfx (though I work with them on this too), but as a designer I can design and implement a lot of satisfaction in myself.
    • Namely, a lot of this is classic “juice” stuff like well-tuned camera shake and haptics. But also things like building anticipation, cool combos like “a 2s cast with an instant cast follow-up”, and playing well to the camera’s position, are all similarly important.
    • Also, the amount of satisfaction should be relative to the ability, to intuitively convey ability strength and make the big powerful stuff feel all-the-better due to relative judgement.
  • Strengths and Weaknesses
    • Another big part of differentiating characters, but also just making them more interesting to pilot: giving them well-defined strengths and weaknesses. I’ve primarily worked on games that support playing solo and wanted to be welcoming to more casual gamers, so I haven’t gone SUPER hard on this, but I still design a lot of this into each kit.
    • A lot of this lives at the role level (e.g. a tank doesn’t do as much damage as a DPS but can withstand more and control enemies more), but there’s flexibility within roles as well to push in certain directions. Like a mage may be more AoE-oriented, or another might have more control but pay for it in damage or difficulty
  • Solo vs Duo vs Trio
    • How does this character succeed solo? What leaves them wanting/appreciating others? Relates a lot to the strengths and weaknesses above, but also impacts playstyle. E.g. a mage that’s having to spend time kiting isn’t going to have the same rotation as one casting on a tanked enemy. I make sure to design/tune for each resulting playstyle
    • This also varies depending on whether teammates are synergistic or not. How does a team of 3 mages play? 3 tanks? 2 melee dps and 1 ranged? or the full ideal spread in Xadia, 1 tank 1 melee 1 ranged? Make sure ideal feels best, but unideal is still fun!
  • Combos with other characters
    • Relating to multiplayer play and synergies, some moves should lead to awesome combos!
    • For example in Xadia, Karim’s ultimate deals the most damage to enemies in the center, and casts a set distance from him. So he’d love it if someone kept enemies still for him to ult them, especially a tank that can get multiple, and ESPECIALLY a tank like Zeph that can pull many enemies into one spot!
  • AoE vs ST, Fodder vs Elite vs Boss
    • Another consideration, beyond just strengths and weaknesses, how does this class play in each of these scenarios? For low-difficulty characters, these should be somewhat similar, but for many higher-difficulty characters, these can be differentiated for an opportunity to keep the game fresh minute-to-minute.
  • Progression experience
    • How does this character unlock their kit? What pieces can be given as level-up rewards, or even temporary buffs like roguelike mission-scoped buffs or set piece bonuses in a region?
    • Sometimes this has informed the kits themselves, as sometimes a kit had TOO many synergies required to feel good, and it was making the first few hours of playing the character (with limited abilities) betray what the character would become.
    • Ideally (and nearly a requirement), the character should already be giving the player a sense of what they’ll be like from very early on in progression. It sucks for players to get many many hours in just to find out that the class becomes something they don’t enjoy.
  • Early gameplay vs Late gameplay (10hr player vs 100hr player)
    • Beyond progression itself, why does this character stay engaging? Not as necessary for low-difficulty characters (since they draw less high-engagement-centric players), but I look to provide ways that many hours into play, players are still learning little details about the kit, better ways to optimize, interactions with specific enemies or other classes, etc.
  • Movement
    • I’ve primarily worked on action-combat games, so movement has been absolutely core to every move, even if it’s just that the move itself locks them in place or slows their movement down. Movement provides a lot of gamefeel, balance, and interesting options for players, so I’m sure to fine-tune the crap out of it
  • Animation / VFX / SFX
    • And just a quick blurb here about working with others. Overall, my role in the team tends to be the glue that brings all the other disciplines together, and the person that drives a lot of the iteration, feedback, and ultimately the quality bar of the character.
    • My direct ownership is the gameplay and implementation of said gameplay, so my needs of other disciplines isn’t “make this animation,” it’s “make an animation that has X and Y gameplay properties.” I work to align the team on the whole vision of the character, such that they understand the context of their work, can contribute ideas, and all work together meaningfully and efficiently.
    • And just as a matter of experience and close relationships with my teammates, I’ve picked up a lot of knowledge in those spaces to better aid my communication / feedback and get them the info they need faster, or know where juniors may trip up ahead of time and provide extra information up-front to help them.

Ultimately, making a class full-time leaves a lot of opportunities to iterate and learn, so I’m sure there are various bits that I’ve left out. I tried to keep it relatively concise (I think each of those bullets would be a whole chapter in a book)

Darksiders 4 Boss: TBA

This is really just a stub for now, because there’s no public media that I can tie to to even really talk about this boss! I’ll replace this with real info once the game comes out, but for now just leaving a stub here to note that I got to return to where my boss design started and make a Darksiders boss again 🙂

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