the Minecraft Trickster mod has all the syntactic clarity of Doctor Strange sigils and all the semantic clarity of lambda calculus. it’s like if a crazed mathematician was given an unlimited supply of coffee and one screenshot of Fullmetal Alchemist and told to invent a magic system. it is exactly as mind-bleedingly arcane as I always imagined fantasy magic would be
I spent three hours trying to create a very simple loop and now I can’t figure out how to recreate it. this is a recommendation btw. this mod is incredible
@a_blahaj it is actually very Lisp-like! it’s a functional programming language with a “code as data” philosophy, where code is represented by nested datastructures. and you can even have macros which behave just like Lisp macros, except they operate on {the datastructure that defines a Trickster spell circle}
with that being said, the specific semantics of Trickster are different than Lisp and so are the datastructures, which threw me for a loop until I got used to it lol
@kasdeya now we need one more: python in minecraft
tbh, minecraft is alr turing complete so you can do it even in vanilla
update: I created my own DSL for expressing Trickster spells in a more familiar Lisp-like syntax with some syntactic sugar for abstracting the complexity, and it looks like this:
($mine-tree; $self $block-type $coords) =
(run-same-args;
(switch;
(!=; block-type (get-block-type; $coords)) '()
'(void;
(break-block; $coords)
(sleep)
($self; $self (+; $coords (vec; 0 1 0)) block-type))))
($mine-tree;
$mine-tree
(get-block-type; (get-look-pos; (get-player))))
(get-look-pos; (get-player))