All posts


Game development








Hello! I'm Tom. I designed a game called Gunpoint, about rewiring things and punching people, and now I'm working on a new one called Heat Signature, about sneaking aboard randomly generated spaceships. Here's some more info on all the games I've worked on, here's the podcast I do, here are the videos I make on YouTube, here are some of the articles I wrote for PC Gamer, and here are two short stories I wrote for the Machine of Death collections.


By me. Uses Adaptive Images by Matt Wilcox.

Heat Signature’s Launch, And First Player Legend

A Leftfield Solution To An XCOM Disaster

Rewarding Creative Play Styles In Hitman

Postcards From Far Cry Primal

Solving XCOM’s Snowball Problem

Kill Zone And Bladestorm

An Idea For More Flexible Indie Game Awards

Teaching Heat Signature’s Ship Generator To Think In Sectors

What Works And Why: Multiple Routes In Deus Ex

Natural Numbers In Game Design

Naming Drugs Honestly In Big Pharma

Writing vs Programming

Let Me Show You How To Make A Game

New Heat Signature Video: Galaxies, Suction And Wrench-Throwing

What Works And Why: Nonlinear Storytelling In Her Story

My Idea For An ‘Unconventional Weapon’ Game

From Gunpoint To Heat Signature: A Narrative Journey

The Cost Of Simplifying Conversations In Videogames

What Works And Why: Invisible Inc

Our Super Game Jam Episode Is Out

What Works And Why: Sauron’s Army

Showing Heat Signature At Fantastic Arcade And EGX

What I’m Working On And What I’ve Done

The Formula For An Episode Of Murder, She Wrote

Heat Signature Needs An Artist And A Composer

Improving Heat Signature’s Randomly Generated Ships, Inside And Out

Gunpoint Patch: New Engine, Steam Workshop, And More

Distance: A Visual Short Story For The Space Cowboy Game Jam

Raising An Army Of Flying Dogs In The Magic Circle

Floating Point Is Out! And Free! On Steam! Watch A Trailer!

Drawing With Gravity In Floating Point

What’s Your Fault?

The Randomised Tactical Elegance Of Hoplite

Here I Am Being Interviewed By Steve Gaynor For Tone Control

Heat Signature: A Game About Sneaking Aboard Randomly Generated Spaceships

The Grappling Hook Game, Dev Log 6: The Accomplice

A Story Of Heroism In Alien Swarm

One Desperate Battle In FTL

To Hell And Back In Spelunky

Games Vs Story 2

Gunpoint Development Breakdown

Five Things I Learned About Game Criticism In Nine Years At PC Gamer

My Short Story For The Second Machine Of Death Collection

Not Being An Asshole In An Argument

Playing Skyrim With Nothing But Illusion

How Mainstream Games Butchered Themselves, And Why It’s My Fault

A Short Script For An Animated 60s Heist Movie

The Magical Logic Of Dark Messiah’s Boot

Arguing On The Internet

Shopstorm, A Spelunky Story

Why Are Stealth Games Cool?

E3’s Violence Overload, Versus Gaming’s Usual Violence Overload

The Suspicious Developments manifesto

GDC Talk: How To Explain Your Game To An Asshole

Listening To Your Sound Effects For Gunpoint

Understanding Your Brain

What Makes Games Good

A Story Of Plane Seats And Class

Deckard: Blade Runner, Moron

Avoiding Suspicion At The US Embassy

An Idea For A Better Open World Game

A Different Way To Level Up

How I Would Have Ended BioShock

My Script For A Team Fortress 2 Short About The Spy

Team Fortress 2 Unlockable Weapon Ideas

Don’t Make Me Play Football Manager

EVE’s Assassins And The Kill That Shocked A Galaxy

My Galactic Civilizations 2 War Diary

I Played Through Episode Two Holding A Goddamn Gnome

My Short Story For The Machine Of Death Collection

Blood Money And Sex

A Woman’s Life In Search Queries

First Night, Second Life

SWAT 4: The Movie Script

Cloak And Tagger

I’ve had this vision for how music should be played in the future for ages now: tagged and sorted by mood, style, and speed. You’d click a few words – ‘fast’, ‘instrumental’, ‘electronic’ – and a playlist would be auto-generated from a randomised selection of tracks fitting all three criteria, weighted towards highest-rated and newest. Then you’d chuck it on your MP3 player and cycle downhill to work. Or I would.

I decided that since we’re already pretty much in the future, there must be something out there that already did this. The trouble is that searching for anything to do with tags and anything to do with media players gets you a billion results about ID3 tags, even if you add a “-id3”. Results are still talking about ID3 tags, they’re just not calling them that.

But I remembered Tony saying Winamp’s media library was really good. I’d already tried it, shortly after he said that, and hated it, since I didn’t really have a use for a media library beyond the simple big playlist I already have. And it doesn’t support custom tagging in the way I describe. But since I do already use Winamp for everything – and I just found a new skin that makes it look like the future – it couldn’t hurt to fiddle around and see how close I could get.


Very close indeed, turns out to be the answer. I can do all of what I mention above except the selection ‘weighting’. I can make the list only things with a rating of three or higher, or only things two weeks old or newer, but not a random mix weighted towards those things. Essentially I need a biased shuffle, and I don’t know of anything that can do that.

But custom tagging can be done, in a stupid sort of way. Winamp is nice enough to let you create your own custom ‘views’ – essentially filters for your music library. The default ones are things like “Never played”, and you can then drag everything that comes up in that View to the Playlist section and it’ll make a playlist of them. What you can do with the custom views is to specify that you only want tracks whose Comment field (a part of the ID3 tag) mentions ‘fast’ and ‘electronic’ and ‘instrumental’. Then instead of having an external tagging system that your media player would have to keep track of itself, you write your tags however you like in the Comment field, and they’ll stay with the file if you ever do change media players.

The stupid bit is that you have to create a new ‘view’ for each combination of tags you want to filter by, so it’s a few steps rather than just clicking a word. If anyone knows of anything that can do this better, do share.

I’m not trying to deconstruct my entire music collection into Pandora-like musical properties, I’m trying for a more teleological approach. That is, they’re tagged after what I might want to use them for. So there’s no “mild tonal syncopation” tag, because I’m rarely specifically in the mood for mild tonal syncopation, but there is a “wistful” one. There’s a “chilled” one for working to, and a “cool” one for playing games I’m good at to. Combinations thereof create a smaller playlist that more specifically nails the mood you want from the music, and you can even sort by ‘Times Played’ and select the fifty you’ve heard least often.

Yes, the theme for this week is Scientifically Quantifying Art. Because you can. The rest of the week I’ll be away quantifying a big chunk of art in a great deal of detail, and I look forward to not being able to tell you about it when I get back.

TomP: You can do it a similar way, (i.e. using ID3 comments for tags) with 'smart playlists' in iTunes.