Counterpart

TL:DW; An Airwindows video game, with source code!

CounterpartWin32 | CounterpartWin64
CounterpartMac32 | CounterpartMac64
CounterpartLinux32 | CounterpartLinux64

When I’m not coding plugins, sometimes I make video games! This one was my first Unity game, done over the last couple years.

You play Counterpart by zipping around with mouse-look and WASD, as if it was a FPS. Except, what you shoot are communication packets, and rather than hurting the targets they get a reaction out of them. The targets are colorful little balls, ‘bots’, that are zipping around too.

Each one has its own little personality, which arises from the texture painted on it. It’ll scan through its pixels going to wherever the color specifies: so if they’re just one color, they sit in one spot, and if they’re all speckled they might be hyperactive and go everywhere.

You’re trying to find one bot that looks exactly like you, but you can’t see yourself, so it’s also like a puzzle. The bots beep according to how different they are from you (high is good, low means different) and will fire their own zaps in the direction of where they last saw the one that looked like you. IF they’ve even seen it.

So, it might be very simple or it might be much trickier. And if the bot’s enough different, it could lie and just direct you somewhere irrelevant! And if none of the bots have seen your Counterpart, they’ll have nothing to offer. Also, there’s a floating black hole that will kill you, and it doesn’t like it if you smash violently into the bots or kill them. And the terrain can get tricky: the shape’s consistent, but the steepness can be an issue. And if you fall off the edge of the universe you’ll die… and you can’t steer when in mid-air.

There’s a hardcore mode. This starts you with 1000 shots. You can still make it to the next level if you’re out, but it makes it harder to find your Counterpart. When you get to the next level, you get 500 more shots the first time, then 499 for level 2, and so on. So, hoarding shots might be the smart play there.

Finally, in either easy (unlimited shots) mode or hardcore mode, if you find your Counterpart you get a win state where the Guardian can’t hurt you, and the bots all happily swarm you, beeping away. If you quit the game in this state you resume where you left off. If you quit in normal gameplay, you start over at level 1. (If you use easy mode and switch to hardcore, you’ll find you have 1 shot, but can continue from there… if you can! You will have to find your Counterpart even to be able to quit and resume in easy mode again.)

Counterpart is a weird little game. I got very into making it a good game, but much of what makes it special is hidden from immediate view. It’s meant to be discovered, which isn’t exactly popularity gold these days: so, I’ve tuned it to be optimal for what it is, and I’m letting it loose.

The source code for the game, under the MIT license, can be found at github.com/airwindows/Counterpart and you’re welcome to ask me for help in making your own game: my hope is that I can be as useful to game devs as I am to sound engineers.

Also, here is the special ‘more forgiving’ shot-sprite I use to make collision detection easier:

And here is the collection of my bot textures, generated long ago by a screensaver program (‘Mad Ppatterns’) and useful for maybe all sorts of things: BotTextures

This is all supported through Patreon, though that’s mostly about plugins. But if you’d like more game development shared with the world, support the Patreon and ask me for more game dev! It will be easier now that I’ve done the first one, and obviously I can do both (just not both, quickly!)

Have fun with Counterpart!