Learn Lisp by building games

Not "game dev, incidentally in Lisp." Every lesson builds a real, playable game, and every game teaches a Lisp idiom and a game-programming concept at the same time. Six phases, from never having written a line of Lisp to shipping a capstone.

Built from code that already shipped

Most course material is written for the course. This one is curated from eight sibling repos spanning five Lisp dialects and three runtimes, so the code you read is code that already runs. You build on one primary dialect, JVM Clojure, while every lesson shows you the same idea running in the others.

The spine is raylib, a small C game library, reached through the JVM's Panama FFI. That choice is what lets Phase 3 exist: the same game, ported across three different answers to the question of how a Lisp talks to C.

The course map

One C library, three Lisps

Phase 3 is the part you won't find elsewhere. The same raylib API, reached three different ways, so you can read one example three times and watch the boundary move.

JVM Clojure

78 examples over coffi and JDK 22+ Panama. The runtime marshals for you, and arena lifetime is the one thing it won't hide.

Jolt

75 examples in native Clojure on Chez Scheme. Chez can't pass structs by value, so every struct earns its own strategy.

jank

209 of raylib's 217 official examples, compiled native through C++/LLVM. No FFI at all: the header is just interop.

Quickstart

git clone git@github.com:burinc/b12n-gamedev-course.git
cd b12n-gamedev-course
bb tasks          # everything you can run

You'll need JDK 22 or newer (the course uses raylib's real C API over Panama, which older JDKs can't do), the Clojure CLI, and babashka for the course tooling. Phase 0 verifies all three before you write any code.

Complete beginners are covered from lesson 1, and nothing is assumed. If you already know a language, or already know some Lisp, every fundamentals lesson opens with a skip-this-if-you-know-it callout.

Status

All six phases and Track B are written. The three raylib suites the course builds on are public and linked above, and Phases 0 through 3 run on those alone. Five other sibling repos that the later phases read from are still private, and they're being opened up as the course progresses. Until they land, Phase 4's ECS lesson, the three Phase 5 capstones and Track B point at repos you can't clone yet, and each of those pages says so at the top.

The course material is under CC BY-SA 4.0 and the code under EPL-2.0, so teaching from it at a meetup, a classroom or a company onboarding session needs no permission beyond attribution.