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

Ludum Dare Day 2, 1:55AM: Done

Jeeesus. Five minutes to go, and my game is zipped up and submitted. Grab it here. Feels strange and amazing to be ‘done’ with something – I’ve tinkered around with games for months without getting to a point I’m happy with. And while there are a few items not grayed out on my Scanno to do list, I did much more than I ever thought I could in two days. And I actually have fun playing the result.

Rather embarrassed about Gunpoint now. It could probably be done in a week.

Scanno Domini 1

The finished game is pretty much what I planned: a top-down shooter with randomised enemies, whose randomised bits you can steal for yourself. I didn’t end up scaling much dynamically, except the gun sizes. I couldn’t find a way to make it look right in the time, so it was quicker – even for me – to draw a few engine and weapon types. The differences are more immediately interesting, too – “Ooh, blue plasma?”

Scanno Domini 3

Number one thing that went right was definitely time management. I had two days, so I picked something I thought I might just about be able to do in one. It was done in one and a half, so I had that crucial half day to take a working concept, find the fun, and make the game about that.

I don’t know if I actually made it fun, but it’s so much closer than it would have been if I’d picked a more ambitious idea and only just got the basics hammered out. This is my first finished game, and given the time limit I thought I’d end up with something a lot more half-baked.

It is buggy, and its tutorial is just gibberish, but in an ideal circumstance it’s conceivable that it could convey to you what you need to know. Oh, except that you have to press R to restart.

Scanno Domini 2

Thing that went least well was trouble shooting. I’m rarely good at this, but on the scanning ray in particular I just went out of my mind. It’s still buggy – won’t always scan everything there is to scan on your first scan – and I may have messed up other things in the last minute fixes.

Scanno Domini 4

I said I was going to leave graphics till last, but in the end I decided it was worth a stab at them if I gave myself a hard time limit. I basically managed to turn the visuals from offensively ugly to merely very crude. I’m OK with crude. There’s just a particular look to very bad graphics that’s not endearing or ignorable or in any way OK, and I had to try to avoid that.

I also took time to put in sounds for almost everything important, and I’m really glad I did. I knew they’d be important to the feel, but I didn’t quite appreciate how important the feel would be to the overall thing. It’s not an art game, it’s not very brave or inventive, so it really needs to have some decent ‘pew pew!’s in.

I have exactly no time tomorrow to polish this up and also submit it to the jam, the less strict contest that gives an extra day. Which is a shame, because it needs a few bandages to hold it together properly, and a few basic human rights like a choice of resolutions. I will do those things, just not right away. For now, I am done.

Thanks for all the comments, support and puns.


SenatorPalpatine: Obviously it's unpolished, but it's actually quite fun to play once you get the hang of it.

Jason L: It is indeed actually fun to play. Well done! I was a little surprised that enemies don't aggro on attack, but with a moment's thought that's obviously the correct decision for both story and gameplay. I love the tutorial's flavour, too - more games should paper over gameplay necessities with spam/translation issues - and the way specific hulks become established as emotional 'home bases'.

Bret: Agreed. Fun.

Although the ominous moment? The learning cliff?

Yeah, no idea what to do there other than

1) die

2) Hope you respawn.

Nano: Congrats on getting it all done! Can't wait to play it (Malaysian internet connection says NO). Good luck in the competition.

MartinJ: I didn't know where else to send this, so I'll just leave it here. The bug occurred when I found a new type of enemy and I accidentally rammed into it instead of stopping near it to scan it. After I clicked ignore, I could keep playing but I couldn't shoot anymore.

Here's the report I got: ...6ni20f9j

It's a fun little game to play while pretending to be working. Like a better Solitaire.

Jason L: I am a little surprised that double- and triple-barrel weapons do the same damage as single-barrel ones. Are they really meant to be just that few pixels' slop allowance?

Also obviously this thing's going to be absolutely full of bugs, but for the record I have encountered:

1. A situation where I could fire while dead, killing the enemy who was camping me (due to dying inside the shield of an enemy, maybe?)
2. Shields that deplete in weird order if host is fired upon from within them. Would being able to actually bypass a few shots by moving point-blank be fun?
3. Enemies with a vision cone of zero. A bit funny, not game-breaking, but I suspect unintentional.

Tuuvan: Your game making skills have improved greatly since the last build of Gunpoint I played. Firstly, it is fun. I love the faux translated instruction manual at the beginning.

I know the bugs will bother you, but if it weren't for the blog, I would not have guessed this took only two days.

The controls bothered me a bit, but the difficulty of controlling the bot made me want to go back more than the simplicity of WASD for movement would have.


MB11: I personally found this game to be very addicting. Great job for only two days

Tom Francis: Thanks everyone!

Enemies originally did aggro when you shot them, it stopped working somewhere along the line and I didn't prioritise fixing it because the game wasn't too easy without it.

However, it's probably the same bug that causes the bots to camp your corpse after the difficulty spike, and that isn't intended. My hope was that around the time you're getting bored of killing maxed out bots, there's a sudden 'event' that you probably won't survive, then they'll wander off and you'll come back, rekit yourself and kill them all. Once you do, there's a lame sort of you-win message, but right now whether it's possible is largely luck.

Guns! Multiple barrels are actually about rate of fire rather than damage, a mechanic that would make a lot more sense if they fired in serial rather than parallel. Didn't have time to make that look right though, so let's pretend the other types of plasma are faster to fire but weaker, so you need two or three of them.

I didn't want weapons that do different amounts of damage because I wanted shields to have simple clear rules: they stop all shots, but always break doing it. If you're inside somene's shields, of course, things get a bit less clear. I might make shields shunt you back a bit if you try to go through them, that would feel pretty natural and make well-protected bots harder to scan.

The fire-when-dead bug is a big one, and I'll fix it. It also causes the RateOfFire crash I think. The blind enemies is strange - I know how it happens, but I don't know why my quick fix isn't working - they're supposed to check they have a vision cone every second and give themselves one if they don't. I wouldn't mind it, but they're the worst come the difficulty spike - they can camp you and your bot doesn't know not to come back to life, because it can't tell it's being seen.

Thanks again for all the great feedback. Please do vote on it in the Ludum Dare compo if you can be bothered - positive or negative. You need to make an account but that's all I think.

http://www.ludumdare... ...8;uid=3103

Zacmanman: Hell of a lot more addicting and fun than you let on to be Mr. Francis. As other's have said, I would not have guessed this was made in two days, especially by a particularly novice game maker. It is very impressive and very awesome, because I've been playing secretly forever my lord all day.

Devenger: (It's totally the website link that's getting my comments flagged as spam, isn't it?)

Sadly, you can't vote on LD competition entries unless you are yourself an LD entrant (for the competition or the Jam), probably to stop hordes of adoring fans of popular developers skewing the votes.

Tom Francis: Bah, thanks for clarifying. I hereby declare the whole enterprise a circle-jerking old boys club and/or a Minecraft promotion ring somehow, and/or a conspiracy/scam.

Jason L: To clarify the 'damage' thing, I absolutely agree that a shield should never take more or less than one bolt. I just thought that when I fired three bolts each bolt would take out one shield.