Friday, May 27, 2016

[IndieDev] Eon Altar's Combat Loop and Power Designs

Welcome to Part 2 of my posts on Eon Altar's combat design. You can find Part 1 here. Today I'll be talking about the myriad combat loops that we've built into the game and talk about the designs that support each.

Eon Altar has what I would call about 3.5 different combat loops. 3.5 is a strange number, and you'll see why I sort of call out two combat loops that are really a single loop, but when watching players, there's a distinct progression in terms of thoughts and planning. The loops would be classified as follows:
  1. Your Turn--Look for a target, use a power, wait for your next turn.
  2. Your Turn and Enemies' Turn--Use powers that position you to an advantage for or alter your opponents' turn.
  3. Multiple Turns--Plan your energy, fortitude, cooldowns, and gear usage over multiple turns. Planning multiple character combos (or even self-combos) can fall under here as well.
  4. Multiple Combats--Plan your progression and gear crafting/choices over multiple combats.
1 and 2 are pretty well a single loop (given combat is alternating turns), but there's a definite skill difference between players who understand loop 1, and players who understand loop 2. It's not a huge jump mind, but a discrete one.

Last time we talked a lot about loop 1, and hinted at loop 2 with talk about positioning. I'll break down some specifics about each system supporting the loops as we designed them, and how each evolved over the course of development.


Contextual Powers


The basic turn flow is pretty, well, basic. You look at the battlefield, figure out who or what you want to target, and then you're presented with an array of different powers. Once you've decided on your power, you execute it.

The trick here is the powers we present to you are based on context from combat: what is your status and where are you in relation to your target.

When we designed combat, we wanted to ensure that there was a feedback loop between your actions now (and your opponents' actions) and the powers that would be available to you next. Examples of this would be Silent Thorn gaining Assassin powers when she's Concealed; Shasek gaining Berserker powers when he's Bloodied; ranged attacks becoming unavailable when you get Engaged (locked down by a tank). Your range in relation to the target is also important, as some attacks become unavailable if the target is too far.

Earlier on in development, we also had powers that only showed up if you were Engaged. Other powers also only showed up if you were at range and not in melee. Like positioning requirements, later in development we decided these were too restrictive. Part of it was depending on context you might only have a single power available to you which is no fun at all because you literally have no choices, and part of it was just player confusion. It's easy to justify gaining new powers for a special status, and the no-ranged-when-engaged is pretty easy to grok, but a lot of cases where powers you thought you should have (like a big melee attack) only appearing when you're engaged or at a specific distance was difficult to communicate effectively, and felt arbitrarily restrictive in play testing.

Marcus Engaged with a Sellsword
Another change related to this was Engagement itself. Originally, all melee attacks Engaged the other party. When you're Engaged, you're locked in 1v1 combat with another party and can't escape without either killing the other party, or using a special Disengage power (which usually felt like wasting your turn). Engagement was extremely restrictive--by design--but play testing showed that it wasn't a fun restriction, especially given our penchant for battles where the players are outnumbered two-to-one. It was far too easy for ranged characters to get locked down and become basically useless.

Later on we changed Engagement to be something only tank characters used. Some enemies can engage, like the Bloodguard, and all three melee PCs can engage--though Shasek is less likely to want to unless the situation is dire or you really want him to take some damage to activate his Berserker powers. This made the status dangerous and a lot more uncommon, but in this case less is more: engagement is now an extremely powerful tool when used judiciously and deliberately. But those strategies are encroaching on Loop 2.


Combat Resource Economy

I'm jumping ahead to Loop 3 here a bit first, because the resource economy we built informs the design of Loop 2 to a certain extent. So while it may make sense to discuss each loop in ever-broadening order, that's not really how things worked when building the system.

In the first couple iterations, we had two primary resources: energy, and cooldowns. Attacks generated energy, and the harder you hit, the more energy you'd get returned. This created a bit of a runaway virtuous cycle where Fireballing a large group would generate so much energy that you could basically just spam the spell over and over again, so we introduced cooldowns on some of the more powerful abilities.

Every character had a couple of "Farmer" powers--that is, powers that cost 0 energy. Their primary purpose was to generate energy to use on some of your bigger attacks, the Mighty and Mythic powers.

We decided we needed to cut off that runaway virtuous cycle. Despite cooldowns, you could still alternate Mythic attacks and still generate enough energy to spam big powers all combat long once you were rolling. The first step was cutting down energy rewards from every hit to only the best hit if the attack was an AoE. Later on, we actually stopped granting energy on non-Farmer powers entirely. We beefed up the amount of energy Farmer powers granted (including on a miss so they never felt like a total waste), and the current energy economy was completed.

Muran gaining energy from a Stone Strike
As far as numbers are concerned, a miss is 3 energy, a hit is 3 or 5 energy, and a critical is 8 energy. We wanted to have that fist-pump moment where crits felt better than normal hits, especially since a crit in Eon Altar just guarantees you roll maximum damage rather than doing extra. The other aspect to this is we standardized energy costs to 5 and 12 energy for Mighty and Mythic attacks respectively. 

With energy costs set, it became really easy to map out what an expected energy curve would look like. You could alternate a hit (+5 energy) with a Mighty power (-5 energy), or if you were saving energy, you knew it would take 3 - 4 attacks for a Mythic attack, or 2 if you're lucky with a crit or two. Crits in general just allowed you to slowly bank extra energy over a medium period of time, especially given crit rates generally fall in the 25% to 40% range.

With energy gains under control, we decided we could remove the cooldowns off most powers. If you had 24 energy banked, Fireball with Muran two turns in a row if you'd like, or if you have 15 energy banked, Shield Slam on Marcus 3 times in a single turn to build up for a giant final strike. The only powers that have cooldowns remaining are Shadowstep for Silent Thorn so she can't sit in Concealment forever, and Revive to prevent players from spamming it to zerg the encounter until they get lucky. Some gear have cooldowns as well, but they're usually massive boosts or extremely powerful to compensate.

Basically, cooldowns are no longer a "resource" per se and more a balancing mechanism. A subtle distinction, but an important one as it means players have far more options at their disposal on a turn-to-turn basis.


Gaining An Advantage

Once we decided to ditch Engagement as a thing all the time, and removed some of the more restrictive contextual requirements for powers, it often meant that you had anywhere from 3 to 7 (or more!) actions available to you at any given time. This meant we needed differentiation.
Muran has a lot of options at her disposal. The two slots on the lower right could also contain equippable items like arrows or potions, meaning she could have up to 9 powers total in this context.
It's not sufficient to just have Swing Your Sword, and then a more powerful Swing Your Sword Harder. We wanted to make sure that even your "worst" least expensive powers had some tactical advantage to using. Since every character has two power archetypes, even within a single character we needed to ensure that your two Farmer powers were unique. We also wanted to ensure that using a Farmer power instead of a Mighty or Mythic power was a valid tactical decision aside from saving energy.

We have three mechanisms to realize this vision: stances, power bonuses, and status effects.

Stances and power bonuses are probably the more subtle effects, but they're also the most prevalent. They're also the hardest to communicate to players (we still don't communicate them well).

All powers activate a stance when used. Fireball and Flame Aura, for example, share Muran's Fire stance, whereas Shatter and Stone Strike share her Earth stance. Muran's Earth stance often comes with defensive bonuses, versus her Fire stance which is more damage at the expense of defense. This makes choosing Earth powers a better decision if you're going to be in melee a lot, but if you can get safely at range, you can unload with Fire powers to scorch the enemy without having to worry about the relatively lowered defenses.

On top of that, many powers have bonuses on top of the stance. Marcus' Lunge III, for example, activates his Phalanx stance for some physical resistances, but the power itself adds a +4 Defense bonus that other Phalanx powers would not, making it a natural choice if you need to turtle up.

Finally, status effects. Many powers give you buffs, or the enemy debuffs. Again, this helps differentiate powers. To use Marcus as an example again, Lunge gives Marcus the Protected status (+25% Defense) whereas Sunder causes the enemy to be Sundered as the name suggests (-25% Defense). Both are Farmer powers, and while Lunge is more accurate and Sunder does more damage, the status effects are powerful enough to perhaps use one of those instead of a more expensive power if the situation calls for it.

Silent Thorn has a good example with her Void Arrow versus her Quick Shot. Despite Quick Shot being free and weaker, since it slows the enemy (-50% Movement), it's the better attack to use if you're kiting a melee enemy. Void Arrow, however, does a fair bit more damage for 5 energy, but it also Blinds (-25% Accuracy, -50% Range), so it becomes a great decision to use against a ranged sniper or if there's nowhere for you to kite.

And then of course utilizing these effects with your allies allows you to really boost your party's power. Sunder with Marcus to allow others to hit more easily then Slay with Shasek to Weaken the enemy and get a second turn. Muran's Flame Aura reduces Radiant resistance, then use Baryson's Blade of Glory to do Radiant damage and leave a Radiant DoT to tick for even more damage. Or use Marcus' Shield Slam to knock an enemy backwards into another opponent so Silent Thorn can Volley both of them.


Part 3 Coming Soon

Loops 1, 2, and 3 often aren't quite as neat and tidy as I first laid them out. There's lots of overlap between them, and even when we were designing, different aspects of the system came online and iterated at different rates. What we have today is a pretty well-oiled machine, and we have loads of evidence from our play tests and demos at conventions such as PAX East and PAX West that we've created a very tactical game that rewards players who're aware of and plan around the different combat loops. But it definitely took a lot of iteration, thought, and play testing to get where we are now.

Next time I'll discuss progression, archetype design, and the role of gear and craftable items as the 4th and final broader combat loop.
#IndieDev, #EonAltar, #GameDesign

No comments:

Post a Comment