It’s no secret that I enjoy high fantasy. Elves, dragons, magic, the whole shebang. I’ve played lots of dungeons and dragons with many people both as a player and a dm. Recently, I’ve been listening to the Arcane Ascension audiobooks by Andrew Rowe. It’s perfect for people who like lots of logic with their fantasy world. It’s inspired me to learn more about hard magic systems and how I would go about creating my own.
This leads me to my next game idea: An enchanter’s workshop simulator. The core gameplay would revolve around the player etching runes into various items in order to give them fantastical effects. For example, say you get a simple request for an enchanted flaming sword. How would you go about it? You could have a single rune that just causes the sword to be on fire the whole time. Or you might add some more to be able to toggle the flame on and off. But what would the trigger be? A button? A thought? Maybe it turns off when its sheathed. Then you’d probably need to enchant the scabbard also. Then of course there’s the size and power of the flames, the different attacks, the durability, etc.
Now the scope of a game like this is well beyond my capabilities, but it’s a fun mental exercise to try to implement some of the features. I’ve already been fooling around with some ML OCR (Machine Learning Optical Character Recognition). I used it for a coding challenge to read a randomly generated string in a spiral:

So I bet I could create an ML model to detect the kind of rune that players carve into their items. Then in order to achieve certain functions, you’d have to string together basic runes into something more complex. And when space becomes limited or you are repeating the same glyphs too much, you could combine them into compound glyphs and then you’d have recursion and… yeah its basically a programming language.

This lead me down a rabbit hole of “how to make a magic programming language.” I would need a base set of runes not only for the basic magical elements like water, fire, earth, and air, but also function and control flow runes like if statements and loops. I also thought about how to represent numbers and I found a cool system called Cistercian Numerals where you can represent all the number from 0 to 9999 in a single symbol:

It definitely seems plausible to assemble all the pieces, but is this a good format for a game? Players would essentially need to memorize a new language. It may be easier for people with a programming background, but the learning curve is still pretty steep. However, I quite enjoy programming games and there’s definitely a niche audience that would have a blast with this. In Else Heart.Break(), it has you learn a new programming language in order to change the function of everyday objects; like reprogramming your soda can to give you speed and stamina. Or you could look at anything by Zachtronics with most games requiring you to learn the language to solve increasingly complex puzzles. So while most people would get turned off, there is still a community out there that would appreciate the ability to make wands of infinite explosion or mass shrink spell or whatever.
There are other games that involve spellcrafting systems also like Noita, Magika, Tower of the Archmage, even one that is very close to what I want called Code Spells, but I want it to be less about combat and more about growing your skills in an enchanted workshop. So maybe I’ll revisit this idea when I’m more experienced, but for now, I’ll just settle for making up wacky spell effects in dnd.


Leave a comment