Turnip Management

Posted by on Nov 16, 2016

A while back we were trying to solve an issue that came up in our playtests, where we would end up with increasingly large armies sitting next to each other, with both players building new soldiers every turn, trying to outpace each other. Another problem could also arise where one player would turtle, holing up in a castle or chokepoint with a large army. Because it takes one action point per soldier to move an army, it was possible for such a force to become so large that the opponent didn’t have enough action points to mount an attack strong enough to defeat them. We considered just setting a hard limit on army size, but that seemed a little unsatisfying, and after a few iterations we came up with a supply system that adds some more strategic depth to the game.

In this system, a single soldier unit in a region can survive by living off the land, but each soldier beyond the first requires a unit of supply. Supply comes from special plains regions, and is represented by turnip icons, so we usually call supply units ‘turnips’ – hence the title of this post! You can only use turnips from regions that you control, which rewards positional play – you have to secure enough supply regions before you can field a large army. In addition, you can only assign a turnip to a soldier if there is a path from the turnip’s source region to the soldier via regions you control (a supply line):

This means that with skilful manoeuvring, a smaller force can counter a large army by circling round behind it and cutting its supply lines, forcing it to disperse or starve.

There is a natural limit on army size with this system, simply because there is a limited number of supply regions on the map. In practice army sizes usually stay well below this limit, because it is quite difficult to maintain the supply lines needed for a very large army. It also provides a counter for turtling, as it is usually possible to cut the supply lines of a large stationary army.

Implementing this system was much more complex than we expected, mainly due to the simultaneous turn resolution process. We wanted to clearly show which soldiers are about to starve, giving you time to move or resupply soldiers whose supply is cut off, and also make it possible for them to save themselves by capturing a supply region. Initially we had soldiers become Hungry when not supplied, then become Starving on the next turn, then die if still not supplied at the end of that turn. This system didn’t work very well, as it was hard to communicate the states effectively. We tried having soldiers starve at various points in the turn resolution process, but kept getting situations where your soldiers could starve without warning, or where you could keep too many soldiers alive by juggling supplies between them.

The implementation we have settled on works pretty well. It actually applies supply logic at two points in the turn resolution process. First, soldiers consume supplies before fighting, then after battles are resolved, any starving soldiers in newly captured regions can consume supplies from that region. Finally, any soldiers that are still starving die. Having soldiers consume supplies at the start of turn resolution means you don’t get surprised by supply lines being cut and soldiers dying without warning, which could happen with some of our earlier attempts. We can also pretty reliably show which soldiers are going to starve in the UI, without having to explain separate Hungry and Starving states. One place where this falls down slightly is moving soldiers into a supply region you don’t control, as without knowing what your opponent is going to do we can’t always tell whether you will capture the region. Currently we just assume you will capture the region and display soldiers’ starving states based on that assumption, which seems to give the right result most of the time. While all of this may sound complex, it’s all in service of creating a streamlined experience that fits the player’s intuitive understanding of how the supply mechanic should work.

Overall we’re happy with this system. It provides a natural limit on army size, prevents turtling, rewards positional play and allows small forces to counter large ones via skilful manoeuvres. It also adds strategic depth to the game. Last but not least, we can show rather unsympathetic messages about the enemy’s supply troubles:

starvation_report