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.

Shadow of Mordor Header 2

What Works And Why: Sauron’s Army

Heat Signature Talk

Showing Heat Signature At Fantastic Arcade And EGX


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

Murder, She Wrote

The Formula For An Episode Of Murder, She Wrote

Heat Signature Wide 2

Heat Signature Needs An Artist And A Composer

Heat Signature Floorplans Header

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

Gunpoint Steam Workshop

Gunpoint Patch: New Engine, Steam Workshop, And More

Distance Header

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

The Magic Circle

Raising An Army Of Flying Dogs In The Magic Circle

Floating Point Blog Launch

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

Floating Sine

Drawing With Gravity In Floating Point


What’s Your Fault?

Hoplite banner

The Randomised Tactical Elegance Of Hoplite

Gone Point

Here I Am Being Interviewed By Steve Gaynor For Tone Control

Heat Signature Thumbnail

Heat Signature: A Game About Sneaking Aboard Randomly Generated Spaceships

GRappling Hook Thumbnail

The Grappling Hook Game, Dev Log 6: The Accomplice

Alien Swarm Heroics

A Story Of Heroism In Alien Swarm

FTL Story

One Desperate Battle In FTL

Spelunky Banner

To Hell And Back In Spelunky

Game vs story graph

Games Vs Story 2

Gunpoint Breakdown

Gunpoint Development Breakdown

Max Payne 3

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

This is how you die

My Short Story For The Second Machine Of Death Collection


Not Being An Asshole In An Argument

Skyrim Diary - Frostmere

Playing Skyrim With Nothing But Illusion

Mainstream Games

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


A Short Script For An Animated 60s Heist Movie

Dark Messiah

The Magical Logic Of Dark Messiah’s Boot


Arguing On The Internet

Stealth Games

Why Are Stealth Games Cool?


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

Suspicious Manifesto

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

What Makes Games Good

Seat Quest

A Story Of Plane Seats And Class

Beneath Suspicion

Avoiding Suspicion At The US Embassy

Open Worlds

An Idea For A Better Open World Game

Level Up

A Different Way To Level Up

BioShock Ending

How I Would Have Ended BioShock

Meet the Spy

My Script For A Team Fortress 2 Short About The Spy

Team Fortress 2

Team Fortress 2 Unlockable Weapon Ideas

Football Manager

Don’t Make Me Play Football Manager

EVE Assassins

EVE’s Assassins And The Kill That Shocked A Galaxy

GalCiv 2

My Galactic Civilizations 2 War Diary


I Played Through Episode Two Holding A Goddamn Gnome

Machine of Death

My Short Story For The Machine Of Death Collection


A Woman’s Life In Search Queries

Second Life

First Night, Second Life


SWAT 4: The Movie Script

Game Design: The Non-Stick Plan

Thought I’d take a break from programming talk to get into game design, and how I approach it. I am aware my mug is ridiculous – it’s an old GTA III promo one.

I’m bad at shutting up once I get talking about this stuff, so I’ll also summarise the basic points in this post. Not all of this stuff is in the video and not all of the video is in this – good summary Tom.


I usually have an idea for a game when I’m excited about something else. With Gunpoint, it was thinking of cool ways to infiltrate buildings in Deus Ex.

For the Grappling Hook Game, I was watching a great Chinese/Korean heist movie where they use a lot of ropes (it’s on Netflix: The Thieves), and it clicked with all the rope-related moments I’d loved in Worms and Chaos Theory co-op and Rainbow Six: Vegas.

And for Heat Signature, it was an old idea I’d had for a triple-A 3D roguelike, which I’d always assumed to be impossible. I got talking to Graham about how it might work in 2D, and the more we talked about it the more doable it seemed, and the less I felt it needed to be anything else.

With all these, what turns it from ‘something I’m excited about’ to ‘something I want to make a game about’ is a conviction that this exciting, magical thing can be compressed down to a simple set of rules. Rules that wouldn’t just be a crude shadow of what’s cool about these things, but actually condense what makes them exciting, and generate that excitement again and again.

Making Things Modular

When there are big sweeping unknowns in how I’m going to handle something in a game, they usually get cleared up when I find some way to classify what needs to fill that gap, to summarise it as a simple template that can be varied and repeated to create things that’ll be interestingly different.

In Gunpoint, the question of “What kind of things can you hack?” was answered when I figured out how to define these things: each one is an electrical device, each one can be connected to any other, and each one can trigger whatever else it’s connected to. From that template, I can fill the levels with these crosslinkable ‘modules': light switches, electronically locked doors, security cameras, trapdoors, etc.

How that same principle applied to Heat Signature is what I talk about in the video above.

Leaving Flexible Gaps

It’s very hard to answer all the unknowns in a plan all at once, and it doesn’t really make sense to – you need to make some of it to really bring into focus what it’s missing or what it would benefit from. So it’s good to leave these gaps flexible: I try never to say things like, “And I’ll have to come up with a full text parser to make AI-driven conversations work.”

It works out better if you keep that gap flexible: “And then you’ll talk to these characters, but I’ll decide how in depth and interactive we make that when I come to build it – anything from completely pre-scripted text boxes to dialogue trees to the nutty text-parsing thing.”

Having A Plan And Not Sticking To It

I do plan, a lot, but it’s more like navigation than a strict design document. I hate to waste time, and making things work is very time consuming, whereas purely theoretical design is very easy. Purely theoretical design can’t fully predict what the finished system will feel like or what the consequences of it will be, but it can foresee some problems, and when it does, it’s usually right.

There are an infinite number of things you could make – it doesn’t make sense to spend your time exploring ones that already seem problematic after a few minutes mapping them out in a text document.

But having that document doesn’t stop you from changing course when the thing you build turns out differently than you imagined. The plan for the Grappling Hook Game says only one character should have the grappling hook, to encourage co-operation. Now that I’ve built that much, playing as the non-grappling hook characters feels a bit paralysing, so now I’m figuring out if it’s viable to give them all grappling hooks in addition to their speciality gadget.

If that feels good, the whole game could become about latching onto friends and swinging off them mid-air to do ridiculous things. If it doesn’t, maybe the solution is just to improve on-foot movement or something. I don’t know yet, but the plan is always just ‘what seems most promising on paper – try this first’.

More ,

Naveen: I've heard you say "we" when talking about Heat Signature. Are you the only one working on the game or is there a mini-team?

Tom Francis: Just me for now - I'm not sure where that habit comes from! Maybe maths? "From this we see that..."

a teen who dreams about being an indie developer some day..: You know what would be supercool? Sneaking into a giant space station, guarded with military ships and station's sensors (rotating "spotlights"). Go in and shock the station's engines! Success!

Alon: How will you keep tabs on a battle a galaxy away? will there be an update-buffer-zone around the location of the ship?

Damon: Fantastic video, I haven't really thought about this method thinking before :)

Koobazaur: Really enjoyed your video. However I propose an amendment - stick to the plan timeline, but be loose with the plan itself.

On my first game I had a pretty strict agile dev timeline with iterative milestones, which really helped me (and my 5 artists) stay on track and release on time, while still leaving room to move tasks around, add new features based on tester feedback, and (sadly) cut some content to actually finish on time.

I found it a good balance between structured vs. unstructured models like you mentioned at the beginning!

yokcos700: I hereby angrily demand Heat Signature.

anothercommenter: The built-in YouTube captions are hilarious on this video.

Tom: "Computers also think in modules and classes and templates and things."
Captions: "Computers with moderns partisans maxine X in August and I hate reaches."

Shins: Seems to me that spawning with new class every time you die (thief, assassin, spy) is unnecessarily restrictive. Why don't your stations generate missions based on the content of the galaxy and you just collect a contract from there? Dock with a station, grab a contract to steal, or kill, or intel-gather with maybe a lead clue that's generated based on the facts of the world ("You're looking for a [faction] ship, which is [colour] in colour, last seen in [sector] space. We want you to [activity (kill)] [target (the chief engineer)]"). That way the player decides what type of roll they take on with that life.

Shins: Oops. Meant to post that on the Heat Signature vid, sorry.

Gunpoint problem? Check for a solution or tell us about it on the Windows, Mac or Linux forum as appropriate!

For questions about what tools I used and when things are out and what platforms they're coming to, see here.

URLs get turned into links automatically. You can use <i>HTML</i> but not [b]forum[/b] code. If your comment doesn't show up, e-mail me - the spam filter's just detained it for questioning.