Advertisement

Spell Systems with Depth

Started by April 11, 2012 10:53 PM
19 comments, last by ManuelMarino 12 years, 9 months ago
Hi people.

I've been trying to design a spell system that has more depth than the basic mana/skill tree system found in many games. Any thoughts or comments would be appreciated.

My fundamental idea is to have spells which are a set of runes which obey a grammar which essentially give instructions for how the spell should work. A given effect may be achievable in multiple ways. A new player could purchase scrolls with spells, an advanced player could craft their own spells from scratch using runes.


I'll give a few examples to give a sense of the flavour.


Basics

  • The fundamental operations of a spell may include the following:
  • Summon internal power (withdraw mana)
  • Summon external power (draw energy from heat, nature, etc)
  • Store energy (store your summoned energy temporarily during the spell so it doesn't dissipate into the environment)
  • Transform energy (e.g. turn it into heat, cold, lift, electricity)
  • Summon spirit (e.g. demon, Gaia)
  • Petition spirit (to do something that is in their nature)
  • Threaten spirit (to do something that is against their nature)
  • Bind spirit (to an object, e.g. a golem)
  • Target (a fixed point, nearby lifeforces, nearby magic)
  • Link (to another entity, e.g. for giving/taking energy, mind control, communication)
  • Send energy (e.g. fire a fireball, heal)
  • Ground energy (dissipate any unused energy from the spell)



    Fire Spells

    So you want to shoot a fireball? There's different ways of achieving this:

    1.
    [indent=1]a. Summon internal power.
    [indent=1]b. Transform energy to heat.
    [indent=1]c. Target enemy by life force.
    [indent=1]d. Send 1 unit of energy.

    This is pretty much the simplest approach. Not very strong, low efficiency, but quick.

    2.
    [indent=1]a. Summon internal power.
    [indent=1]b. Store energy.
    [indent=1]c. Summon internal power.
    [indent=1]d. Store energy.
    [indent=1]e. Transform energy to heat.
    [indent=1]f. Target enemy by life force.
    [indent=1]g. Send 2 units of energy.

    A bigger fireball, slower to cast. Slightly better efficiency as we store energy. If the caster is a beginner and can only store 1 unit of energy, this spell will go catastrophically wrong when they try to store the second unit of energy.

    3.
    [indent=1]a. Summon external power (from nearby lava).
    [indent=1]b. Target enemy by life force.
    [indent=1]c. Send all energy.

    A big, quick, efficient fireball as no mana, transformation or storage is needed. It's already heat.

    4.
    [indent=1]a. Summon external power (from nearby lava).
    [indent=1]b. Target enemy by life force.
    [indent=1]c. Send 1 unit of energy.

    Poorly written spell, if the lava has more than 1 unit of energy your caster is on fire!

    4.
    [indent=1]a. Summon external power (from nearby lava).
    [indent=1]b. Target enemy by life force.
    [indent=1]c. Send 1 unit of energy.
    [indent=1]d. Ground energy.

    Either poorly written or the caster only wants a weak fireball. At least they're not on fire.


    Minion Creation Spells

    For creating a golem to help you, here are some approaches:

    1.
    [indent=1]a. Summon internal power.
    [indent=1]b. Store energy.
    [indent=1]c. Repeat above a few times.
    [indent=1]d. Form body from clay.
    [indent=1]e. Infuse clay with body movement limits.
    [indent=1]f. Infuse clay with instruction "Target enemy by life force".
    [indent=1]g. Send energy to clay.

    A quick and dirty single-use golem. Will collapse when enemy is destroyed or runs out of energy.

    2.
    [indent=1]a. Summon internal power.
    [indent=1]b. Store energy.
    [indent=1]c. Repeat above a few times.
    [indent=1]d. Form body from clay.
    [indent=1]e. Infuse clay with body movement limits.
    [indent=1]f. Summon demon.
    [indent=1]g. Threaten demon.
    [indent=1]h. Bind demon to clay.
    [indent=1]i. Tell golem to "Target enemy by life force".

    A multiple use golem which keeps going as long as the demon has energy. This can be increased by providing the demon energy or sacrifices, and decreased by activity or an enemy banishing the demon.

    3.
    [indent=1]a. Summon internal power.
    [indent=1]b. Store energy.
    [indent=1]c. Repeat above a few times.
    [indent=1]d. Form body from clay.
    [indent=1]e. Summon Gaia.
    [indent=1]f. Threaten Gaia (who would view this creature as an abomination).
    [indent=1]g. Tell Gaia to give it life.
    [indent=1]h. Tell golem to "Target enemy by life force".

    A multiple use golem that has requirements much like any living creature. Maybe not as tough as a demon golem, but more durable. This spell will fail in an area where there's too little nature (Gaia is too weak to create it) or too much nature (Gaia will resist your threats).


    Obviously by the definition of having depth it only scratches the surface. Thoughts? Comments?
I think it's a great idea and it'd be cool to see in action but I'm wondering a few things. If you have a whole bunch of runes, would any combination of the runes create a result? If there's a vast number of combinations and only a few work, how would a player figure out what works, just guess and test and hope he doesn't kill himself? Is there a progression of spell power and if so how would it work?
Advertisement
looks similar to a modular spell casting system I tried before but cant remember the name.

Maybe this system is good for a singleplayer but if it's a multiplayer then there will within short time be a forum post or wiki page with all the best spells.
I am not sure how much energy you should draw from nature. I do know some magic systems, ala the Name of the Wind where you have to draw power from a source like that. I dunno. Depends on the limits of that system I guess?

In my game I am creating a complex spell system. The grammar is a little different. You have this:

Base word, standard mana cost, damage type, damage
Type word, projectile, touch, target
Effect word, single target, aoe, multiple target
Mana word, modifies mana cost

Various other modifiers. You can mix damage types and various other things to make new damage types.

So in that it is a player created spell system with a grammar its relatively similar.

I was also thinking of ways to summon minions, maybe bind, or mind control some minions also. I REALLY love minion master style gameplay.

I think that interesting magic systems are totally underrepresented in RPGs, especially MMORPGs.
Basically the way I see it, a player would have various stats that increase as they go, either linked to XP or a skill tree. Some stats that may be useful are: mana, max stored energy, focus, affinity with certain elements. Different stats would determine which spells will work for you. If a spell doesn't work for you, you may be able to tailor it to work for you.

Spell writing wouldn't be random. The world would contain various scrolls and artefacts. You could read their runes and try to recombine or understand them.

In my game I am creating a complex spell system. The grammar is a little different. You have this:

Base word, standard mana cost, damage type, damage
Type word, projectile, touch, target
Effect word, single target, aoe, multiple target
Mana word, modifies mana cost


Cool, I'm glad to know somebody is doing it. I think your language seems to be about what you want to do and mine is about how to do it. I like the idea that the same effect can be achieved in better or worse ways, and that dabbling can go horribly wrong. Stories where spells go wrong can be quite interesting. ;)



I was also thinking of ways to summon minions, maybe bind, or mind control some minions also. I REALLY love minion master style gameplay.


Yeah, minions are cool. :) I think we just need to make sure that people can't create infinite minions!
Advertisement
In my game I am creating a complex spell system. The grammar is a little different. You have this:

Base word, standard mana cost, damage type, damage
Type word, projectile, touch, target
Effect word, single target, aoe, multiple target
Mana word, modifies mana cost

Various other modifiers. You can mix damage types and various other things to make new damage types.[/quote]
Aye, I plan to do something similar albeit purely UI driven from the player's PoV.

Yeah, minions are cool. smile.png I think we just need to make sure that people can't create infinite minions![/quote]
First, I think [this] system is pretty interesting.

That said, my primarily concern is how you denote specific gameplay limitations vs. player-induced error. I'm uncomfortable with the idea of being new to a given function - such as, say, binding and/or raising minions - and, in my attempt to do so for the first time, run into a gameplay limitation despite the entire spell being intrinsically correct. As a cheap example, I have enough "energy" to summon a Mordor-sized army but, obviously, that would be unhealthy for the game so it is forbidden. What happens?

In a more general sense, I see the "error" side of the system being almost - almost! - as important as the successful, magic casting portion. I like that you see the wisdom in a percentage based success/failure system; that is, a player can potentially get some portion of a spell right and still technically have screwed it up. Progression indicators are important to keep players from getting easily frustrated and quitting. For this reason, I would shy away from using total - especially totally catastrophic - errors too liberally.

Lastly, a pregunta: have you thought about what gameplay elements (if there are any?) that will drive the error system after a player has learned a specific spell? It seems like once a player aquires a certain spell and manages to execute it correctly, there's no longer a particularly large chance they'll screw it up. Furthermore, with a generalized grammatical structure there doesn't seem to be a lot of learning once the basics are down. That's totally fine if your focus is exploration, but it seems like that marginalizes the error system (unless the error system is purely for amusement value, which is still a pretty cool idea).

Also, spells like this are the devil:

[indent=1]Summon external power (from nearby lava).
[indent=1]Target enemy by life force.
[indent=1]Send all energy.

Automatic power scaling (which is what send all energy correlates to) completely undermines your selective-energy system. Furthermore, "write once, [s]fail[/s] run anywhere" type spells also undermine your grammatical concept (if they all take the same form, where's the grammatical exploration?).

As a random idea, you might consider introducing "action words" that are specific to each damage type and help shape what the spell actually does. That way you can add customization without needing to redo your grammatical structure. For instance, there is so much more than "burn" that you can do with heat: we visualize "heat" as a roaring flame but you can also use it to sear - concentrate heat on a specific series of points - or gently warm - spread a wave of heat over a wide surface area. Similarly, you can do a variety of things with water - from bludgeoning people with ice cubes (solid water) to smothering them with a bubble of pure H[sub]2[/sub]O.

Brief, dubious examples:

# concentrate heat to create a mental lightsaber
# actual damage/effect depends on how much energy was expended
[indent=1]Summon external power (from nearby lava).
[indent=1]Target enemy by life force.
[indent=1]Sear.
[indent=1]Send all energy.

or:

[indent=1]# bludgeon something with ice cubes
[indent=1]# how many were created and how much they hurt depends on energy expended
[indent=1]Summon internal power.
[indent=1]Transform energy to water.
[indent=1]Freeze.
[indent=1]Shatter.
[indent=1]Target enemy by life force.
[indent=1]Send all energy.

Even with a small subset of words, you can potentially generate a lot of effects if you let the order matter. For instance, moving the "Freeze, Shatter" to after the energy has been sent could potentially denote an enemy that was frozen solid and then broken into many pieces (which sounds absolutely painful).

Anyway, I really like the original concept. Nice job.

That said, my primarily concern is how you denote specific gameplay limitations vs. player-induced error. I'm uncomfortable with the idea of being new to a given function - such as, say, binding and/or raising minions - and, in my attempt to do so for the first time, run into a gameplay limitation despite the entire spell being intrinsically correct. As a cheap example, I have enough "energy" to summon a Mordor-sized army but, obviously, that would be unhealthy for the game so it is forbidden. What happens?


I would hope that skill or level caps would prevent a player from being able to summon this many. However if not, maybe minions need to have an attached liability. For example, killing a minion takes 5HP off the caster. Or the minion can be used as a conduit to send an attack directly to the caster. Something that makes a huge number of minions a liability.


In a more general sense, I see the "error" side of the system being almost - almost! - as important as the successful, magic casting portion. I like that you see the wisdom in a percentage based success/failure system; that is, a player can potentially get some portion of a spell right and still technically have screwed it up. Progression indicators are important to keep players from getting easily frustrated and quitting. For this reason, I would shy away from using total - especially totally catastrophic - errors too liberally.


I think it would be fair enough if the player was alerted what happened when a spell went catastrophically wrong, e.g. "You stored too much energy for your level". If it's just malformed and doesn't work... you're probably getting seriously experimental anyway, so them's the breaks. Another possibility would be a skill for diagnosing spell failures, e.g. it shows you which rune caused the explosion. Debugger anyone? ;)


Lastly, a pregunta: have you thought about what gameplay elements (if there are any?) that will drive the error system after a player has learned a specific spell? It seems like once a player aquires a certain spell and manages to execute it correctly, there's no longer a particularly large chance they'll screw it up. Furthermore, with a generalized grammatical structure there doesn't seem to be a lot of learning once the basics are down. That's totally fine if your focus is exploration, but it seems like that marginalizes the error system (unless the error system is purely for amusement value, which is still a pretty cool idea).


True, the odds are pretty low. But it depends how tricky it is. For example what I mentioned about Gaia and golems. Cast it in the wrong location and it goes bang. Or if you cast it with insufficient mana and the spell stops half-way through... could get ugly.


Automatic power scaling (which is what send all energy correlates to) completely undermines your selective-energy system. Furthermore, "write once, fail run anywhere" type spells also undermine your grammatical concept (if they all take the same form, where's the grammatical exploration?).


I know it seems like I keep adding more stats all the time... well I am. ;) Even as a conduit for power you may have limits, just like a fuse. Too much and kaboom. The other possibility is counter-spells. For example, you keep doing that spell, sooner or later someone will cast a spell that connects to you and seals the power in, then you blow up from your own power source if you keep trying to cast it.


As a random idea, you might consider introducing "action words" that are specific to each damage type and help shape what the spell actually does. That way you can add customization without needing to redo your grammatical structure. For instance, there is so much more than "burn" that you can do with heat: we visualize "heat" as a roaring flame but you can also use it to sear - concentrate heat on a specific series of points - or gently warm - spread a wave of heat over a wide surface area. Similarly, you can do a variety of things with water - from bludgeoning people with ice cubes (solid water) to smothering them with a bubble of pure H2O.


Absolutely, although you'd want them to be generic enough that you can create a cool range of spells, but not so broad that it's impossible to implement them in code.

Thanks for the feedback!

I've been trying to design a spell system that has more depth than the basic mana/skill tree system found in many games. Any thoughts or comments would be appreciated.

My fundamental idea is to have spells which are a set of runes which obey a grammar which essentially give instructions for how the spell should work.
...
Obviously by the definition of having depth it only scratches the surface. Thoughts? Comments?
It's exactly the same thing me and a friend of mine tried to design and implement some years ago. There were quite some problems since start, not much in making the system work but rather in making it affordable (non-intimidating) and predictable. In the beginning, it was some sort of scripting language. It never worked. Then we transitioned to a graphical system. It went somewhat better but the idea of drawing (using mouse!) made the system hard to approach.
We then had an interesting idea: we would produce the runes as building blocks depending on character level - this eliminated quite some complexity - and let the user assemble them like in pipe dream.
Suddendly, this somehow became a much better model. We decided to try running some simple - very simple - hydraulics simulation (pressure, flow). There were plans to consider colors (mana types) and possibly even some multithreading models. I suppose it might have looked like SpaceChem in the end. Unfortunately, SpaceChem is a game by itself and we therefore tried to design a game in the game. As time and money ran out, we had to drop the ball.

An idea you might find interesting however is the way we tried to design power acquisition. We had no classes but rather only a skill system inspired by the GURPS ruleset. Therefore, there was no such difference between "wizard", "druid" or "cleric": instead the player would have to build its runes by itself, by choosing them from a set at each level up.

Wizards would have used the internal willpower. That would allow basically constant output. We often called their mana producers wells.
Clerics would tap the power of their god(s), augmented by the power of nearby clerics (TBD). They would be incredibly powerful nearby a shrine. Their mana producers were called receptors.
Druids would use environment power. There was a plan to maintain a low-resolution power map which would evolve over time (TBD). Without a doubt, the druid archetype would have been the most difficult but powerful magic user. Their mana producers were called harvesters.

What would have been the difference between wells, receptors and harvesters?
They would differ output type, chance of output, chance of failure and output pattern.


How does the system interact with actual gameplay?
All spells which could be bought from stores - in the form of spell, scroll or potion - would have been suboptimal. By building the spell by itself, the player would have the chance to use its magic power with higher efficiency. There also was a plan to add a trading system of some sort, finding someone able to read your spells would have been a considerable accomplishment. We devised this ideal world in which two players would eventually take a long journey just to trade spells with another compatible mage.

I'm sharing this as I'd be really happy to see that working and implemented. Please keep me informed!

Previously "Krohm"

This topic has been brought to the forum many times (try to search for 'spell system' or 'magic system'). However your idea of gathering/storing/transforming energy is pretty neat!

My concern is about how the spell is cast, is this done on the fly? What I meant by 'on the fly' is taking Fireball 1 as example, the player is required to perform 4 action (a, b, c, d) to cast the spell? This could quickly become overwhelming unless you find a very smart input system (drawing system is bad imho).

Another way would be to have an editor screen where you can edit/test/tweak the spell. The created spell can then be linked to a button that the player can press to launch the spell. This would reduce complexity and prevent from the 'oops I killed myself' effect. I don't think this is what you are looking for but just throwing the idea.

This topic is closed to new replies.

Advertisement