Serpentine Squiggles

A concept sitting in my head for years is the idea of a fantasy setting being wizard complete. Let me explain.

This is about magic systems. On the face of it, there’s so much variety out there‍ ‍‍—‍ in this world, you speak the true names of objects to exert power of over them; in this world, you train your body to harness and mold magical energy; in this world, you bind demons and compel them to do your bidding; in this world, every song evokes a unique spell; in this world, your soul is a computer to be engineered and programmed.

I want to draw a distinction between powers and magic. In a superhero story, you get powers. Maybe you can fly, or control metal, or see the future, but that’s it. You can get more skilled at it, but few heroes develop thematically unrelated powers. In Jujutsu Kaisen, sorcerers get some basic abilities and are born with innate techniques. In the Mistborn series, a misting gets the powers of one metal, and even the mistborns are still bound to the specifics or what metals are naturally capable of.

Contrast this with, say, Dungeons & Dragons, where there’s entire tomes of disparate spells. In Naruto, you can learn all the elemental techniques, sensory techniques, disguises and illusions, with only a couple of bloodline abilities off‍-​limits. I’m sure I don’t need to list more.

One of the diagnostic questions that’s stuck with me for years when evaluating magic systems is simple: “How do I cast fireball?”

In Dungeons & Dragons or Naruto, there ready‍-​made spells for this. in, say, Fullmetal Alchemist or the Earthsea series, you’d need to study and devise a method using a deep understanding of what fire even is, but it’s doable.

Windows and Linux are entirely different operating systems, but they’re still running on computers, so if you can program one to do something, you can get it running on the other. Computers are said to be Turing complete.

Once you climb to a certain level of complexity, how far you can see starts to look the same no matter where you started climbing.

Similarly, all sufficiently powerful magic systems wind up emulating each other; you can cast fireball in any of them.

But still, what does it mean to be wizard complete? For as long as I’ve had this thought, I couldn’t get more specific than just a vague sense that magic systems can blur together if they get too generally capable.

And I don’t have any insight to tie this all together, but we can lay out just what assumptions are needed to reach this fully general magic system.

The first requirement is we have a system in the first place. We’ll keep it vague.

  1. A person, through their personal will, power, and tools, can perform actions (the casting) to bring about an effect (the spell).
  2. Casting is reliable; you can knowingly bring about similar outcomes.
  3. Principle of Variation: it is possible to alter the specifics of the casting to bring about distinct yet similar spells.
  4. The casting is scrutable; there is a theory and/or practice by which one can discover castings which lead to similar yet distinct spells.

The principle of variation is very important. It’s the key to unlocking the possibilities of system. It means if there’s a fireball spell, then there’s a tweaked fireball spell that’s has hotter flames, or a shorter range.

In short, for every spell, there’s a whole continuum of similar spells.

Now we get into the real magic:

  1. Principle of Composition: it is possible to combine spells such that one is conditional on another or takes effect repeatedly.

This is where the analogy with turing completeness is most obvious, because it’s what lets us construct fancy emulator spells.

In practice, this looks something like a rule that if you have Fireball and Detect Evil, there must be an all‍-​in‍-​one spell that casts fireball if it detects evil. Or a spell that’s Four Fucking Fireballs In a Row.

Why specify these weirdly specific spells when the mage can just cast them manually?

  1. Principle of Abstraction: composed spells are tractable to cast, if not more efficient than casting each component individually.

Put another way, this is the idea that building up complex spells doesn’t explode in complexity.

This is the place where my previous attempt to write this blogpost fizzled out, because. well. String can see it from here, can’t you? We’ve assumed that variants exist, that you can find them, that they get more complex, yet the complexity doesn’t explode. We’ve basically assumed into existence everything we need to make general‍-​purpose wizardry.

But I suppose we’ve handled the induction step without actually proving the base case. After all, switch “spell” for “program”, and by this logic, the C++ programming language is wizard‍-​complete, and while that makes for a funny joke, it’s not what we’re talking about, is it?

It’s not quite enough to have these principles for generalizing spells if you’re starting with a direly limited spellbook. Surely, if the only spell you have is summon hammer, you can be a hammer wizard, but certainly not much more than that.

So, what standard library spells does a wizard need?

Here’s my pick:

Call these this the basis; every spell can be expressed a combination of basis spells.

How do you cast fireball? Levitate an orb of gasoline, telekinetically strike a match, and hurl it at your foe. But perhaps that feels too much like, “How do you draw an owl? Simply sketch an owl, then add shading to indicate the feathers.”

How do you find the oil to burn or the sulfur for spark? That’s where scrying comes in‍ ‍‍—‍ you can detect specific materials, then use telekinesis to attract that specific element to you. Elementalism is just a very precise application of telekinesis.

You can craft illusions by levitating an array of pigments, maybe craft your own floating LEDs for the light source. You can heal people by preference telekinetic microsurgery, or scry for individual bacteria and virus and sift them out. You can do telepathy by scanning brains and pinching neurons.

More interestingly, you can create cool ‘ghost matter’ (e.g. for mage hand) by using metamagic to have strong telekinesis spells paused except when scrying detects something is about to cross the boundary of the ghost matter.

But I digress. This is all extremely “draw the rest of the owl”. The spells needed to do any of this would be very, very complicated, but the point is that in principle they are possible. (If you could get Grand Theft Auto running on Minecraft redstone, but it would be so complicated.)

But maybe you think this runs afoul of the principle of abstraction. The whole motivation for that rule was that it was useless to suppose fully general magic exist if it’s too complicated for anyone to cast. And this is true!

Still, I think it’s instructive to note that I am discussing a worst case here‍ ‍‍—‍ in most settings, you have much more efficient ways of accomplishing all of this. You don’t need telekinetic microsurgery, just mold medical chakra. You don’t need to perform brain scans, just ping the soul.

Put another way, most magic systems provide helpful libraries and interfaces for efficiently designing these spells, rather than assembling (heh) them from base principles.

But there’s a profound limitation in this preliminary proposal for a universal magic system: you cannot summon. You cannot teleport, and I’m not even sure if you can transmute.

And stuff that you often want to do (e.g. look into the past or future) are impossible except in principle by setting‍-​breaking conditionals like “first build a planetary supercomputer that can simulate the universe”‍ ‍‍—‍ and that’s just an approximation!

Related to the problem of summoning, my friend mink has an awesome and detailed article on ectoplasm which I could not outdo in a quick tumblr post (go read it).

Adding ectoplasm‍-​like spellmatter gets you a lot of mileage, but for a fully general magic system you’ll want to add a spell for teleportation, and perhaps creating and shifting pocket dimensions.

But a problem I have with the concept of just adding these to the basis spells is that… Telekinesis and scrying are modest, atomic operations. They feel a lot like convenient extensions of existing physics. “Create demiplane” by contrast, feels pretty magical!

More importantly, this isn’t just cooking up a magic system‍ ‍‍—‍ the point is minimal axioms. Having such strigent requirements on generality puts the project of emulation in a bind.

But I guess this just highlights a problem that always existed. How do you teleport in Fullmetal Alchemist?

(Though I suppose you’d already be struggling to fully imitate the basic telekinesis/scrying spells…)

Still, I think it’s worth separating “weakly wizardly complete” settings where you can, for instance, do elemental magic, cast illusions, fly around, send messages, and “strongly wizard complete” settings where you can see the future and pull swords from thin air and fling portals around.

Does all that make sense? I’m posting this on a day when I’m clearing out my old drafts. I added several pages to this but I don’t know if I really brought it to a conclusion. whatever, go my rambles.