End of Octojam

Roughly 11 years ago, I started tinkering with an interpreter for CHIP-8, a simple virtual game console developed in the late 1970s for a kit computer called the COSMAC VIP. This wasn’t my first brush with the platform; I’d learned about it through PalmCHIP8, an interpreter that fit into the extremely humble specs of early PalmOS devices and offered remarkably playable renditions of Space Invaders and Pipe Dream for a few kilobytes apiece. I would later write my own interpreter and a very simple development toolchain for MakoVM, a fictional forth-based computer I spent several years tinkering with.

What made my new interpreter different from the old one was the platform: the web. In the process of bringing it up, I realized it would be convenient to have an integrated assembler for writing simple test programs. Over the course of an afternoon I ported my older assembler to JavaScript and built the first version of what would become Octo, a fully-integrated development environment for CHIP-8. Assembly programming can be daunting, especially for beginners, but fast iteration times- being able to test and re-test programs with a keystroke- made for quick learning. Since Octo offered a complete self-contained toolkit inside a browser tab it wasn’t necessary for prospective users to fret over their environment variables, install a JVM, or configure a fancy local editor to get started.

Octojam

As my tools matured, several of my friends goaded me to try organizing a “Game Jam” around Octo and encourage new users to try building things with it within a loosely-structured, friendly competition. Timing and wordplay aligned to make the month of October the perfect span for such a jam. In the first year it was simply called “Octo-Ber”, but by the third annual event it was firmly cemented as “Octojam”.

The Octojams have been a big part of my life ever since. Every August I would begin drawing up plans, making new accessory tools and refinements to prepare Octo for another wave of development, September would be filled with low-level background activity to promote the jam and raise awareness while contemplating my own game ideas, and every October was a flurry of tech support, white-knuckle debugging, and carefully coiling assembly language together into an entry- or four. It was exciting to see my tools being used, and a real thrill to watch participants push the limits of CHIP-8 in new and creative ways every year.

The first five years of the Octojam were hosted on a custom website furnished by volunteers from the community, which sadly fell into disrepair and bit-rot over time. Before that site was lost, I managed to reach out to most of the participants and obtain permission to collect their programs in The Chip8 Archive, where they can be found and played with today. More recent years have been hosted on Itch.io, an independent games marketplace with a rich featureset for hosting game jams and a large userbase of game creators:

Year Jam Index
2019 6
2020 7
2021 8
2022 9
2023 10

All told, between Itch.io and the surviving games in the Archive, Octojams have resulted in a total of 135 new programs for CHIP-8, Super CHIP-8 (SCHIP) and Octo’s homespun extension set, XO-CHIP. Combined with Octo’s examples and a variety of “off-season” Octo-based creations, the complete library of CHIP-8 software has more than doubled since Octo’s release.

Epitaph

While I’m proud of what Octo has evolved into over the years and everything we’ve built with it, I’m sorry to say that the Octojam does not have a future.

For the past few years, participation in the jam has steadily dropped. The userbase never managed to reach a critical mass and grow on its own. I’ve tried everything I can think of to make Octo more powerful, more accessible, and better documented; to seek out people who would enjoy working with it and raise awareness; to encourage participants to talk about the jam, help advertise it, and bring their friends; but it just doesn’t stick. I feel exhaustion deep in my bones from trying to carry it further.

There was a time when the joy of working with and on Octo was enough to keep me going, but a few years ago- for reasons I’d rather not delve into in a public post- part of me broke rather badly, and has not healed. I realized this year that I simply can’t find joy in this project anymore; it’s tinged with too much sadness. I need to let it go.

This page is a memorial for the Octojam: what it was, how it came to be, and where it ended. Octo and the Chip8 Archive will still be around; I’ll still service bug reports and pull requests as they arise. Ten years of games and toys will remain accessible for another generation of tinkerers, an indelible imprint on CHIP-8 history. I may even have a few interesting CHIP-8 ROMs left in these fingers; time will tell.

So long, folks. It’s been a good run.

Further Reading

  1. Octojam Showcase recordings of games from all 10 years on YouTube.
  2. Chip8 Archive Playable Gallery
  3. Octo IDE GitHub Repository
  4. C-Octo, a native rewrite of Octo

back