Attack Locking / Attacks of Opportunity
In the combat demo, I had created a system called “Dodge Locking” described by the game's instruction screen as
The idea went something like this:
- If you go before someone in the turn order you can always just move away from an incoming melee attack, dodging it.
- Going first should be an advantage but there should still be a cost associated with disengaging from melee range
- So rather than taking the hits, one or more lockers causes a 1-damage “dodge cost” for disengaging
Here's an example of disengaging from two lockers:
But there were issues with this when playtesting:
- Few testers understood this mechanic, the closest being individuals asking if it's like Attack of Opportunity in D&D
- There's already a problem with that demo where kiting enemies to get stamina back is overpowered
- The dodge cost isn't high enough to make much impact
I worry because I think as a game designer you should trust your weird ideas most of the time and should try to never change something for the purpose of “Will people understand that” Sometimes teaching someone to understand your weird thing can be very impactful! But I did also feel like this system wasn't going to work out in the long run.
So I thought why not just turn it into Attacks of Opportunity! Essentially, if you're locked by an attack or ability, that attack will play out normally in reaction to you moving away. Here it is working:
I believe that this is an overall improvement for a few reasons:
- Taking the attack that was declared as a cost to moving away makes disengaging much harder and makes melee much more dangerous
- There's still room to modify this system via passive abilities that can modify the damage, create dodging effects, or adding counters
- Adding locking to powerful ranged abilities is on the table now too with the same UI messaging
Finally, I am so proud that making this change was just a few lines of code! The combat execution is so modular and structured so nicely that making this enormous change was trivial and automatically works with enemy behavior and preview UI!
| 🌐 | 🙋 | @britown@blog.brianna.town