A Programming Language In Magic: the Gathering

Welcome! Here you can read about constructing a microcontroller programming language entirely within a game of Magic: the Gathering.

Here's the YouTube video of the presentation we gave at the FUN With Algorithms conference 2024. We talk through the content in a fairly accessible way. Alternatively, you might enjoy the silly song version.

Paper

Here's the full-length paper. It contains all the high-level overview and low-level details of all the cards that make up all the instructions in the organising language.

Here's the 20-page paper that was published by the FUN With Algorithms conference 2024. Some of the details had to be cut to fit into the length requirements.

Simulator

Want to play with the language? Here's an interactive JavaScript simulator! It has all the sample programs from the paper ready to load, or you can write your own code.

Read the details

Here's an HTML view of the same information. It doesn't have the high-level explanation, but makes more use of colour and context-sensitive tooltips to explain what the changes to cards mean and why and how we do them.

Who made this?

Previously the two of us collaborated with Stella Biderman and Austin Herrick to prove Magic: the Gathering is Turing complete. Here's our paper proving that, which was published by the FUN With Algorithms conference in 2020. And here's a video of Alex explaining the result at the FUN Conference in 2022 (since 2020 was cancelled due to COVID-19).

Soli Deo Gloria!