Today marks the last day of my six-week half batch at The Recurse Center, a self-directed programming retreat! This is my return statement, a tradition where Recursers reflect on their batch. Here is a non-exhaustive list of things I worked on!
The weekend prior to my batch, I worked on Burger Boy with my friend Sebastian for a 48-hour game jam. The first thing I did at RC was make a visual level editor so my non-technical friends could create and share levels.
Throughout RC, I did lots of iterating on onsclom.net, the site you are on now! The homepage features an artsy, interactive <canvas> background which took many cycles of iteration to get the current behavior with great performance on low-end devices. For the blog portion of my site, I switched from using Astro to a more handmade solution with no dependencies aside from Bun.
I started diving into WebAssembly! I made maze.onsclom.net to benchmark JS vs WASM (generated from C using clang directly) on the same maze generation algorithm. I then made game-of-life-wasm.onsclom.net where I called JavaScript functions from C to implement game of life.
I built a parser for (a small subset of) C using C. I compiled that parser into WASM and visualized the ASTs it generates in the browser with custom, interactive force-directed graphs. Check it out @ ast.onsclom.net!
After a long break from writing, I wrote Why I Use One Global Variable for My Game State.
I made a text editor "from scratch" using C and SDL3. It is software rendered using existing open-source pixel fonts. Iterated to add syntax highlighting (using my C tokenizer code), basic vim controls, and an animated cursor!
I participated in Ludum Dare 59, a 48-hour game jam, and submitted The Transmitter. This is the 8th game jam I've participated in, and I'm proud to say this game has the most polish and features of any previous jam game I've made!
To learn the math behind 3D rendering, I made a simple software rendering demo using TypeScript where you can move around with a first-person perspective.
I built demos to measure input latency across different software and device pairings, measured with a high framerate camera, then shared the findings in Input Latency Measurements.
On my Playdate, I recreated the OP-1 Tombola Sequencer using the C Playdate SDK, with the crank controlling rotations and the accelerometer setting gravity direction. Here's the code.
Lots of pair programming with other awesome Recursers on small-ish, from-scratch projects:
- HTML + JS Mastermind
- Stacker arcade game
- Custom search engine to more quickly access Recurse resources
- Space Invaders in C with Raylib
- Web Tombola Sequencer
I am very happy with both the quantity and quality of work I accomplished during my batch! RC was everything I hoped for and more. I got to meet and work with a ton of amazing people. It feels amazing to be connected to such an awesome community of like-minded people.
If 6 or 12 weeks of self-directed programming with other intrinsically motivated programmers sounds exciting, I highly recommend applying to Recurse.