Coding the anime "woosh" screen on Amiga

The Amiga was a spectacle of graphics and sound when it debuted in 1985. While it can trivially display colorful images like in the above example, doing so in the context of a game engine presents a lot of unique challenges.

[more...]

Apple Vision Pro and ADHD

Apple Vision Pro reminds me that computers have become too efficient.

I'm currently typing this blog post in a floating window in the middle of snow-covered Yosemite. I am a floating body manifested into the transcendental Tim Cook matrix. I look into the sky and follow the soft clouds as they pass overhead. They slowly part, revealing Steve Jobs' smiling face watching over me from the heavens above. I am merely one more thing.

[more...]

Resurrecting a prototype Chromebook with Arch Linux

In 2011, I was selected to be a part of Google's Chrome OS Test Pilot Program. I received a free Google Cr-48 laptop, and it was an absolutely charming machine.

The rubbery, matte-black chassis had absolutely no branding anywhere on it. Upon opening the lid, the system would boot into Chrome OS, which, at the time, was literally nothing more than a fullscreen Chrome browser—no desktop, no apps, nothing.

I used the Cr-48 throughout college, often as a thin client that would connect to my desktop PC via Chrome Remote Desktop.

[more...]

My simple, life-changing keybinds

One day, I got fed up with constantly reaching for the arrow keys or the mouse while typing. So, I set up a few simple keybinds that let me jump the cursor around and select text without having to move my hands off the keyboard.

[more...]

Rapidly building custom file formats for my game

Earlier this year, I had to figure out how I was going to load level data into Magicore Anomala. A level contains backgrounds, sprites, animations, dialogue scripts, and much more. Ideally, I want to pack all of these things into a single file, so that I can deal with the filesystem and file names as little as possible.

I did some cursory searching on tools or frameworks that make it easy to define and build custom file formats, but the stuff I found was a little too complex for my use case, and not flexible enough. So I created my own tool, and I open-sourced it in case others find it useful too.

[more...]