Another full week or so in Tyrants Must Fall dev, with - among other things - a big UI overhaul, a redo of the battle deployment system, and some very important fleshing out of the save/load functionality.
I also made a pretty critical decision to stop worrying about finding the exact art style I wanted at the moment and instead focus on just getting in some functional (but nice) placeholder art. This is all in service of getting the game into tester’s hands as quickly as possible in a feature-playable state. There’s far more to be gained in getting early feedback than there is in spending an entire afternoon drawing and redrawing the same character icons at this point.
But while that’s all very important, today I want to do a deeper dive into part of the game I haven’t really talked about much yet: the units.
The Ones Doing the Work
In TMF, the player controls squads built under a Leader, and protecting that Leader in combat is the primary goal. However, the Leaders themselves aren’t the ones doing the fighting - it’s all of the units under them that do the hard part.
When I first started paper prototyping the game a while back, I began with the mindset that units were more or less a disposable commodity. They were, individually, pretty fragile, and the idea was the player would focus on numbers as opposed to individuals. The primary tension would be one of resources - making sure you didn’t throw away too many units without the means to resupply them.
This was fine for modeling a single battle, or even a small series of battles, but as I began to expand the design from just the battlefield to the rest of the game, that model started to feel at odds with the experience I wanted the player to have.
Having nameless piles of units just didn’t feel right. It didn’t make a lot of sense narratively (leading a rebellion with a bunch of anonymous cannon fodder? That’s more of a bad guy thing), and even more importantly it eliminated some interesting gameplay considerations. When a unit feels disposable, a player is very likely to, well, let it be disposed of. If there’s no value in keeping it, why care about how it’s used? This leads to simply using units as meat shields and cheapened the tactical experience I wanted.
Putting a Name On It
What I needed to do was make the player care about these units. They needed to be something more than just interchangeable collections of stats and abilities that could be tossed aside at will. That meant getting the player invested in them for the long term.
My first reaction was “why would the player care about these anonymous units?” Well, that’s an easy one to fix - don’t make them anonymous.
Instead of having four units all called “Militia” on the battlefield, give the player four individuals, each with their own name. Giving things names is, for me at least, a guaranteed way to make me care more about something. Even if that Militia unit (let’s call them Keflen) never does anything besides stand around and stab people with his spear, just knowing he has a name gives me more of an attachment to him.
Thinking back to some of my favorite tactics games, the fact that these units may not be the ones doing all the important bits in the story doesn’t matter. In Final Fantasy Tactics, for example, Ramza is obviously the hero, and its his story we’re invested in. Yet, despite never saying a single word, I’m equally as invested in my Ladds and Alicias and Lavians as I am in the “story” characters (moreso, in some cases). In XCom (even the original, where everybody looked the same), I cared about Gerhard Vogel because I’d watched him rise through the ranks, and damn right I was going to restart the mission if he was killed.
That hits upon the other key factor here - making these units grow.
Experience is its Own Reward
Units need the possibility of long-term growth. Without that, they are just a token that could be replaced with any other token, from the player’s point of view.
To start, I added an experience system for units taking part in battles. After surviving enough battles, units level up and gain a modest improvement to their stats. Now an experienced unit becomes a much more valuable commodity, especially early on. To add to this, I overhauled my unit upgrade concept (something I’d pictured since the beginning) to center around this experience idea as well. Now instead of just upgrading an entire “class” of units (my original intent), experienced units can choose to advance down different paths to the next tier of units.
Now Keflen, the simple rebel, can advance from being a simple peasant with a pitchfork until the point he can advance into either the “Soldier” branch of units or the “Defender” branch. Maybe he’ll become a Partizan with a proper spear, shifting around the battlefield. Or maybe he’ll become a Man-At-Arms, standing stout on the front line to shield his allies. Either way, now the player is (hopefully) invested in keeping Keflen alive so that he can - ultimately - continue to grow.
I also realized I needed to give the player more ability to protect units. It’s all well and good to make them want to keep them around, but if the mechanics don’t support that then there’s an issue. To begin, I added the ability to Retreat a unit from a battle by having them move to the rear and escape. This was good both in addressing the survivability problem, but also in adding another interesting tactical choice for the player. Still, even with that, situations where a unit would be killed despite a player’s best intentions were still very possible. In this case, I didn’t want players to feel like they’d need to reset any battle where one bad decision cost them a unit (hello XCom).
To help mitigate that, when a Unit first falls in battle it becomes Wounded. Wounded units have slightly decreased stats, but can be healed with rest (in this case, by being left in the reserves instead of deployed to the encounter map). If a Wounded unit is put into battle and falls again, then it is killed permanently. This adds a nice risk/reward set of decisions for the player. Now there is no losing a unit accidentally - they have to make the active decision to put that unit at risk. And maybe that risk is worth it for a tough fight, rather than leaving an experienced unit on the bench.
Cascading Ideas
All of these changes were a big departure from where I started, and implementing them meant a lot of work in rebalancing underlying stats. It also took a huge redo of how the game itself thought about units. Suddenly I needed to think of them as individuals, and their relevant data needed to be tracked individually, too.
I like to think it’s all been worth it - with everything in place, I feel the game is fundamentally more interesting. There is a reason to think beyond just the here and now in a battle, and a lot more potential decision points stem from that. It’s also led me to a total overhaul of the actual unit tree itself, which again I think is going to provide a lot more interesting choices to the player.
To wrap up this week, a short video of some quick gameplay, showing all three layers (World Map, Encounter, and Battle), a brief tutorial, as well as the experience and wound systems.
Next Time: Classes, Classes, Classes!
P.S. You can always join the conversation at our Porch Weather Games discord!
Camp Keepalive: Endless Summer is a turn-based strategy game set in a camp straight out of an 80's horror movie. Save the helpless and dull-witted campers from an onslaught of monsters with a team of counselors, each with their own unique abilities.