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.

2018

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.

Life

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.

Instructions

  •  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.

Orbital Paladin Melchior Y

It is the year 231 of the Frontier Era.

A nine-year war continues to rage between two mighty powers in the Earth sphere, conducted largely by heavily armed mechanized suits in space battles.

Eighteen-year-old Wick Palmer joins the small crew of the spaceship Nauvoo to take control of the Orbital Federated States’ most advanced mech. Guarding a remote point in the solar system, the quiet the team has enjoyed cannot hold for long.

Guide Wick as he forges relationships with his teammates, fights off enemies, and questions his place in a war that never ends in this visual novel/shooting action space opera game.

Made for the Emotional (Digital) Mecha Jam.

Music credits:

  • Traditional and classical music arranged by Mick Jones, in addition to original compositions, all released by the artist into the public domain
  • Multiple battle tracks and the title theme are by Jonathan So (CC0)
  • “Introduction Remake+” by Spring (CC-BY-4.0)
  • “Contemplation” by Joth (CC0)
  • “Fallen Hero” by Machine (CC-BY-4.0)
  • Chill lofi music by omfgdude (CC0)
  • “My Friends Will Cry” by Christovix Games, as heard in Chapter Five’s combat sequence

Monster Hug

Monsters are rampaging underground! Where heroes have failed in their efforts to respond with violence, someone speaks up: “What if we try hugging the monsters?”

Monster Hug features five unique monsters, each of which has a unique personality and set of behaviors–and each is a unique threat! Figure out when you can get in close and give each monster a hug! An adorable little platformer.

Inspired by a suggestion by Eli Z. McCormick.

Uses the font Magic Forest by anna anthropy and music by pauliuw and Juhani Junkala, under Creative Commons licenses.

Nibblin’

You’re Norvell the Nibbler and you’re here to prove how good you are at nibblin’!

When a nibbler eats a nibblet, they get longer. That’s what nibblin’ is! Slither and nibble your way through twenty stages. Encounter tricky course designs, chat with experienced nibblers, and even face off against them on the field!

My first ZZT game since 2006 and my first non-jam ZZT game since 2002.

I started this game some time between 1999 and 2003. Then it got transferred from hard drive to hard drive with the rest of my old ZZT files. Earlier this year, I thought it might be interesting to go back and figure out how to finish it. I had the basic engine made but didn’t really have any firm aspirations for it besides being a relatively smooth (for ZZT) Snake clone. I came up with a cute little frame story and a few objects/obstacles/NPCs to make the game more interesting. Twenty stages!

Invasion Versus

A frantic two-player arcade-style game where Earth faces off against waves of invading aliens.

In the game’s two-player Versus Mode, choose to be the Earth team, fending off the invasion by blasting aliens out of the sky, or the Invaders’ team, slowly descending to Earth’s surface, dodging bullets, and picking off Earth’s defenses.

The game also has a score-attack Arcade Mode for solo players and a local high score leaderboard.

____________________________
I began this game in the spring of 2016 and finally returned to finish it up this month.

Aaargh! Condor

 

An unofficial remake of the amazingly-title 1983 Commodore 64 classic AAARGH! CONDOR, my 2018 update seeks to capture the frantic and frenzied spirit of the original game by Alan G. Osborne.

With three heroes, try to save as many would-be sacrifices to the titular giant bird by hurling a spear into its chest. As the game progresses, you’ll face more enemies and obstacles, all seeming to get in the way of your heroic feats.

I strongly recommend you also play the original Commodore 64 game and read about it in this article on the Obscuritory by Phil Shadsy, which introduced me to the game.

My AAARGH! CONDOR remake uses the font Crypt of Tomorrow by anna anthropy.

Explobers at SAAM Arcade 2018

Photo credit: Daniel Schwartz

I’m very pleased to announce that my game Explobers will be featured as one of fifteen games in the indie game showcase at the Smithsonian American Art Museum’s fourth annual SAAM Arcade event in Washington, DC, on Sunday, July 22, 2018! I’ll be there with the game with two computers running a special abbreviated edition of the game built for this exhibition. If you can be there, please stop by and say hi!

You can read more about the event on SAAM’s website. Admission to the museum is free. The theme of this year’s event is game spaces.

In addition to Explobers and the other indie games, there will be classic arcade and console games be presented by MAGFest and Arcades4Home, while Boolean Girl will be doing coding workshops. Artist Saya Woolfalk will also be giving a talk at 4pm.

Explobers is available for free download at itch.io and GameJolt. Please consider donating if you like it!

_______________________

The Explobers press kit is available here.