Visit our sponsors! (or click here and disable ads)
Pathfinder: Kingmaker Kickstarter Update #75: How We Added Turn-Based Combat
Development Info - posted by Infinitron on Fri 21 August 2020, 23:59:24Tags: Owlcat Games; Pathfinder: Kingmaker
Owlcat may not have had a proper announcement when the turn-based mode for Pathfinder: Kingmaker was released, but today they published an interesting Kickstarter update about how it was made. Written by programmer Maxim Savenkov, the update describes how Owlcat solved issues such as pathfinding and user interface. It also covers some of the turn-based mode's limitations, which they hope to address in Wrath of the Righteous. Here's an excerpt:
There are at least three important types of actions in Pathfinder – Standard, Move, and Swift. And to make it even more confusing, Move can be used not only for movement, but also for other actions and even spells. In RTwP mode all these details are somewhat hidden from the player, although knowing your way around them is required to play at high difficulty levels. But in turn-based mode they are key, and players who aren't very familiar with the system might be surprised to find that this or that action is impossible depending on seemingly irrelevant circumstances.
We decided to try and makes players' lives a little easier in this regard and came up with a Prediction panel. This is a new panel that appears at the bottom of the screen only in turn-based mode, which shows what will happen if you give an order to the current character. At first glance, this is a rather trivial interface element many other games have. But we had to work really hard to make it show something useful.
Of course, the key problem was the fact that the game was not initially designed for a turn-based mode. The actions the characters perform were split into parts non-transparently for the external code. For example, there are no separate "go" and "hit" actions – instead, there is a "hit" command that means a character will move to the target until they reach it and are able to strike a blow. Moreover, some actions can give rise to other actions. Two things were particularly painful in this regard: touch spells and the Kineticist class.
The bad thing about touch spells (where a character must touch the target to use a spell) is the fact that their implementation can be either incorrect or inconvenient. If we read the rules of Pathfinder, first the character casts a spell, "holds the charge," and then can walk around for a year if they please and do other things until they touch the target. This being said, in the same round that they cast a spell, the character can try to touch the target as a Free Action, but in the subsequent rounds they'll have to make a standard attack and spend a Standard Action. At first glance, everything is pretty simple, but there is a nuance: in all the other computer games the most commonly used touch spell – healing – works differently: you select a target, approach it, heal it. If we implemented touch spells the way they are described in the rulebook, that is, first the spell is cast without a target, then we have to select it, the absolute majority of players would not understand it.
As a result, in RTwP mode touch spells try to pretend they aren't different from all the others. The player chooses a spell, then a target, and something immediately starts to happen. Namely: the player starts to move towards the target, at a certain range they cast the spell, and then keep moving with a charge in their hand. If during this time the target disappeared (died, for example), we can select a new target, using the spells icon, appearing in the Action Bar (not the greatest solution, as it turns out, since no one ever notices it, and the players feel the spell was just wasted).
We couldn't completely change the way such spells work in turn-based mode, that's why we had to adapt and teach the Prediction Panel to consider all the peculiar features of this type of spell. However, we did introduce one change: in turn-based mode the character using a touch spell casts the spell first without moving, and only moves afterwards, if necessary.
The Kineticist class problem is both simpler and trickier. It's simpler to describe. The problem with Kineticists is that they are the only class that can do something for more than 1 round. The Gather Power skill, decreasing the cost of other skills of the kineticist, may take one, two, or three actions, and the entire use of a skill may take up to two complete rounds.
Again, here we had to deviate from the official rules of Pathfinder for the sake of familiarity for computer RPG players. Actually, Gather Power is not in any way connected to the used skill. First the player announces they are going to gather power, and only later, when this process is over (possibly during the next round), can they use whatever skill for which this power was gathered. Unfortunately, in an RTwP fight it would be totally inconvenient: the players would constantly forget that their Kineticist started gathering power. As a result, we've come up with a solution: the player specifies from the start what they are going to use the gathered power for. Moreover, the game calculates how many units of power is required, and the player just sets the maximum (that is, if you allow 3 units of power to be gathered, and only 1 is required for the skill, only 1 will be gathered, and one action, not three will be spent).
In turn-based combat we couldn't change this approach within a reasonable time frame. We don't love the current result, and we'll try to improve it in Pathfinder: Wrath of the Righteous. The player is still able to set the power gathering maximum, select the skill they want to use, and only after this will the gathering of power commence. That said, if power gathering takes more than 1 action (that is, the skill will have to be used during the next round), it will not be applied automatically, since the situation could have changed completely (for example, the target could have disappeared). This is a little counter-intuitive and inconvenient, but unfortunately we are working within the limitations of RTwP mode.