Category Archives: Systems Design

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