Invest six or 12 weeks programming at the edge of your abilities alongside motivated peers. Do a programming retreat in NYC, hybrid, or remotely.
I was accepted into Recurse Center earlier this year and started my batch this past week, on May 19th, 2025.
While I'm currently attending remotely from Seattle, I'm putting plans in motion to make it out to NYC, to spend as much of my 12-week batch as I can at the hub in Brooklyn.
What I'm Doing At Recurse
After working on Canvas Lord and WriteGames.com on-and-off for the past 4 years, I'm ready to put my head down and get them published!
WriteGames.com is an upcoming educational game development website that uses Canvas Lord to power its interactive tutorials. Many of its individual components are built, but they need to be stitched together and made more robust.
Beyond that, I'd like to learn how to maintain open-source projects, get comfortable contributing to other open-source projects, and remember what it was like being a fresh to game development. There's so much knowledge I take for granted, and being able to see things through the lens of folks figuring it all out is an opportunity I can't let pass by.
And, of course, I'll be doing a lot of pair programming! There's a few projects others have going on that I'm looking forward to contributing to.
What I Did This Week
I wish I had taken better notes! So much happened this week.
There were interest groups for game development, TypeScript, and language/linguistics that I attended. Beyond that, I ended up meeting a handful of my batchmates, chatting about every topic under the sun: indie games, languages, Lego, food, math, CSS, graphics programming, game development, puzzles... the list could go for quite some time.
One of my batchmates, Cyrene, was working on a watercolor shader for their site. We worked on it during the pairing workshop, and almost got it working! It was my first time playing around with Three.js, which I was shocked to understand after having studied shaders last year. Just a couple years ago, it would have all been gibberish to me.
Wednesday's creative coding workshop had me teamed up with Raunak. Together, we extended a pong project of his using C & Raylib, adding "fake springs" to collide with. Raunak's codebase is super clean, and Raylib seems pretty straight-forward. I might give it a go again at some point.
On Thursday, I decided to sign up for presentations. One of the hard parts of being remote is having everyone at the hub remember you're there, so I figured it'd be good to make myself as visible as possible.
I gave a 5-minute presentation titled "Making Games with the DOM". During the talk, I briefly touched on the history of interactive experiences in web browsers, and how you don't have to use any technologies beyond HTML, JS, and CSS to make games - not even the canvas! I showed off Yksi, Regretris (by WITS), and RADICAL SCRABBLE, all of which use this DOM-based strategy.
This Week's Daily Sketches
One of the things I want to get out of Recurse is to work my educational muscles. I've done tutoring and led programming classes in the past, and want to combine coding & education. WriteGames.com.
I've also been posting vertical versions of each sketch to YouTube and Instagram each day. Follow me to watch my progress as I make more complicated animations.
Here's the first five sketches!
More Posts, Maybe?
We'll see how good I am with posting these - I waited until pretty late on Sunday to get this out. There are writing groups at Recurse, so ideally I'll be able to leverage those to help me stay accountable.
2024 makes my pattern matching brain light up. There are soooo many patterns to be found in this sequence of numbers, especially when you split it into two chunks ("20" and "24"). 20 and 24 have a 5:6 ratio, which will show up again and again throughout this post.
With 2021 rolling around, many people are finding themselves creating New Year's resolutions. As someone who doesn't participate in aligning my self-improvement schedule with the changing of the calendar year, I was surprised to hear Pixelscapes Wallpaper screaming "New Year, New Me" as the clock struck midnight. Honestly, a terrifying way to begin 2021.
Unlike us mere mortals, Pixelscapes is an app and doesn't have the ability for self-change. So, I had to do some work to help it out. Let's take a little history trip back to everyone's favorite year for some much needed context.
Hello there! It's been a while, friends. This post is contains politics, and my anger, frustrations, and growing hopelessness with the current state of the world (I'm talking coronavirus). Please turn away if you do not wish to read that kind of thing. I personally am getting to a point where it all is becoming a bit much.
Even without attending GDC, PAX, or any other games events, March still managed to be a wild one this year. I haven't been updating my blog at the frequency I intended to, so I decided to lump all of March's ongoings into a single post.
Tincan 2 Version 2.0 Released
At the beginning of the month, I re-released Tincan 2 and wrote about what I fixed in the game, to celebrate 11 years since I first started making games. It's still using Flash, since I mainly just wanted to update the existing game. An HTML5 port might happen someday if I can find the time and motivation! For now, I'm happy with this.
Client Work with Custom Game Engine
I've been working on a small set of mobiles games for a client. HTML5 is the technology I'm using since I have no prior iOS experience, and I decided to use the opportunity to write a custom 2D HTML5 game engine.
In case you missed it, I re-released Tincan 2 on Wednesday, and before then, I spoke about the Seven Deadly Sins of platformers that I managed to commit with the original release of Tincan 2.
The final part of my deal is to speak about how I addressed the issues, so you, fellow developer, or curious player, can go forward armed with the knowledge to keep yourself safe from the Dark Lord.
The Seven Deadly Sins, Redeemed
1: Not listening to advice
A lot of the advice from version 1.0 back in 2012 focuses on the other parts of this article, such as the slippery physics, level curve, and WASD controls.
Over the past few weeks, Ian Jones gave me a lot of great feedback, which was paralleled with others I let test the new version of the game. Thanks to their input, I was able to address some issues I might not have worried about. Knowing that certain things annoyed players, or were a frustration, allowed me to take a step back and ask myself "how can I minimize that frustration with this element of the game?"
Yes, you read that right. A new version of Tincan 2 has hit the web. Sound the alarms.
If you've been eagerly awaiting the follow up to the cliffhanger from Monday's post, this is it. Part of the deal was to remake Tincan 2 to make it more accessible to players. The new version has multiple difficulties, redesigned levels, and some new music from Zack Harmon.
Today (March 6th, 2019) also marks 11 years since I first downloaded Game Maker 7. In those 11 years I've met some fantastic friends, contributed to some cool projects (you can see them here on this site!), and found a passion for programming that I can't imagine living without.
That's all I have to say for today, but stay tuned for Friday's update in which I talk about the changes I made to the game.
November 11th, 2012 marked the release of Tincan 2, a sequel that some would claim never needed to happen. After some distance from the project, I myself have fallen into that group. Lately I've felt like I've wanted to reflect and write about what it was that made the game such a mess. Plus, when making a deal with the devil to write about it is the only thing that guaranteed your return to the mortal plane, you kind of have to.
Let me explain.
Some Secrets Are Best Left Buried
Two weeks ago I wanted to show a friend the secret stage that lays hidden in Tincan 2 over Google Hangouts. As we chatted about life, I racked up hundreds of deaths, until eventually he decided to call it a night. I continued on, until I finally managed to unlock it.
I heard someone enter the Google Hangout. It wasn't my friend.
It was the Dark Lord.
That was the last thing I remember before spending an eternity in Hell, playing Tincan 2 on Lucifer's pristine 2003 Dell Dimension 4600 Home desktop.
When something stops working, the solution is to fix it.
For four years, I continued to fix and enhance the old site to fit my needs as they evolved. It sufficed, but lately I felt I'd abandon the sloppily thrown together fixes and intermingled systems, and start anew. Plus, any chance to move away from PHP is one I happily welcome.
When fixing something stops working, then it's time to move onto the next step: remake the whole dang thing.