The Absolute State of Video Game Magic Systems

This is part 1 of a 2-part series on magic systems in video games.

This was actually the first post I started writing for this blog, but I ended up dragging my feet on finishing it. Like most of my posts, it’s adapted from a rant I gave on multiple occasions, and then decided would be better communicated as a post I could refer people to.

Foreword

Magic is everywhere in video games, but is boring slag in so many of them, and it bothers me. So, in this post, I’m going to elaborate on the sorts of magic systems that exist in video games, a bit about how most of them are so fucking bland, and some ways in which a minority of systems do a bit better. Then, in the next post, I’m going to discuss more about what is generally missing and what can be done to improve on the current state of things.

What Should Magic Be?

What I, personally, want out of magic systems in games is as follows:

  1. Creativity and Expression: Players should have a wide range of creative possibility with your magic system. Creativity is one of the best things you can allow to exist in your game, and magic systems are a perfect place for it. I may also use the word “dynamic” to denote the quality of enabling this sort of creativity.
  2. Mechanical Complexity: This one might be more contentious, but I think a magic system should be complex. That doesn’t mean it has to have a high skill floor, but it does mean that it has to have a high skill ceiling: lot of depth. It can’t feel like magic if it’s less deep than a game of “dice”.
  3. Feels Like Magic: You’d think this would be obvious, but I’ve seen a number of games utterly fail at this one. Your magic system has to actually feel like magic. If it feels like I’m writing code or matching cards, you’re doing it wrong.

With that established, I’m going to detail several categories of magic system and their failings and successes.

Supercategory 1: Discrete Spells

The systems in this supercategory have the least systemic nuance, and honestly they might as well just be one category, with the next supercategory representing all the other systems. The only reason this supercategory is split in three is that it represents the vast majority of magic systems in games, so the differences in categories is more noticeable, and matters more than it otherwise might.

Discrete Spell Systems use a list of specific spells the players can cast, with their own discrete effects. A player who knows how to cast Fireball cannot necessarily also cast Ray Of Fire or Fire Bolt, even if those are both easier spells in the same vein as Fireball.

All that’s not to say that none of these categories can contain enjoyable systems, just that their complexity and creativity is severely limited. None of these systems feel particularly magical, but they do a better job than “Literally Just Programming” systems.

Vancian Spellcasting

Vancian spellcasting is the only system on this list with a specific name, which it gets from the author, Jack Vance, of the books it is based on (Dying Earth). This system is the system used by Dungeons & Dragons, and if you have any interest at all in this topic, it’s the one you’re most likely to be familiar with.

Vancian spellcasting is defined by the fact that characters can memorize specific spells, and when they cast them, they are forgotten. If my character has the ability to memorize 4 spells at a time, then I might have Haste, Fireball, Shield, and another Fireball memorized, and when I cast one of those spells, I can no longer cast it until I memorize it again (in D&D, that’d be at the beginning of an in-game “day”).

Newer variations of Vancian casting allow characters to memorize a certain number of spells at a time, which can then be cast any number of times using a finite set of “casting slots”, or forego the “memorization” step entirely and allow players to cast any spells they know using their limited casting slots. I’m choosing to still call these variations “Vancian” for simplicity.

This system is extremely uncommon in video games, and the only video games which use the standard Vancian system are based directly on Dungeons & Dragons (like the first Final Fantasy or Baldur’s Gate). The most currently notable example of a type of Vancian system in video games is the first Dark Souls, which differs from the standard only in that each memorized spell can be cast a specific number of times per spell, per rest, instead of exactly once.

Dark Souls

Spell Points

Spell Points spellcasting is similar to Vancian in that it uses a list of discrete spells, but instead of being able to cast each spell a set number of times, players can cast any spell they know or have memorized as many times as they like, but it uses a finite resource, usually called Spell Points or Mana.

How players regain Spell Points varies from system to system, as does how variable Spell Point usage is from spell to spell. Skyrim, for instance, has a large number of points which regenerate over time, and more powerful spells use more and more points; whereas some other systems might use one point per spell and require you to rest or drink a potion before you regain them.

This system is much more common, and is used by the Elder Scrolls games, most of the Dark Souls games, and the Final Fantasy games starting with II (please note, I have not played Final Fantasy games past III or Elder Scrolls games before Skyrim, so I may be slightly wrong about exactly which games use exactly which systems).

A spell being cast in Skyrim

Cooldowns

Cooldown Discrete Spellcasting works much like the previous systems, except instead of casting spells a set number of times or using up a finite resource, every spell can be cast as many times as you like, but cannot be cast again until a set amount of time has elapsed (usually a different amount of time per spell).

This is a popular option for real-time games with combat which relies primarily on spells (or skills that work like spells), but generally isn’t used in turn-based games.

Cooldown Discrete Spellcasting is also quite common, and is primarily seen in MMORPGs and games like Wizard of Legend.

Wizard of Legend

Supercategory 2: Dynamic Spellcasting

Ok, now we get to the good stuff. Every interesting and deep spellcasting system falls into this category.

Dynamic spellcasting systems vary a lot more than Discrete spellcasting systems, and are only really a group in that they aren’t Discrete.

Most of these sytems are much less common than anything in the previous section.

Combining Elements

This is the system used by the Magicka games and Mages of Mystralia. It involves combining several “elements” into an effect, generally with the first element defining the form of the effect, in combination with which “form” you cast it in (by pressing a different cast button).

For instance, in Magicka, you might “force/beam” cast a spell starting with death and following with 3 fire to shoot a beam of fire. Elements can also be combined into other elements by adding them after eachother. for instance, if you have both fire and water in a spell, they will merge into steam.

These systems also generally include the ability to cast special spells by inputting a specific set of elements and casting using a special form. For instance, in Magicka, you might “magick” cast a spell with lightning, arcane, and fire (in that order) to double your speed for 10 seconds.

WTF IS ARCANE? IS THAT A REAL MAGICK?

This system definitely allows for much more variety and freedom than any of the previous systems, and still allows for some of the special discrete spells of the previous system. Personally, I prefer a system with slightly more allowance for creativity, but this clearly scratches the itch for some people.

A spell being cast in Magicka 2

Form + Effect + Spice

I haven’t seen this system as a core part of any games, but it exists in at least two places:

  • the tabletop roleplaying game Pathfinder (1st Edition)’s Ultimate Magic introduces an optional spellcasting system called Words of Power;
  • and the Minecraft mod Ars Magica (not to be confused with Magicka, which we just discussed, nor Ars Magicka, which is a tabletop roleplaying game), which was later succeeded by a mod called Ars Nouveau.

So, in this system, you may combine a number of “effect words” or “components”, which determine the effect your spell has on the game world, with a single “target word” or “shape”, which determines the spell’s maximum range, how it affects its target(s), and how those targets are chosen. For example, a spell with the cone target word affects everyone in a 10 foot cone-shaped emination from the player, but a spell with the selected target word would affect a number of specifically selected characters, and a spell with the projectile shape would be launched in the direction the player is looking.

In addition to those two types, there are “meta words”/“modifiers”, which modify the effects of a spell in miscellaneous ways. For example, the distant meta word increases the maximum range of a spell, the manifestation meta word makes the spell target the character’s physical defenses if it would otherwise target their mental defenses, and the bounce modifier makes the spell bounce on the ground until it disappears.

This system is definitely interesting, and allows for some creativity and adaptability. I would be interested in seeing more video games pursue systems like this, particularly as a core system. I imagine a game built around a mechanic like this could be very interesting.

The spell creation interface in Ars Nouveau

Noita

I’ve only seen this system in the one game, but it’s unique enough to definitely deserve its own section.

Noita is a powder-physics based roguelike game with a spellcasting system based around creating and customizing different wands.

These wands are randomly generated with a number of properties, which determine how many spells can be held within, how those spells are cast, etc.

They also rely on a series of different spells, which consist of the following main types:

  • Projectile spells, which shoot a projectile from the wand, generally in the direction the player is facing;
  • Projectile Modifier spells, which modify the next Projectile or Multicast spell the player casts;
  • Multicast spells, which cast a number of later spells at once;
  • Passive spells, which take effect for as long as the player has the wand active;
  • and a lot of other types of spells that I’m not going to go into, because it’s not really necessary for this article. Suffice to say, Projectiles are not the only type of active spells.

These spells can be combined in any order in a wand, and the wand runs through them when cast, up until the last projectile spell (barring multicasts, where it of course lasts through each affected projectile spell).

The combination of these spells and wands is definitely interesting, and while it’s somewhat more limited than the next set of systems, it does have the advantage of being much easier, while still being very dynamic and allowing for a decent amount of player creativity.

Wand creation in Noita

Nurose

Nurose is an online dueling game where players fight eachother using custom spells. It has a spell-building system a bit like Noita’s, except on a graph instead of a line/array, with a heavier focus on shooting and controlling discrete projectiles.

Spell creation in Nurose

The grid programming system allows for a lot of creativity, but doesn’t feel magical at all, and the oversimple game world limits its complexity.

Additionally, while it’s an interesting system, it’s sadly tied to a multiplayer dueling game with a very small community. Still, it’s worth trying if you’ve got a friend to play with or want to join the Discord server to find players.

Programming as Spellcasting

Okay, so there are enough important differences between these systems that I’m going to address them separately.

In general, these systems are differentiated from the others by being much more dynamic and complex, but in many cases just not feeling like magic at all.

Literally Just Programming

The least interesting subset of all: these games are almost exclusively educational, and do very little to make themselves feel like more than just doing my desk job in a fantasy setting.

In these games, you generally type out the thing you want to happen in code, with access to a number of functions and/or objects which do things in the world, and then it happens. This just feels like opening up the console for a game written in JavaScript, and is about as interesting.

I honestly don’t care to find examples of this type of system: it’s been thoroughly explored by low-quality edutainment games, and has been found boring and bland. NEEEEXT!

Psi

Psi is a Minecraft mod based on the (frankly, amazingly terrible 1 No, really, try reading it. It reads like an Ayn Rand novel, if Rand were a horny teenage boy who really wanted to have sex with his sister. I was surprised when the main character joined the Morals Committee (a thing I’ve literally only ever seen depicted as evil in anime), but then baffled as he proceeded to be even more evil than any other depiction I’ve seen of the role, but still consistently treated as a hero! Wild! ) webnovel / light novel / manga Mahouka Koukou no Rettousei. In it, you create spells by placing and connecting tiles on a grid. Some tiles are arithmetic or geometric operators, some provide information, and some do things with that information. It’s a lot like if Scratch was on a 2D grid, and attached to minecraft.

Psi's Spell Grid

This system is definitely not literally just writing code, but it sure still doesn’t feel magical. We can do better.

Hex Casting

Another Minecraft mod, Hex Casting is quite possibly the best magic system I’ve had the pleasure of engaging with. The fact that it’s functionally just a programming language behind-the-scenes should serve to demonstrate how poorly-plumbed these mechanical depths are, but nonetheless, it is the best.

Hex Casting is a fully-functional, Turing-complete programming language. What sets it apart from other programming-as-magic systems is its input method.

With Hex Casting, a player draws different patterns on a hexagonal grid, each one forming a part of the spell being cast. The programming language is minimal, and reminiscent of an assembly language or possibly an esoteric programming language.

The pattern-based input method does a lot to make this system feel like magic instead of just programming. It’s not perfect, but it’s a significant improvement.

Hex Casting is also different from the other systems mentioned thus far in that it uses the same system for two different modes of casting: free-casting and making reusable spell-items.

Where Psi and Noita both involve creating reusable spellcasting items with set spells, and the Magicka games involve free-casting spells in the moment, Hex Casting lets players do both with the same system. Players can create casting-items by drawing the patterns of their spell, encapsulated within a set of patterns which cause the spell’s patterns to be stored instead of cast, and then casting another pattern to inscribe the stored patterns into an item.

What’s excellent about this system is that it means the time you spend crafting reusable spell-items also trains you for free-casting. Gaining and using this type of expertise is an amazing feeling.

I remember clearly the first time I was out in the wild and needed to get somewhere, and I cast a spell from memory to launch myself up a mountain: I felt like a real fucking wizard!

Spellcasting in Hex Casting

Bonus Example: Trickster

Trickster asks the question: “What if Hex Casting used Lisp-like functional programming?”

The answer is that you get something even weirder—and, as a magic system, thus *better!* 2 I’m half-joking here. It’s less magical-feeling than Hex Casting, but it’s definitely an interesting system.

Spells are written practically in-reverse, starting with the final glyph and ending with the inputs. While less polished than Hex Casting, it’s a fantastic system, and I absolutely urge you to give it a try.

Spellcasting in Trickster

Conclusion

Magic systems in most games amount to “click the button, get a specific effect”. There are a few indie games which buck this trend, but it’s a vastly unexplored part of design-space, and like half of the interesting examples only exist as Minecraft mods.

Magic systems are a vast and untapped part of game design space, and I think it’s a bit of a travesty that they’re such an unexplored part. Hopefully, with this post and its upcoming sequel, I can convince you to try your hand at it, and together we can make something really magical.


  1. No, really, try reading it. It reads like an Ayn Rand novel, if Rand were a horny teenage boy who really wanted to have sex with his sister. I was surprised when the main character joined the Morals Committee (a thing I’ve literally only ever seen depicted as evil in anime), but then baffled as he proceeded to be even more evil than any other depiction I’ve seen of the role, but still consistently treated as a hero! Wild!
  2. I’m half-joking here. It’s less magical-feeling than Hex Casting, but it’s definitely an interesting system.