Spell energy management is all about making sure that the caster can pay the costs of the spell at the time of casting.
This article is about the design approach I’m taking that will allow for a very flexible approach to applying different costs to cast a spell.
Each spell uses a template, such as m_i_t, to describe the costs the caster has to pay. This template consists of the following attributes:
- applied when
- turns delayed
- calculation method
At first this looks like a lot of attributes just to describe the energy costs of a single spell, but this approach actually provides a great deal of flexibility and easy tuning options during the balancing period.
The mnemonic attribute represents the visible tip of the energy cost template as it’s the only attribute that’s present in the spell template and it is also used as a reference point in the code. It’s worth noting that this value can be anything the designer/modder wants it to be, the only requirement to use it is that the spell template contains the same entry.
The description attribute is only ever used during analysis of any bugs and is never seen during a game.
The meta-material attribute is where things get interesting for the designer/modder as this allows them to specify exactly what the cost is to cast the spell; So it could be the typical approach of mana or may be a less typical approach of health or the even rarer approach of forcing the caster to make a sacrifice of an ally to cast the spell.
The applied-when attribute provides the designer/modder the opportunity to subtly alter how the player acts during game player with their character. The options available are instant and delayed, and both relate to when the energy costs have to be met.
If the applied-when attribute is set to delayed then the turns-delayed attribute will be used to determine how many turns must pass before the energy costs have to be payed, this is really where the designer can affect the game play. For example, if there are a few spells set to delayed energy costs then the player will notice that he can cast these quite quickly with no instant reduction in say their mana…but then all of a sudden the spells require their energy costs to be met and he/she could quite literally run out of mana just when it’s needed.
The calculation-method and meta-material-amount attributes allows the designer/modder an even greater level of control over the energy costs of the spell currently my game supports three different ways to calculate the costs of casting a spell.
This calculation method is literally what it says, the cost of the spell is a constant amount of meta-material, regardless of the experience level of the spell.
For balance reasons I only use this calculation method for either very trivial spells or spells with a very long cool down timer or some other constraint. I’d be very wary about balance issues if it was used in offence spells.
Using this calculation method provides the designer/modder with a chance to provide a random cost to cast the spell within a lower and upper range, think 1-10. To be clear this calculation method means the cost to cast the spell is potentially different every time it is cast and cannot be guaranteed.
Using this calculation method presents an element of tactics to the player.
This method provides the greatest flexibility and range of options for the designer/modder, in fact it opens up a subset of templates that are aimed solely at the spell energy management sub system.
This calculation method allows for the cost to cast the spell to increase based on its current experience level; Simply put the higher the experience level the more it costs to cast.
With some understanding and play testing a wide range of spell energy costings can be generated that either encourage or constrain the player with their spell casting, which in turn will directly affect how the game can be played, which should lead to a richer gaming experience.
This sub-area of magic/spells may seem a little abstract at first but it provides the designer with opportunities to provide some interesting twists on spells. For example use the sacrifice cost on a (standard and well-known) fireball spell and suddenly the player thinks differently about casting this spell. Especially as now he has to spend one or more turns gathering allies before he can cast the spell!
Let me know – as always – what you think through the comments.