Recently

Posted:

Recently I've been deep down a crossword puzzle rabbit hole. I started a new side project that has taken most of my writing energy: them's crossing words, a blog where I post daily crossword puzzle reviews and articles about the craft of puzzle construction. Thus far there's about fifty crossword puzzles featured and discussed, a sizable number of grids with over 10k words dedicated to crossing them.

When I started the project I thought I might burn out quickly on the idea. Writing a daily review was actually far from my original intent. The thing is, there's just so much to talk about when it comes to the art of crossword construction (and puzzles in general, by extension). Every crossword is nuanced and interesting, built by constructors that bring their own voice into the grid with interesting clues and clever themes.

The idea of a puzzle blog has been bouncing around in my head for a long time now, and my motivation to start one was largely influenced by the release of Braid, Anniversary Edition. When I was a kid playing through Braid on the Xbox Live Arcade, I didn't actually care that much for puzzle games. They were too slow and plodding for my High School brain.

Since then I've come to really appreciate the genre, with games like The Witness and Outer Wilds completely blowing my mind as to what's possible in the medium of video games. When Braid re-released this year with loads of developer commentary, I was in.

Now that I'm playing through it as an adult I have a newfound appreciation for its narrative and design. There are loads of spots where the narrative of the tale is paralleled by the mechanics of the gameplay and the design of the puzzles, a genius combination of factors seen in few games. What really drew me in, however, was the developer commentary, discussing the minutiae of game, sound, narrative, and art design behind every level and artistic motif.

The body of commentary in Braid, Anniversary Edition is staggering. The amount of thought that bleeds into every ounce of that game is an incredible achievement showing just how artistic the medium of video games can be. It inspired me to start writing about puzzles because I think they're more than just a method of wasting time. They're little worlds of simulation where ideas mesh with action, a creative landscape of human ingenuity clashing with constraints.

Needless to say I've been noodling on puzzles for the last few months, looking back on some of my old Puzzlescript prototypes and some of the things I learned about game design when I hacked them together. Building a level for a puzzle game is kind of like mentoring new engineers. You never really know how well you understand an idea until you need to teach it to someone. Same goes for a mechanic in a puzzle game: what is the truth that you're trying to expose to the person playing your game? Why is it interesting?

Anyway, this is less of a Recently and more of a ramble.

For this blog, I've also been interested in exploring systems languages now that I have a year or so of Rust experience under my belt. I'm curious about the idea of manual memory management and how it is handled by various different languages, especially with the recent uptick in C-alternatives, like Zig, Odin, Jai, among others. I've also been wanting to do a post on "learning systems languages as a webdev" for awhile now, exploring the Rust ecosystem as a Ruby on Rails/JavaScript developer. I think I need a stronger baseline in systems performance before I try to tackle that subject.

Right now I'm reading through A Tour of C++ and Understanding Software Dynamics, testing my knowledge of performance programming and how computers actually work under the hood. It's been a humbling experience working in manual memory scenarios after so many years of garbage-collected languages. It's a different landscape when you have to deal with certain hot-paths in a game loop, for example, where allocations can lead to undesirable performance characteristics.


Thanks for reading! Send your comments to [email protected].