I very much believe the world needs more DSLs for doing traditionally-point-and-click-adventure kind of operations in an easily auditable, reproducible, parameterized, precise, and programmatic way.

This is my first significant project in service of being the change I want to see in the world. (It’s a few years old at this point, but I wanted to show/tell it anyway.) It’s a DSL for making simple web comics and story boards.

This is a “scratch my own itch” kind of project. I was GM’ing a 5e game and I do my notes digitally. I have a system for managing my GM’ing notes in digital form that translates extended-syntax Markdown into HTML pages for me to reference at the table. (Yes I should open-source that as well, but I haven’t gotten to it yet.) And my brain absorbs a story board way quicker than text. So I wrote codecomic and added some code to my GM notes system to let me just embed codecomic source code in the markdown such that it would render the comics to images and embed them in the HTML. That all took me from “ok, hold on everybody while I read the next paragraph of dense text about what’s going down over the next 5 seconds of in-game time” to getting all the same information at a glance. (I still had bulleted lists of more reference information surrounding the story boards, but the story boards really improved the flow of the game.)

Go is my (no pun intended) go-to language for most things lately, and codecomic is written in Go. (I don’t know quite what to call the codecomic program. “Interpreter”? “Runtime”? “Engine”? “Processor”? Maybe just “program”.)