Some magic spell effect cost balance thoughts

Discuss modding questions and implementation details.
Post Reply
User avatar
Kab the Bird Ranger
Posts: 123
Joined: Tue Feb 23, 2021 12:30 am

Some magic spell effect cost balance thoughts

Post by Kab the Bird Ranger »

Just putting out some thoughts about balancing the costs of magic effects

Background

Initial cost vs Per-Level cost

Each effect has up to three components: Duration, Chance, and Magnitude (Chance is almost always casting chance, but not always). Each component might be supported or not supported depending on the effect. For example, Climbing only has a Duration component. Comprehend Languages has both Duration and Chance, but no Magnitude. Each supported component has three costs: initial cost, per-level cost, and base cost.

Initial cost is the cost per point of Initial value (initial duration, initial chance, initial magnitude, etc...).
Per-level cost is the cost per point of Per-Level value (Duration per level, Chance per Level, ...).
Base cost just adds a fixed cost regardless of the settings the spell has, but it's rarely used.

As suggested in the Daggerfall Chronicles, it makes sense that making spells with high initial values should be beneficial for low-level casters, while high per-level values should be beneficial for high-level casters.

Let's have an example. Let's say I have a Fizzle spell with an Initial Chance cost of 1 and a Per-Level Chance cost of 5. If it has 50% initial chance, then it costs 50. If it has 10% chance per level, that also costs 50. When I'm level 1 to 4, the per-level version is weaker for the same cost. When I'm level 5, both are equal. Above that, the per-level version is better for the same cost.
We can derive this formula: Let the ratio of Initial cost I to Per-Level cost P be N = P/I. Before level N, it's better to invest in higher initial values. After level N, it's better to invest in higher values-per-level.

Now, I hope it makes sense to everybody that N should always be greater than 1, otherwise it's always better to increase the per-level value from the start of the playthrough. But that's not the case in the base game! Initial cost is often equal or higher than the Per-Level cost. Even when N is properly greater than 1, it's almost always 5 or lower. This means that at caster level 5, there's no point in having any Initial value in any component of any spell effect. In the base game, level 5 happens pretty early.

Casting chance

Any spell effect that supports the Chance component, and uses it for casting chance (excludes Elemental Resistance, mostly), then we'll want that value to be pretty high, compared to Duration and Magnitude. A 5 round Paralyze spell is useful, but a 5% chance to cast Paralyze spell is not. Usually, we'd like our offensive spells to be pretty reliable, let's say at least 75%. But even for a beginner wanting a Paralyze effect with a shy 25% cast chance will add 140 to the spell point cost at 30 Alteration skills, and that's not counting the cost of the Magnitude component. That's certainly more than half their spell points even if they're a Mage with 70 Intelligence. At 70 Alteration, we can get this chance to 50% for the same cost.

It is my belief that Chance costs should be greatly reduced overall.

SpellMaker oddities

This section is more editorial, but here's some issues I have with the classic SpellMaker.
  1. Initial value cannot be put to 0, so the Initial cost is always paid for at least once. Not too bad if costs were balanced
  2. The Per-Level value cannot be 0, though its cost can be. If the Per-Level value is smaller than 1 (ex: 1 per 2 levels), the cost will be 0, even though you do get 1 point ever 2 levels.
  3. For Magnitude, the average between min and max is used for determining the cost, but similarly to Per-Level cost determination, fractional values are truncated, so 1-1 has the same cost as 1-2
Solutions

What are some solutions?

SpellMaker oddities

For the SpellMaker oddities, mods cannot change that as of yet. I have a branch on my DFU fork that allows mods to fix it: https://github.com/KABoissonneault/dagg ... st-formula
I think some changes might be controversial, even though they don't affect the balance of the game on its own. I'll wait for feedback from people before sending a Pull Request.

I have an example mod that fixes 2 of the 3 issues I mentioned, which depends on my feature branch of course: https://github.com/KABoissonneault/DFU- ... ostsMod.cs

If my changes could be accepted, then we're done with this.

Initial cost

The Initial cost of a spell effect should always be smaller than the Per-Level cost. Mods can currently fix this in a tedious way, by creating one class for each spell effect and replacing the effect costs. With the feature branch I linked above, a mod could made this by overriding "CalculateEffectCosts" and simply replacing costs on-the-fly there.

So it should be say smaller, but how small? The Daggerfall Chronicles suggests using spells with high Per-Level values between 5th and 7th caster levels, but does that make the Initial value relevant? How long is a player going to spend in level 1 to 4?

Caster Level

Even though this conversation's been about spell effect costs, there's this issue I have not mentioned: caster levels. In Classic, caster level is equal to character level, for all classes. If you're a Warrior who spent months swinging weapons at rats, your spells are stronger. Same for a Bard that spends his days pickpocketing and talking like a pirate to the waitress. But that's nothing new in Daggerfall.

The bigger issue is that this value goes from 1 to like, 30? That's a huge difference, At some point, you can scale any spell effect component to 100 while keeping the spell point cost under 5. While having a crazy good endgame is Fun, I'd be interesting if mods could rethink the balance by adjusting caster levels.

Oh look at that, I have a pull request to add a formula override too: https://github.com/Interkarma/daggerfal ... /pull/2046

With this, mods could rethink how caster levels are calculated, and what range it should have. Maybe go from 1 to 10, instead?

Conclusion

In the end, I have no idea how to tackle this task. I'd like for casters to have useful spells at early levels, and very strong spells at late levels, while still allowing intermediary and high level non-casters to have useful spells. I'd like some feedback on what I've discussed so far, and would welcome any ideas or existing work people have made in this area. The search function wasn't too useful for me to find existing topics on this forum, unfortunately.

In order to help people get a view of the issue, I've compiled all the spell effect costs in a table (can be opened in Excel or LibreOffice Calc). In that table, like in DFU's code, "Cost A" means Initial cost, and "Cost B" means Per-level cost. The three last columns show what the effect's spell point cost would look like at skill level 5, 50, and 95.
Attachments
SpellCosts.7z
Contains an Excel/Calc file with all the spell effect costs
(25.44 KiB) Downloaded 68 times

Post Reply