Dev Diary #51: It’s Time to Duel
Welcome comrades! Today, we’ll be talking about our final major free patch feature: single combat.
Duels in CK2 have been a much-beloved feature for years, and whilst we’ve certainly got duelling content in CK3, we wanted the option to invoke something a bit more elaborate when circumstances called for it.
Following up on and improving such a feature was always going to be a tough ask, but we’re pretty happy with what we’ve got.
Plus, QA dared me, so here we are.
When designing the new single combat system, we had a few key points in mind to guide our implementation.
1. Duels should be dangerous
The outcome of an in-depth duel should never be a completely forgone conclusion: a desperate rookie can still surprise a veteran master, or get lucky/play smart. If the fight would be ended before it’s even begun, it should use a simpler effect or auto-win option.
2. Duels should be reusable
Duels should be easy to add anywhere in script, and their results should be as agnostic as possible. A detailed duelling system should be able to account for everything from strict honour duels to battlefield bouts to a knife fight in the tavern.
3. Duels should be variable
Duels should vary in content and strategy depending on the characters involved and the location and circumstances around them. No two fights should ever be totally identical.
4. Duels should be character-driven
Character traits, relationships, and other qualities should all have an impact on duels, not just prowess.
5. Duels should allow for both experience and intuition
Although understanding the mechanics of the system should be rewarding and allow competent play, a newbie just guessing should still have a fair chance of success.
6. Duels should allow for both roleplay and rollplay
It should be viable to both always play to win, and to play according to what makes sense for your character, without either totally kneecapping you. This should carry over to the AI, who should be somewhat readable based on skills and character traits.
All single combats take place between exactly two characters, and are fought to a predetermined end (be that a slight cut, an increase in the wounded trait, or a fatal blow), at the end of which the loser may be wounded or killed as appropriate.
Combat is divided up into distinct rounds, with first the defender, then the attacker selecting an option, before we work out whether one or the other has done enough to win or lose. All combats last between two and four of these rounds, ending automatically after the fourth (though this is a scripted value and easily changed if you prefer the possibility for prolonged, dramatic fights).
Options available are stylised as distinct combat moves, like headbutting your opponent, rushing into an all-out attack, playing defensively, and so on. At the start of your turn in each round, you randomly draw three such options from a pool of available choices, with the relative usefulness & drawbacks of each move related to your prowess skill.
The higher your prowess, the more likely you are to draw good moves, the worse your prowess, the more likely you are to draw bad ones. It’s a little more complicated than that in practice, but that’s how it feels player-side.
Instead of one of your regular combat moves, you may also draw a special move. Rather than being based on just your prowess skill, these take into account traits, location, special relationships between you and your opponent, all manner of things. They range from giving a demoralising speech to your opponent to using your skill as a raider to make an example of them as you fight.
As a rule of thumb, special moves tend to either offer a better pay-off than standard combat moves, or else give secondary effects outside the duel (e.g., dread gain or stress loss) At present, we have 18 standard combat moves and 22 special moves.
The primary method of winning a bout is to gain enough Likelihood of Success. This is a sort of tug-of-war between you and your foe, representing who is currently winning the duel, with almost all moves adding to the score. The first character to get their score a certain threshold above the other’s wins.
However, most combat moves also give you some Risk of Injury, representing how overextended you are and how easy it is for you to make a mistake and hurt yourself or else be dramatically foiled. As this goes up, it makes it more likely that you’ll simply lose when a round ends if you haven’t managed to explicitly win.
The basic rubric for fighting is thus trying to maximise your Likelihood of Success without extending your Risk of Injury enough that you lose before you can beat your opponent.
In the penultimate round of a fight (by default, though this can again be changed easily by tweaking one number), it becomes much easier both to win and to injure yourself, and certain special moves can also adjust these thresholds.
If, after the final round of the fight, there’s still no winner, then the highest prowess skill wins.
The AI selects combat moves and strategy based roughly off of personality, meaning that not only can it change as they gain prowess-related traits, but different characters will often fight differently even if they share identical prowess.
Finally, we have the duel edge system. As you duel, certain moves by you or your opponent may accrue duel edge bonuses and maluses for one or both of you, helping or hurting your prowess skill for the duration of the bout. This helps to keep things risky, and means that just because you entered a fight knowing who had the best prowess, it won’t necessarily stay that way for the whole combat.
Duelling in Context
Since one of our prime goals with the new duelling system has been to make it useable in as many circumstances as possible, setting one up is nice and easy. We have a single effect that configures the circumstances of the bout, and every use of the effect requires two small follow-up events. One tells the duel what happens if it invalidates for some reason (usually we just send out toasts informing the affected parties), the other processes the after-effects of the duel itself, be they losing a bet or gaining a friend.
And… that’s it. It can be dropped into any effect block, any interaction, decision, or event, with whatever net results or criteria you like. Complex fight sequences with no muss, no fuss.
There are several ways we use this system in-game at the moment, with the most noticeable being an interaction to duel your rivals now unlocked by the Chivalry lifestyle tree’s Stalwart Leader perk (pictured a ways above). We also use it in several paid events in 1.3, and, of course, the all-new [REDACTED] interaction.
Over time, we hope to improve the combat system with general QoL tweaks, dedicated UI, and, last but not least, more combat moves. We also intend to pepper it throughout future content, as well as rework certain elements of old content on an on-going basis to use these more elaborate duels as appropriate.
Stick ‘em with the Pointy End
Let’s have a bash at using the single combat system in anger, shall we?
Here’s me, as High Chieftain Waththab, fighting my son and rival, Musa, in a non-lethal bout.
Skills-wise, my son out-matches me quite drastically. I’ve got a fairly low prowess rating, whilst he’s at the upper end of average.
This means that he’ll be rolling average to excellent moves, and I’ll likely be rolling terrible to average moves. Both of us lack most traits that would grant special combat moves, and we have no extraneous circumstances that would give us any either (though we’ve got some special dialogue in places due to be related).
That said, there’s still a strategy here. I can see that my son is deceitful and craven, so overall, he’s likely to pick combat moves that are cautious or cunning. This means he’ll probably play it safe on trying to win via Likelihood of Success, and instead wait for me to injure myself with my blunders. If I can overwhelm Likelihood of Success before my Injury Risk gets too high, then I might be able to beat his superior skill.
I have three combat moves available to me:
Welp, we’re going all-in, so Unstable Foundations does nothing for me and Onslaught is basically playing it safe. Enthusiastic Onslaught it is!
Alright! That went… so-so. I launched an attack, he launched an attack, and the text at the bottom covers our relative Injury Risk and the current status of Likelihood of Success respectively. In short, I’m very close to injuring myself, but we’re actually neck-and-neck on Likelihood of Success.
That should have gone better, but:
It looks like my son is playing it a little less overly-safe than I thought. Rather than purely waiting for me to hurt myself, he’s putting up just enough of a fight to make it difficult to steal a win. His deceit is winning out over his cowardice, it seems.
Our new hand of combat moves has a new combat move available:
Damn, this actually would have been really useful last round, when we could have headbutted him to reduce both of our prowess a fair bit. We’re already stuck rolling poor moves, so it would only make us marginally worse, but as he’s got access to the higher move sets, reducing his prowess for the duration of the bout could have really helped us.
Looks like we’re in a bit of a tricky situation where I might get embarrassingly defeated by the AI >.<. We’re committed now, though, so let’s just hope he slips up and launch into another Enthusiastic Onslaught!
Haha! The Devil take you, coward!
Ok, so we got lucky there, as Musa played it safe rather than pressing his advantage and we managed not to injure ourselves, but it’s now round #3 and this single combat will almost certainly end here. Either my injury risk catches up with me or I manage to push through that last little bit of threshold to win.
Let’s take a look at the new moves we’ve rolled.
Wow, ok, not much competition here, is there? Pure aggression has brought us this far, let’s keep the medieval-equivalent of the pain-train a’goin’! Put the boot in!
Phew! Ok, not gonna lie, that was a little more tense than I’d have like it to be for the demo fight. Not as embarrassing as when I got a prowess 100 character killed by a prowess 0 character during testing, but still.
Needless to say, this is just one fight, one way of playing, and adapting your strategy and preferred moves based on the personality, skill, and experience of your opponent are all necessary to reliably win repeatedly.
If we played this fight again as Musa, we’d probably want to take a similar strategy to how he fought in the early rounds, letting our inferior opponent open up his guard whilst putting up enough of a fight that he couldn’t easily score a victory.
Two very skilled characters fighting each other becomes a mind-game of who can work out the best route to victory first, an incredibly inferior character verses a drastically skilled opponent turns into lots of desperate gambits to even the prowess ratings or exploit their personality, two very aggressive characters becomes a pure slug-fest that often comes down to sudden death, and so on.
Our hope is that, though all fights are relatively short and the mechanics aren’t too intricate, each and every fight has the potential to be memorable if you want it to be.
So Many Ways to Say “You Lose”
You know what’s fun? Fight loc. Let’s look at some single combat results. Vanity-me, to me!
Fun-fact: putting the location trigger on crocodilians turning up in fatal [REDACTED] duels was stuck on my to-do list until quite late in development. This means that, for the vast majority of time spent internally playtesting, crocodiles would tend to turn up in any fight that wasn’t explicitly indoors. Taiga, steppe, European farmland, Tibetan mountain, the middle of the Sahara. None were safe from the surprise crocodile.
Accusations that this was left intentionally because certain elements of the dev team found the confusion entertaining are salacious and unfounded.
Anyhoo, that’s almost all for this dev diary folks! Let’s round things out with some more patch note excerpts.
SPOILER: PATCH NOTES
# Free Features
- Enhanced the hair & beard inheritance gene system. Instead of inheriting specific haircuts from your parents, you now inherit a ‘hair type’ gene such as ‘straight’, ‘wavy’, ‘curly’ or ‘afro’. The actual haircut a character uses is now based upon their culture. This means that rulers won’t use inappropriate hairstyles/beards just because one of their grandparents happened to be of another culture!
- NOTE: Existing characters from save games made before 1.3 might get a new haircut or become bald, and old ruler designer DNA data will not have hair/beard.
- This system does not affect the Barbershop or Ruler Designer, where you’re still able to choose whatever hair you want.
- Added the ‘Chin Goatee’ beard variant
- Added new Special Buildings in [REDACTED] and [REDACTED], including the [REDACTED], [REDACTED], [REDACTED], and more!
… and many more [will be posted in future DDs]
- As the Patron of a holy order, you can now hire it even if it is already hired by someone else (except another player). You pay the full piety cost to the person who has already hired it, rather than the usual hiring it for free
- Reduced acceptance bonus on Offer Vassalization from ‘wide difference in rank’ and ‘rightful liege’
- Reduced fascination gain from learning from +2 to +1
- Blocked joining a tyranny war if you can’t join a faction against your liege
- It is now possible to recruit children from prison as long as they’re not heir to one of their liege’s titles
- Reduced inherent health penalty on flagellant from -0.5 to -0.15
- Reduced chance of characters randomly contracting lover’s pox & great pox
- Improved the candidate selection for republican mayors: they can be of the province culture as well as their liege’s culture, will prefer to be succeeded by members of their court, and women can be selected when it makes sense
- Being more than 5000 men above the supply limit now causes you to lose supply faster, will scale from 5/month at 5k to 10/month at 10k
- Buildings in holdings in the domain limit grace period are now disabled entirely
- Creating a Head of Faith title now requires 1 more holy site (2 for Spiritual, 3 for Temporal). Creating a Spiritual HoF title now costs 300g rather than 50 to 300g based on your income
- Imprisoning and Executing characters of no particular status (i.e. lowborns) now yield much less tyranny
- Non-republican Barons now get married and produce a family more consistently
- The Pope is now more willing to lift excommunications, but doing so costs the excommunicated a Level of Fame
- When a Claimant Faction succeeds in their goal, they will free their Claimant from prison if they were a prisoner of the old title holder
… and many more [will be posted in future DDs]
- Children should no longer incorrectly become Lowborn if at least one of their (known) parents carry a Dynasty
- The Pope will no longer grant himself Rome every year, and gain Piety for it
- Fixed several instances of wounds being applied using the wrong effect, causing them to never heal
- Fixed Great Holy Wars invalidating rather than changing target if someone for instance takes the target’s primary title
- Fixed prestige and piety gains in extremely large battles (hundreds of thousands of troops on both sides) sometimes having an overflow issue causing them to go negative
- Fixed the Controlled Territory Defender Advantage modifier only working for provinces you personally control, and not those of your vassals
- Fixed the Diplomatic Range modifier not having any effects. Now range between two characters is based on the highest Diplomatic Range modifier of the two
- Fixed the loss of your pet spoon removing your pet stone instead
- Characters under 18 will now hold council props
- Fixed an issue where vassals created additional holdings throughout a liege’s realm when becoming feudal or clan. They should now only create holdings within their own sub-realm.
- Hostile schemes are now invalidated when the target isn’t within the owner’s diplomatic range
- It is now much harder to imprison a claimant that has the support of a faction that has pressed demands
- It’s now easier to imprison your own young children if they’re unfortunate enough to be in your court
- Removed the secret tunnel between Cherchen and Gomoco, allowing armies to pass through the Kunlun Mountains.
- You can now send your kid off to university properly and easier
- The AI can now occasionally attempt to escape from prison
- Subjugation wars now return their prestige cost when invalidating
- Tribals can now adjust tribe-valid succession laws (i.e., gender, mostly) at limited tribal authority instead of needing to reform to feudal
- Fathers of secret bastards can now realize that they are the real father even when the mother is married
- Characters can now rip their shirts off without exposing their crotch
- Ended the Crocapocalypse
… and many more [will be posted in future DDs]
If all this isn’t enough or you would like more, make sure you tune in for our Paradox Insider this Saturday, March 13th at 11:00am PT (8:00pm/20:00 CET) where we will be chatting and discussing things