Ungrateful Birds: No Good Deed

In development for over a year, Ungrateful Birds: No Good Deed is the followup to 2017’s well-received action platformer, Ungrateful Birds. Bigger, better, and with more birds, this game invites you back to the forest to once again free the birds from their cages and dodge the rocks they so ungratefully hurl at you.

Ten types of birds in over three dozen stages await. And now you can play with up to two players in a simultaneous local cooperative mode!

No Good Deed is released as pay-what-you-want, but if you pay $5.99 USD or more, you get access to Ungrateful Birds: Call of the Desert as well.

Ungrateful Birds: Call of the Desert

The sequel to Ungrateful Birds: No Good Deed, this game offers new types of birds and sixteen all-new, unique stages. With environments inspired by the red-rock deserts of Southern Utah and the Navajo Nation.

Ungrateful Birds: Call of the Desert is available alongside Ungrateful Birds: No Good Deed for $5.99 USD or more. Also for up to two players.

Bones in the Boneyard

A falling-block puzzle game where you arrange skulls of the same color into threes and, even more importantly, combine other bones to assemble full skeletons.

Features standard mode, hard mode, endless mode, and three special puzzle stages.

Uses font Magic Forest by anna anthropy.

Made as a Halloween gift for my partner.

Salt Lake Stories

The game includes four short games that feature historical characters and locations:

  • Rocky Mountain Times Newspaper Maker, a puzzle game featuring Shiro Iida, publisher and editor of the Rakki Jiho, taking place in Salt Lake’s Nihonjin Machi (Japantown).
  • Hotel Newhouse, a single-stage, vertical-scrolling platformer in which you ascend the steel frame of the unfinished Hotel Newhouse, once a renowned Salt Lake landmark, featuring Samuel Newhouse and his Newhouse and Boston Buildings. 
  • Free Library Book Sort, a falling-book puzzle game with four stages featuring city librarian Joanna H. Sprague, taking place at the beautiful Free Public Library at 15 S. State Street in Salt Lake City.
  • Anderson’s Tower, an eight-stage puzzle platformer taking place in the Avenues neighborhood, inside Anderson’s Tower, which once presided over the Salt Lake Valley, and featuring the man who built it, Brigham Young’s former personal accountant Robert R. Anderson. 

This game was originally developed for an exhibition at the Salt Lake City Public Library, where it was on display alongside archive materials that inspired it throughout November 2021.

Fairy Penguin Parade

The fairy penguin (also known as the little penguin) is the world’s smallest penguin.

Every night, in many places along the coast of Southern Australia, penguin colonies return en masse from their daily hunting expeditions, under the cover of dusk, to their onshore burrows.

On Phillip Island, this is known as the “penguin parade.”

Guide a penguin home to its burrow as night sets in.

Hold Z to run. When you arrive at the burrows, press C to complete the evening’s journey.

Press F4 to toggle fullscreen.

Press Escape to quit.

Made for the Australian Bushfire Charity Jam, and for its first month available exclusively through the Australian Bushfire Charity Jam Bundle, all proceeds of which go to charities offering aide to people and animals impacted by the 2019-2020 Australian bushfires.

Flickering Chambers

The candles in the Twelve Chambers must be lit by a wickster. Once a wickster lights themself ablaze, they will only have five seconds to light every candle in the room. Plan carefully. Press X to jump. Press Z to ignite. Press K to restart a chamber.

Features “Snowfall” and “It’s Here” by Joseph Gilbert/Kistol.

Released during the final hour of the final day of the final year of the 2010s.

Four Hours to Four Months: A Koi Puncher MMXVIII Postmortem

Koi Puncher

I created the original Koi Puncher in 2012 as one of the 25 games I made in a two-week period and submitted to Glorious Trainwrecks’s Pirate Kart V event. The game was made in four hours, from start to finish. The title came from an email conversation I had with siblings Jared Allred and Jane Allred, who have a nephew who actually punched an actual koi (which, for the record, I do not endorse—please treat koi with respect and absolutely do not punch them).

When I sat down to make Koi Puncher, the title was all I had.

Koi Puncher is very simple. Terribly simple. Almost everything about Koi Puncher is there in the title. You play a koi puncher (here imagined as a burly, shirtless white dude giving off mild Conan vibes). The koi puncher swims in a pond and punches koi. To leave the game, your koi puncher leaves the pond. That’s it. That’s the game.

That initial installment was made in four hours. Koi Puncher MMXVIII was made in four months.

And not just four months of leisurely programming, either. I spent more nights than not staying up way past my normal bedtime, Saturdays spent hunched over my desktop, trying to refine and polish a game that still boasts an intentionally low-fi, hand-drawn, amateurish vibe.


Near the end of 2017, I committed myself to making a new version of Koi Puncher. The game had been a hit at some local game dev showcase events at Shoryuken League in Eugene, Oregon, and I can credit Brit and Cullen at doinksoft for encouraging me to revisit it and give it a little extra pizzazz.

I’d toyed with the idea of revisiting the game before. Despite its spontaneous, hurried creation, I was really satisfied with the way the game felt. The way the koi moved and the player character animated were weighty and comical.

There were two main things I wanted to add: multiplayer functions and koi genetics. I’ll get to the latter in a minute.

But I really had no idea what I was getting myself into. I thought I’d be spending a few weeks on it. Weeks became months, from the very beginning of January to the 20th of April.

In the same two-week game-making blitz that gave birth to Koi Puncher, I also made a quickie multiplayer version I called Koi Puncher: Championship Edition. While the first game was about punching koi at your leisure until you had your fill, Championship Edition gave you a second player (a palette-swapped, dark-skinned Luigi to the original player character’s Mario) to compete against for two minutes. In a sense, I felt that was a betrayal of the original game’s spirit, but I was testing the waters.

I wanted MMXVIII to retain the focus on pure koi-punching, but I quickly realized that with up to four players, it’d be fun to include versus modes like the Championship Edition. This, in turn, also led me to creating single-player score attack modes and, later, challenge minigames. So while I keep the pure koi punching experience at the game’s center, it becomes a small activity center with a multitude of game modes, for both solo players and groups of friends. I wanted Koi Puncher MMXVIII to work as a party game.

I decided I wanted to let players choose from a roster of thinly sketched characters. There are ten playable characters in all (eight available at the start, two unlockable) to choose from. I also wanted to support four players with as few as two gamepads and as many as four. I vastly underestimated how complex that would be. Coding all of this was a whole new level of challenge. I learned a lot about programming in GameMaker Studio.

Koi Genetics

In the original Koi Puncher, when two koi with the same body markings—out of a set of four—run into each other, a new koi can spawn. To keep this from going too overboard, I gave them invisible breeding buffer timers and sex distinctions, so reproduction would only happen if a koi of sex “1” met a koi of sex “2.” This very small idea about invisible characteristics got stuck in my head, and back in 2012 I had begun to think about a game called Koi Breeder, a simulation game where the player would select koi for breeding, each of which would have a long list of genetic characteristics invisible to the player. There would be dominant and recessive genes that would influence color, markings, fin shape, and more. I never quite figured out how I wanted the game itself to work beyond the genetic idea, so I shelved it, but never quite stopped thinking about it.

So Koi Breeder fused with Koi Puncher. Each fish in the game has a handful of genes, and the way they appear is based on how those genes are programmed to express. I never did well with biology (fun fact: I have a recurring theme in my nightmares where I’m failing the biology class I am retaking and can’t graduate from college), but my high school-level, oversimplistic understanding of gene expression led me to a place where I can fake it well enough.

Mutations can happen, too, leading to the possibility of extremely rare koi colors, patterns, and body shapes. Ultimately, there are thousands of possible koi that can be found in the game.

So eager was I to tackle this koi genetics idea, it was actually the first programming and design task I set for myself. It was fairly simple to draw the various possibilities of body colors and patterns (which are dynamically created from a handful of component sprites), but getting inheritance to work the way I wanted took a long-ass time. I can’t exactly remember, but at least the first six weeks was primarily devoted to tweaking everything about koi genes (and I’d continue to fiddle with it throughout production).

Most play sessions will not last long enough to see some of the weirder combinations that come through breeding (selective breeding is somewhat possible if unruly, since koi will disappear after three hits, removing them from the gene pool). So to allow players to create a permanent reserve of prize koi they could develop over time, I created the “home” pond mode, letting players keep their favorite koi.

The dynamics of koi inheritance, though, is completely aesthetic, affecting absolutely nothing about the core game. Most players could probably play MMXVIII without ever noticing the genetics, let alone fathom what was going on under the hood. This, honestly, is still my favorite part of the game and one of my favorite things I’ve ever done creatively, largely due to its surface frivolity.


The last few weeks of development on Koi Puncher MMXVIII had very little to do with punching koi. The five new ponds I’d created were surrounded by a lot of empty grass and dirt that I’d sparsely populated with trees and shrubs. It was empty, in contrast to all the liveliness in the pond.

Suddenly, it occurred to me to add cats.

Initially, there was going to be one cat. A tuxedo cat modeled on the two lovely cats in my house, Boris and Natasha. It would appear on rare occasions, sit at the edge of the pond watching fish, and run away when a player character got near.

But why stop with one cat? Why not take that same cat sprite, recolor it, and make, like, half a dozen cats?

So I did just that. Different cats live at different ponds. They sometimes curl up and take naps. But is that all there is in this world? Koi and cats?

Then I made birds. Different kinds of birds. And turtles. And even a peacock that appears under very special conditions. They all have their own behaviors. And then I even added little interactions between them. Suddenly, the world around the weird little ponds of Koi Puncher was bustling with life, little ecosystems.

Koi appear in Temple of the Wumpus

Again, this has nothing to do with punching koi. All of this is completely independent of the mechanics of what the player is doing. The games I make have long featured animals (Watch Ducks, Owl Forest, Ungrateful Birds, to name a few), and this new use of wildlife unlocked something in me that I’m continuing to explore in the games I’ve made since (Temple of the Wumpus, primarily) and am working on now.

Wrapping Up Koi Puncher MMXVIII

There’s more that I could go on about at length here. Programming and balancing the challenge minigames was fun and rewarding. Creating the game’s unlockables (something I’ve liked to do in my “bigger” games, like Caverns of Khron and Explobers), consisting of two player characters and two maps, caused me to scrap and rewrite some of the game’s core organizational structure.  The game also has some really deep-cut references to Caverns of Khron, which has led to more metareferentiality in the games I’ve made since (for example, the original koi puncher character makes a cameo in my remake of Aaargh! Condor).

Koi Puncher MMXVIII is absurd on a number of levels. It’s a ridiculously simple, almost aimless concept that functions almost identically to games I spent no more than six total hours developing, but I spent four months reworking and expanding it, adding in fidgety little things around the edges. I wouldn’t have expected it, but it’s somehow become one of my favorite, most personal games.

A year after its release, I’m releasing a small update to Koi Puncher MMXVIII, bringing it to version 1.1. It fixes a bug in the ice stage and makes it less likely that you’ll run out of koi in a multiplayer game (koi now have more hit points in those modes). If you haven’t given it a shot, I hope you’ll step into my bizarre, koi-punching world.

And please, again, don’t punch real koi.


This post was cross-posted at itch.io.

Scales of Love

Dale and Karen have been a couple for four years. They’ve been living together happily for a while now.

Now, something has happened in Karen’s life that might change everything.

Will love be enough to see them through their challenges?

Guide Karen through this very short, part-comedy, part-fantasy visual novel about the heart.

NOTE: This game contains very strong language.


  •  Press X, Z, or down to advance dialog boxes
  • Press up or down to select dialog options
  • Press X, Z, or Enter to confirm dialog options
  • Press C to speed up text
  • Press down to skip to full text display

Features the following music:

Made for NaNoRenO 2019.


My Decade With GameMaker: About a Ball Turns Ten

As I was furiously working on my Emotional Mecha Jam game Orbital Paladin Melchior Y the other week, the tenth anniversary of my first GameMaker-made release, About a Ball, whizzed by without my notice.

So I’ve now been working in GameMaker and GameMaker Studio for over a decade. Before I purchased a license for GameMaker version 7, I hadn’t touched game design since 2003, when I collaborated with WiL Whitlark on the 24 Hours of ZZT game AdversiTurtle (I’d cut my game-making teeth in ZZT starting in 1997). My intervening six years had been devoted to filmmaking, having worked on over a dozen comedy shorts in some capacity with my collaborators at Bombdotcom Productions. In early 2009, I was wrapping up post-production on the feature film comedy I directed and co-wrote with Enoch Allred, Legends of Minigolf: The Flamingo’s Challenge. Somewhat to my own surprise, when I imagined my next creative project, I found my mind wandering back to video games and thinking I had some ideas about the intersection of narrative and gameplay (perhaps of interest is that one of the first projects I imagined was a Persona 3-influenced, visual novel-style adaptation of my own film Legends of Minigolf: The Flamingo’s Challenge)

I was reading a lot of anna anthropy’s articles about level design and was inspired by both her use of GameMaker in the creation of games like Mighty Jill Off . Not really sure where to start, I found a multi-stage tutorial Derek Yu had written on the TigSource forums walking the reader through the creation of a simple scrolling shoot-‘em-up. I followed along, creating a small shmup starring a space lion fighting black blobs. I improvised some power ups and other features and started to feel comfortable with how things worked under GameMaker’s hood.

My game-making ambitions were vague (outside of some way-beyond-my-scope blockbuster-budgeted pipe dreams), but I knew I had long wanted to develop a game like Zelda II: The Adventure of Link but with a stronger narrative and emotional component. I’d definitely have to learn how to make a platformer.

I downloaded a few sample platformer templates for GameMaker, but the kinds of coding I saw other people using didn’t mesh with what I’d come to understand about object interaction and movement from Yu’s tutorial. I was also still drawing  lot of my programming intuition from my teenage experiences with ZZT. So, instead, I took the GML (GameMaker Language) scripting I’d learned from my lion shmup, and painstakingly fumbled through the basics of jumping and movement (note that half of my ZZT output was made up of various types of platformers).

It’s cliché, of course, for amateur game-makers to hastily draw shapes (especially circles and squares) as the placeholder objects in their experiments, but I happened to add eyes to mine and began to think of it as a little character in its own right. Its enemies naturally became different, more angular shapes with crueler eyes. My experiments with collision, obstacles, and movement led me to crafting a small series of passages for the ball to traverse, and soon I found that I’d created a small network of rooms that folded in on themselves. I was making a game that I thought was actually kind of fun. I started implementing some of the ideas about level design I’d been meditating on, including the idea of the player’s goal being visible from the very first screen of the game.

About a Ball (a more or less meaningless pun on About a Boy, a title befitting an episode of a Saturday morning cartoon) is a brutal game. It took me a couple dozen tries to beat it again this morning, despite its short length. The version I have here is actually an updated and revised edition from 2012. Its original incarnation was even more brutal, with only five lives to lose before it forcibly kicked you out of the game (completely unnecessary, since the only progress that carries over from life to life is tripped switches and blood-stained spikes).

It has a fixed, awkward jump with no gradations and no variability (there’s no sense of gravity, as you fall and jump at the exact same rate in each frame, in much the same way as my old ZZT platformers, and you don’t hover at the peak of your jump). However, the game’s sole stage is designed around this limitation. There’s no real story to speak of here. From the moment your red ball appears in the industrial warehouse-esque environment, the player only knows they have to make their way to the Lemmings-esque portal on the other side of the starting chamber’s wall.

The game has an absolutely opaque, inscrutable scoring system based on time spent and (maybe?) lives lost. My score from my most recent completion was 62,682. I can’t tell you what that means. It would’ve been higher if I’d taken less time.

At any rate, About a Ball was released to my blog on February 13, 2009. This was before GameJolt and itch.io provided a good place to house free game releases, so it was almost certainly entirely played by people in my social circle. I wouldn’t complete another game until 2010’s Pirate Kart entry Watch Ducks, even though I did attempt a handful of narrative platformer ideas with scopes way beyond what I was ready for. My experience mucking around with the interactions between About a Ball’s platforming mechanics soon led to a half decade of focusing almost entirely on tongue-in-cheek riffs on game clichés like the scoring system in Watch Ducks or wholly mechanical explorations of tweaks on the basic grammar of platforming games like Bulb Boy and ExpandoScape, mostly developed for quickie Glorious Trainwrecks events.

In this time, “narrative” (in its most conventional definition) in my game design work was mostly explored as a humorous framing device or an ironic counterpoint to a game’s mechanics. For my more mechanical experiments I was very into an idea of games inherently possessing narrative so long as they were running—if a player avatar progresses from the starting post to the goal post, a narrative has been expressed, even if it lacks traditional representational ideas. So into this concept was I that in 2012, when I released Caverns of Khron, I left out any contextualizing text within the body of the game itself and when I approached my friend Jane Allred to write a backstory for the game’s manual, I gave it the header of merely “A Story”—its own text fairly vague, but intended to allow the player to project whatever they saw in the adventures of a purple-haired adventurer’s sword-aided descent through increasingly bizarre screens purely derived from the interaction of objects on screen.

Only in the last couple years have I started to get back to exploring the richer narrative concepts that drew me back to game design a decade ago and resulted in the narrative-light About a Ball: Knight Moves, Liz & Laz, Nibblin’, and Monster Hug all have integrated story sequences. Further, while Temple of the Wumpus leaves a lot unsaid, it is a game all about reading and studying hundreds of bits of text to guide your avatar through a spiritual journey to which I want the player to bring a certain amount of their own experience (and, by no mere coincidence, is my most direct riff on Zelda II to date). Orbital Paladin Melchior Y fuses the action shooting genre with a visual novel format. What’s more is that I’m doing all of this in GameMaker Studio, having moved beyond awkward jumps and minor tutorial variations to scripting an entire visual novel system that integrates with a shmup. Having written my first visual novel, I’m eager to continue to explore what can be done at the intersection of my focus on mechanics and level design and the power of story.