Most of the games I've worked on were made at Zachtronics, the studio I founded and ran as my day job until 2022. We shipped 13 commercial titles, most about programming and automation, a few about war, one about feelings, and many with solitaire minigames.
Over 6 years I managed to record 10 episodes of a podcast where I interviewed indie game developers, and then later interviewed people other than indie game developers. We also tried playing classic AD&D once.
This is a Java version of my minimalist C# game framework, which I made so that you don't have to teach your AP Computer Science students C# just to let them make some games. It has no dependencies and should work on any operating system. I have not tested it very much, so please email me if you find any bugs or performance issues.
This is an updated version of my ZachLabs Arduino curriculum. It's shorter, more straight-forward, and includes a visual block-based code editor to make C++ easier for students with no prior programming experience. I used it while teaching an introductory robotics course for high school students.
This is an even more minimalist version of my minimalist game framework. It uses Python instead of C# and involved a lot of weird design decisions made for the sake of simplicity, like only supporting a screen resolution of 150×100 and requiring the use of a web-based sprite editor that exports strings instead of files.
I designed this lab as a self-directed introduction to digital logic design in reponse to a week of unplanned remote instruction for my otherwise very hands-on introductory robotics course. It's meant to be used with a digital logic simulator, like the web-based Logic.ly demo that I used and had great success with.
This is a constantly evolving Arduino tutorial, along with a list of parts for a corresponding kit, that I created while volunteering in an AP Computer Science Principles class at a local high school. It's sort of structured like a Zachtronics game, with a scaffolded sequence of 16 micro-projects.
This is a minimalist game development framework, written in C#, that I created for an advanced high school level programming course. It's a lot like the game engine we use at Zachtronics, in that it's very simple and presents a plain immediate-style API for managing input, graphics, and audio.
Although this is not the first website that allows a teacher to see live responses to multiple-choice questions, it might be the simplest. Create a room, ask a question, and automatically see the responses. It's completely anonymous and free, with no need to sign up for anything.
A browsable and searchable archive with lots of old Usenet posts from 1981 to 1991, originally found here as a collection of tape archives. I attempted to group the messages into threaded conversations, but inconsistencies in formatting led to some messages going missing or being placed out of order.
I got access to GPT-3 thinking that I'd use it to generate game content, but the only entertaining thing I've managed to do so far is generate a bunch of chumbox-style clickbait headlines. Here are my 200 favorites combined with random photos from Google Image Search.
After the success of porting SHENZHEN SOLITAIRE to MS-DOS, Keith and I ported HACK*MATCH, the action-puzzle minigame from EXAPUNKS, to the NES. It took us almost two years, mostly because Keith wrote a C compiler for the 6502 for us to use. This article covers some of the implementation details. You can buy the game here.
Curious about game development technologies that we were slightly too young for, Keith and I ported the solitaire minigame from SHENZHEN I/O to MS-DOS. The link above goes to our write-up. At one point you could buy this on a floppy, but for now you'll have to settle for the disk image and artwork and make your own.
A short write-up I made ago about creating the alien language for Infinifactory. It didn't mean anything, but that didn't stop our players from trying to figure out what it meant.
When we switched offices years ago I found an old electronic typewriter, which I ended up hacking an Arduino into so that you could type and run BASIC programs on it. This article isn't particularly rigorous, but does walk through my thought process while reverse engineering it.
Although it's not widely known, the primary inspiration behind TIS-100 was a mostly unsuccessful attempt to build a self-hosting Z80 computer using period-appropriate components called Project Gibson. Although Keith and I never finished it, the first half is documented here, with some photos and videos of the computer in action.
This is probably the most popular article I've ever written, and is about my experiences attempting to reverse engineer some assets out of an old Star Wars video game. I still get emails about it, although it's mostly people who want the sprites, which you can conveniently download here.
This is my personal website from my senior year of high school, which is when I started using the "Zachtronics" moniker that I'm still using over 17 years later. It's surprisingly on-brand, with a made-up programming language for the Z80 and a badly designed turn-based wargame. A lot more laser tag than now, though...
One of my first attempts at designing a paper logic puzzle. It's themed around the idea of how DNA encodes the instructions for building proteins, something I've always found intriguing. It's not very good, unfortunately...
An adaptation of SpaceChem into a paper logic puzzle. I made an early version of this when we did a small run of SpaceChem discs in 2011, and then later turned it into this booklet for a giveaway at PAX in 2013. When you flip the book over it becomes the "Ironclad Tactics Battle Book", a small two-player print-and-play version of Ironclad Tactics.