From Bad Guy to Baddie
In this newsletter:
- Clojure/Conj Talk Published
- Powder and Plate in development
- Lace programming language in Beta
- Industry News
- New YouTube Video about Zelda: OoT in Production
The Clojure/Conj Talk
A while ago I gave a talk about a programming language we created, called Silk, intended to be a foundational component of some really amazing games. The talk has finally been released on YouTube! You can check it out here.
Slides: lotusmundi.com/talks/conj-2026
Also, there are a few things that I briefly mentioned in the talk but did not nearly get the coverage they deserve. The entire reason I was able to create Silk came down to three major influences:
1. Peter Norvig's Paradigms of Artificial Intelligence Programming, and to a lesser extent SICP and Software Design for Flexibility. If you want to get serious about lisp, I'd strongly recommend working your way through PAIP. Because I was incredibly sleep deprived and running short of time in my talk, I didn't manage to land this point -- but if you study Peter Norvig's work, you will become aware that it doesn't matter if he is writing Python, Common Lisp, or any other language -- this guy is always writing serious lisp. It was from Peter that I learned lisp is not a syntax but a mode of being and a way of thinking. It's about writing languages that fit your problem and then solving for that language. This is a beautiful and powerful way to write code, but it wasn't until I learned the following two resources that I actually understood how to gain practical experience in writing code like that.
2. Dave Farley's Modern Software Engineering, Continuous Delivery, Building Continuous Delivery Pipelines, and the Modern Software Engineering YouTube channel. I cannot stress enough that if you are trying to build large and complex software products, these books are a MUST READ. I should also stress that if you are trying to make small and relatively simple software products, these books are a MUST READ!! If you have any doubt in your mind that there is such a thing as software ENGINEERING, then you really, really need to read these books. From my perspective, one of the best things about them if you are interested in learning to write production programming languages and programming language design, the way Dave teaches testing is really more about language modeling in the form of executable specifications. It will completely change your approach and relationship to programming, and it applies to any language.
3. Markus Triska's The Power of Prolog and The Power of Prolog YouTube channel. I mentioned this briefly at the end of my talk, but what I realized sets Peter Norvig (PAIP, AIMA), Stuart Russell (AIMA and many others), and Sussman (SICP, SDFF) and Abelson (SICP) apart as lisp programmers is that they have studied Prolog. If you've worked with Datomic at all, you've surely realized there's something magical about it. You may have even thought, "wouldn't it be cool if this was an entire programming language?" It turns out that's exactly what Prolog is. Datomic is just a small fraction of what you can do, and while it's a great database, it barely scratches the surface. I genuinely believe that until you practice Prolog, as a lisp programmer you will never understand the gift you have that is homoiconic code nor really understand how to fully exploit that. Most Clojure code I've seen and much of the Clojure code I wrote in my life until recently might as well have been written in Python or JavaScript because I wasn't taking full advantage of the language. I recommend starting with the articles and materials on Definite Clause Grammars and metainterpreters. If it clicks, your mind will be blown. Besides Dave Farley's work, it is the only other practical way I've encountered to get serious experience writing small languages for non-trivial applications, which cumulatively allow you to build large scale languages and systems, and more importantly to begin thinking along the lines of the lisp dream -- thinking of everything in terms of languages.
Strangely, even though I was brought to believe that "making a language to solve your problem" was the norm in lisp programming, it seems in practice this is really not the case. So I'm beginning to put together a set of resources on how to really approach this paradigm seriously, and I'm calling it "depth programming". More on that in future newsletters.
But things have progressed quickly since the talk!
Powder and Plate
Silk is being actively employed in the development of our first commercial game, Powder and Plate. I have learned some really important lessons while developing Powder and Plate with Silk -- namely that the big problem with using Clojure in a physics-heavy Unity game is not limited by processing speed but allocations. In short, the price you pay for the immutable abstractions in Clojure is an accumulation of objects that must be collected, and over time this will result in nasty framerate drops when Unity's Boehm GC comes to collect. I have some ideas for a backend/runtime that will provide some control over this using something along the lines of arena allocations, but in the meantime Silk is being used for off-thread AI (what it was initially designed for) in conjunction with Lace.
Speaking of which, Lace -- the sister language of Silk, an ISO Prolog written in Unity-compatible native HPC# -- is now mature enough to include in games and is being actively used in the development of Powder and Plate. I hope to have some sneak peeks for you of the new game soon. It features some pretty crazy physics-based combat, and it has the base-building (or in this case, ship-building) construction (and destruction!) system that I've always wanted to see in a game.
Industry News
I did a video on the whole "AI is cloning everything" hysteria going on, and I'm still keeping an eye on it. At this point, I'm pretty convinced that the fears of AI cloning on the whole are overrated, but certain forms of piracy seem like they are an increasingly credible threat. I'm still not quite sure what to make of it, but I'll be keeping an eye on it while I'm developing Powder and Plate to try to gauge how and when I should release the trailer, the demo, and the game.
Zelda: Ocarina of Time
Perhaps last but not least, I am continuing my obsession of injecting Silk and classical AI into games where it has no business being -- in this case, Zelda: Ocarina of Time. While I was digging around in the source code, I discovered some really crazy stuff, and I decided to make it into a YouTube episode. I built an N64 in the game Turing Complete, I built a custom Futamura compiler for Zelda 64's enemy AI in Prolog, and inspired by that Draconia Malfoid meme going around I decided to make a female version of Stalfos named Stalfina (of course) who has a really complicated relationship with Link.
![]() | ![]() |

Should be a fun video.
If you've got any thoughts on the video or any games you'd like to see deconstructed, let me know.
Stay tuned, and never stop dreaming.
J.J.

