Skip to content

Tanks: A Journey

Tanks: A Journey published on

Probably the first defining element of our battle system was lanes: a character can mostly only target the enemy directly across from them. It was created to solve the problem of how to balance battles having any number of players in them at a given time, when the game was a board game with players dropping in and out of battles. It solved the problem, but even after PVP was dropped we kept the lane system because it’s pretty interesting on its own (turn based RPGs often fall into the boring trap of exclusively focus firing one monster at a time, lanes make that strategy much trickier to execute- adds an interesting spatial flavor without dragging the game down with full tactical map bloat).

When making the co-op mode I had a pretty strong pull towards having extremely strict roles to give players a sense of teamwork. I ended up gravitating towards the MMO trinity since, well, it’s the most obviously/strictly defined. The problem was: what the heck does a tank do in the lane system that explicitly prohibits focus fire, when a tank’s entire job is to absorb most/all incoming damage? The easy way out would have been to redefine the lane system to allow a tank to be in multiple lanes or whatever, but I liked the lane system way too much to water it down like that. So I started trying alternatives.

Version 1

My first attempt was to make healers about damage recovery, while tanks would be about damage mitigation. A combination of above average self survival while also boosting the survival of their allies: boosting their HP, reducing the monster’s attack, etc. While that kind of stuff would typically belong to more of a healer/support role, it made sense to split it out into its own thing to create a role with a specific job.

This version wasn’t completely broken, but they were role with the biggest issues:

  • Stacking a party entirely with Tanks could potentially allow compositions that can never die, but also take forever to win- basically incentivizing players to bore themselves to victory.
  • Damage rates in the game were uncomfortably sky high in order to force battles into ending quickly (the kind of high that in most RPGs would make you think you ran into a monster way too high level and should run away) , which in turn made most tanks feel pretty weak since I didn’t want them able to give much more than a 1-2 hit advantage.

Version 2

When changes to other systems necessitated redesigning every class, I took a stab at fixing the paradoxical dilemma that tanks were both too strong AND too weak:

  1. I gave tanks massive self-buffs of +100 HP, with the caveat of it only lasting a finite number of turns per battle. Now they had a major edge, but couldn’t create infinite stalemates (especially when these buffs occur regardless of player input, so they can’t cycle tanks)
  2. I gave most every battle a monster that could deal 60+ damage, when non-tanks only have 30-50 HP. Thus, tanks were required to even survive.

This solution achieved its stated goals, but when trying to develop more than a few tanks I quickly realized how hard it was to give the role any variety. If I wanted to make a tank that also gave other players HP, I still needed to give them their own personal HP buff to survive the massive damage monsters- so why even pick the tanks without the party wide buff? If I wanted to make a tank that operated off of dodge luck or self-healing, they’d still need a major HP pool to survive the big damage. It just ended up being way too narrow of a role, and that included playing it.

Version 3

I briefly considered just removing roles altogether, but settled on a much less drastic option: turn timers. By limiting the total number of turns players can spend in a battle, the worry of sloggy tank battles goes away. I had considered this as an option pretty much the entire time, but constantly rejected it as too artificial. After changing it into a “soft” timer where monsters just constantly get their attack buffed when over the limit (preventing the edge case where players get defeated by a single 1hp monster from the timer), I finally grew to accept it. I still feel like a hack for needing it, but considering what a convoluted mess Version 2’s attempt at doing it “naturally” with tank HP timers.. I’ll take it.

In general the role of tank will shift a bit: healers will get fewer revivals, tanks will get more- making them more of a “recovery” role. While speed runners will almost certainly use 4 damage class parties, the new RPS system adds enough damage spikes from mistakes into the mix to make such a role very useful for normal play (as well as buying time for the slower charging damage dealers that need more turns). Yet, the average damage rate won’t be as uncomfortable as earlier versions.

Super high HP tanks and super high damage monsters will return, but only as gimmicks for a few scenarios rather than the gold standard for every battle. In general it’s a shift towards making players have to make party composition choices that balance between recovery and damage. It’s still going to be a delicate situation to avoid full damage parties being the absolute best choice, but I definitely prefer that being the optimal composition rather than players making themselves miserable with 40 turn defensive parties. So even if it’s easily breakable, this is the way I want it to break.