Archive for February, 2023

And we’ll roll the old chariot along

February 21st, 2023 10 comments

Thanks to everyone who responded to our last dev blog post, we are very encouraged by the positive feedback we received. Previously I planned to write this post about the experience changes and some other small utilities we wrote along the way, and that post will still come soon, but today instead I will mostly share some explanation on the next tranche of changes deployed to the beta server yesterday. Onwards!

Simply Irresistable

Admin tools fort battle screenshot

The battle summary from our admin tools.

Some of you wrote to us that despite the previous changes to our formulas allowing you to hit more often, many lower level players still registered 0 damage, which is no better than missing. To investigate this further, we did a deep dive into this battle, with a particular focus on the attackers. Looking at the players’ stats, we had some interesting observations.

Factoring in most sources of damage and resistance such as weapon average, item buffs, leadership, hiding, own sector damage bonus and resistance bonus (but not critical hits), we found that the attacker with the highest damage had about 3.5x the damage compared to the resistance of the attacker with the highest resistance. The players with the highest resistance tended to be high level and receive the majority of it directly from resistance bonuses on items, with only a small portion coming from other sources, ie skills.

We also simulated a ’round robin’ where every attacker fired one shot at every other attacker but couldn’t die. From our calculations, we found that approximately 10.6% of shots resulted in zero damage because the target had higher resistance than the shooter had damage. Of course, we cannot directly apply this number to an ordinary battle – not every player fires the same number of shots and certainly not at their own teammates – but it’s a helpful approximation and one we want to lower.

To achieve this, we decided to split the resistance formula into two parts, giving different priority to each. One part contains the direct resistance bonuses given by items and buffs, the other part contains the remaining sources of resistance (which you remember means skills). For now we’ve given these parts the names of secondary resistance and primary resistance respectively in our code but we’re interested to see how the community chooses to label them. At the moment we still show both combined in the battle interface but this may change in the future, if we decide to keep the change long term. The differences are shown below:

Damage SourcePreviously MitigatedNow Mitigated
Weapon DamageYesPrimary Resistance Only
Sector DamageYesYes
Shooter Damage BonusYesYes
Critical Hit DamageNoNo

Going back to our small simulation, we found that across the 19 740 shots, there were a little over 6 400 shots that resulted in some resistance being clipped, up from just under 1 900. (After all, once you resist all the damage, your extra resistance won’t heal you!) This resulted in an average damage increase of approximately +50 per simulated shot. Using some back of the envelope calculations, we estimate that would convert to an extra 76 000 total damage for the attackers based on the number of shots fired in our focus battle.

There are some caveats to these calculations. Firstly, this is only a rough guess – more incoming damage generally means more knockouts and fewer shooters in later rounds, but also less players available to block sectors – although we’re satisfied that the results appear reasonable and worth trying. Secondly, we must also bear in mind that our focus battle has an abnormally high number of lower level players for an established world; high level players with high resistance bonuses being shot at by other high level players with 3.5x higher damage bonuses are less affected. In particular, we expect this change will have the largest impact on the international servers.

All the Small Things

Your community managers have been collecting feedback about the changes so far and we were pleased to see that most markets except one were generally positive about them. The rewards were a recurring theme in your messages to us, which will be discussed in a future post.

If you have any other requests regarding fort battles, please be sure to share them with us. Based on your earlier feedback, we already scheduled some time to change how the fort battle player caps are shown in the planning screen, which we hope to include in the next beta update. In particular, since converting our fort battle frontend from flash to HTML5, any interface ideas we may have previously passed over could be back on the table.

See you next time!

Categories: Fort battles Tags:

New year, new battles

February 7th, 2023 22 comments

As developers, one of the areas of the game we most enjoy working on is fort battles. This year I am pleased to say that changes to them have been placed at the very top of our internal roadmap. Yesterday, we announced our latest efforts, follow-up changes to the attack and defend formulas. Over the next couple of posts, I would like to offer our rationale behind the changes we settled on, as well as show you some of the internal analysis we performed.

After our Christmas holidays, we were immediately given a short brief for the expected changes: raise fort battle rewards (with a particular focus on experience) and adjust the team balance to strengthen the attackers and weaken the defenders. We also examined feedback from the community, whose priorities helped inform the specific design of our changes. In no particular order:

  • Spread rewards more evenly between classes/roles, with a particular focus on adventurers and tanks
  • Increase the competitiveness of lower-level characters on established worlds
  • Balance the teams such that fewer extra attackers over defenders are needed for an even fight
  • Design systems that are more robust against the idiosyncrasies of ever-changing equipment and metas
Sydney New Year Fireworks

A nicer photo than mine of Sydney’s New Year’s Eve.

Previously, we have attempted to address this last point by changing the fort structures to give percentage-based bonuses rather than fixed bonuses. In the upcoming update, we’re expanding this approach to the base bonuses and distance penalty. Currently, your character receives a fixed +25 attack value and +10 defend value bonus. Soon, +15 of that attack value bonus will be converted into a 15% attack value bonus. This is expected to increase the attack value relative to the defend value of high-level characters, advantaging the attackers.

Conversely, this change in isolation would cause lower-level characters to lose some attack value. To offset that, we’re introducing a new ‘beginner bonus’, offering up to +15 attack and defend value bonuses to characters below the level cap. Initially this will scale linearly; for example, if your character is level 125 (half of the maximum), they will receive a +7.5 bonus. We feel this is an improved solution that will also help the survivability of lower-level characters in established worlds.

As mentioned earlier, the distance penalty is undergoing a similar transformation. Here are some simplified comparisons from our help resources:

Shot DistanceOld PenaltyNew Penalty
5 tiles+10 defend value−6.5% attack value
10 tiles+25 defend value−13.7% attack value
15 tiles+44 defend value−20.5% attack value

You may immediately be wondering, why not 10%, 25% and 44%? There are a couple of other major changes here affecting our comparison. Firstly, we’re reducing the distance’s exponent in the formula from 1.4 to 1.2 or, as you may have also seen it written in the past, the squared distance’s exponent from 0.7 to 0.6. This matches how it was previously; in the past we increased it to offset power creep, but now we are reverting that change with the switch to percentage-based bonuses.

Secondly, we will apply the penalty to the shooter’s attack value rather than as a bonus to their target’s defend value. Now our attack and defend value formulas are monomial, we can make this change without affecting the probability of two characters hitting/missing, calculating it behind the scenes in keeping with how players traditionally understand it. However, this change will reduce the difference between the attack and defend values when a high-level character is shot at by a lower-level character, and likewise when a high-level character shoots at a lower-level character.

I will finish this post with another comparison. Imagine two level 150 characters with 697 leadership, 831 aiming and dodging, 591 hiding and trapping, 22 multiplayer attack and 1 sector multiplayer attack, not standing on any structure. They would shoot each other with the following expected values:

Shot DistanceOld Attack ValueOld Defend ValueNew Attack ValueNew Defend Value
1 tile149.248…135.248…159.689…140.248…
30 tiles149.248…251.190…101.291…140.248…

That’s all for now! We hope you like our changes so far and look forward to hearing your feedback. There is still a little more time set aside for further fort battle changes so keep attending those battles and help us to help you. Please let us know if you found this post interesting and we may share some more insights about the little utils we developed to analyse our data and the change proposals.

Categories: Fort battles Tags: