All posts

Games

Game development

Stories

Happiness

Personal

Music

TV

Film

TOM FRANCIS
REGRETS THIS ALREADY

Hello! I'm Tom. I'm a game designer, writer, and programmer on Gunpoint, Heat Signature, and Tactical Breach Wizards. Here's some more info on all the games I've worked on, here are the videos I make on YouTube, and here are two short stories I wrote for the Machine of Death collections.

Theme

By me. Uses Adaptive Images by Matt Wilcox.

Tom’s Timer 5

The Bone Queen And The Frost Bishop: Playtesting Scavenger Chess In Plasticine

Gridcannon: A Single Player Game With Regular Playing Cards

Dad And The Egg Controller

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

What Works And Why: Multiple Routes In Deus Ex

Naming Drugs Honestly In Big Pharma

Writing vs Programming

Let Me Show You How To Make A Game

What Works And Why: Nonlinear Storytelling In Her Story

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

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

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

A Story Of Heroism In Alien Swarm

One Desperate Battle In FTL

To Hell And Back In Spelunky

Gunpoint Development Breakdown

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

Arguing On The Internet

Shopstorm, A Spelunky Story

Why Are Stealth Games Cool?

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

A Different Idea For Ending 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

My Idea For An ‘Unconventional Weapon’ Game

I was ill for a few weeks recently, and Ludum Dare happened during it. As usual I wanted the challenge of thinking up an idea to fit the theme, but couldn’t spare the two days to actually make something. The theme was ‘an unconventional weapon’, so I wrote up an idea but didn’t get around to publishing it at the time. Here it is! Continued

Our Super Game Jam Episode Is Out

Super Game Jam is a documentary series on Steam that films two developers per episode, working together to make a game in 48 hours. It’s discounted to $15 for the whole series right now, which is 5 half-hour episodes, the 5 games that were made in them, and a bunch of extra scenes and music from Kozilek and Doseone.

Episode 5 just came out tonight, and it’s me and artist/designer Liselore Goedhart making SimAntics: Realistic Anteater Simulator. We were given the theme of ‘Simulation’ by previous jammers Cactus and Grapefrukt, and told not to make SimAnt. So we simulated an anteater instead.

You can grab it from Steam here, where there’s also a trailer. Stills below, and thoughts on the episode at the end! Continued

Designing Floating Point

My game about swinging through randomly generated spaces has spilled out from a game jam entry, to a four-day game, to a week-long game. This is a series of three video blogs talking about interesting things that happened in its design.

Here’s my previous video showing the game itself.

Update: it actually took five weeks, but now it’s done and out and on Steam and free and half a million people played it! More info on the tag.

Adventure Time Game Jam

I did Ludum Dare once, where you make a game in a weekend, and it taught me loads about how to be ruthlessly efficient and cut things before you waste time on them. I’ve skipped every game jam since then, and every event except the IGF, to focus on Gunpoint.

This weekend, though, I’m letting myself do one. Because a) I made loads of progress on Gunpoint last weekend, and am very close to being able to show you a new feature I haven’t announced yet, and b) this will probably be the only chance I ever get to legally make an Adventure Time game. Continued

Game Idea: Slumber

The theme for this weekend’s game-making competition is evolution. As usual, I’m gonna stick to working on Gunpoint but write up the idea I’d do if I had time to get distracted.

I think if you’re going to make an evolution game, you’ve got to actually model evolution. God knows gaming misuses that word enough – we need to repay science for every time a game has claimed some magical goo caused our character to ‘rapidly evolve’ into a superhuman. Continued

The ‘Tiny World’ Game I Didn’t Make At The Weekend

Another Ludum Dare, the competition to make a game in a weekend! Another weekend I can’t really do so! Instead, I worked on Gunpoint. But as before, I’ll tell you what game I would have made. The theme was Tiny World, and my game idea is called… Launch Craft. Continued

The Game I’m Not Making This Weekend: Red Snow

It’s Ludum Dare this weekend, a regular competition to make a game from scratch in a weekend. I don’t have two days spare, but I do have two hours and a cup of coffee, so I’ll pitch you the game I would make if I could.

The theme is decided by a vote, and ‘Alone’ won. However, ‘Kitten’ was also in the final round. It got more down-votes than any other theme, but I can’t help wanting to combine the two. Here’s my idea:

RED SNOW

Top down view of snowy tundra. You are a badly drawn TINY KITTEN that scampers towards the mouse cursor, kicking up snow and leaving messy pawprints. It’s a zero button game: all you do is move the mouse.

If you stray far from where you start, you’ll run into a villager or two. They stop when they see you, and run to the north if you approach. They’re faster than you, so you can never catch up to them.

The further north you go, the more villagers you’ll see. They all run away to a village to the north, but if you get close to the village itself, they’ll flee that too. If you chase them, you’ll reach a cliff edge. The villagers will stop at the threshold, but if you come close enough they’ll throw themselves over to get away from you.

The other side of the ravine is a sheer wall of ice, in which you see blurry reflections of the villagers you’re chasing into the chasm. But your own reflection is wrong: far too big, dark and spiky. A rough silhouette of that more monstrous shape appears over your usual badly-drawn kitten avatar, and gets stronger the longer you spend in the presence of your reflection. Eventually, the kitten fades away entirely and you see yourself as the monster you are.

After that, there’s a small chance you’ll encounter smaller villagers who can’t run as fast as you. If you get close to one, you automatically pounce on it and rip it to shreds in a spray of blood, and you’re unable to control yourself until you finish devouring its remains. After that, any time your cursor is directly over a villager, you’ll accelerate to chase it down and eat it. The more you eat, the faster your hunting speed.

If you do kill a villager, there’s now a chance that the villagers you meet in future will throw rocks at you before running away. The more you kill, the more will try to fight you. The rocks knock you back very slightly, so if more than a couple are pelting you, you can’t catch up to them and have to run away.

After the first few, rock hits will make you bleed steadily, leaving a trail of blood in the snow. The bleeding stops if you eat a villager. If you don’t stop the bleeding, your monstrous image starts to fade and the kitten returns, still bleeding.

If you leave the villagers alone, or you kill them all, you’ll end up alone in the snow. After a while alone, your beast appearance fades and you start to see yourself as a kitten again. The screen gets darker as night closes in, and the kitten starts to tremble and turn blue. Eventually, its scampering slows to an unsteady crawl, it lies down, goes still, and is lost in the dark blue snow as darkness closes in.

“The feel-good game of the decade.” – IGN.com

 

The Escape Game I’m Not Going To Make This Weekend

The 48-hour game-making competition Ludum Dare is back on this weekend, and the theme is Escape. This is the 21st compo – I entered the 19th with Scanno Domini, and regretted not entering the 20th.

Gunpoint’s at too exciting a stage right now to take time off from it. If I was making a game about Escape this weekend, though, here’s what it’d be.

Escape Velocity

You’re a small escape pod with a single thruster, jetting around an infinite randomly generated space. Planets of randomly generated size attract you with their gravitational pull. If you land on one, you’ll find your thruster isn’t powerful enough to let you escape.

You can, however, press down to burrow through the crust of the planet into its gooey core. Your pod automatically sucks up the molten minerals in the centre of the planet to use as fuel. The bigger the planet, the more intensely its fuel burns, and therefore the more powerful your thruster can get if you suck up its whole core. It’s just enough power to escape the gravitational pull of a planet this size, so from now on you can escape any planet that isn’t bigger than this one without boring to its core.

As soon as you start sucking up a planet’s core, though, it becomes unstable and will soon explode. It also gets lighter, reducing its gravitational pull. You have to judge how long you can afford to keep sucking up its core before you need to start escaping. The longer you suck, the more powerful your thruster and the weaker the gravitation pull it has to overcome, but the closer you get to the planet’s detonation.

You have to leave the crust through the hole you made on your way in, or take a second to drill a new one. Provided you get outside the fatal radius in time, you can ride the blast wave of the explosion for a speed boost that’ll last till you next hit a planet, or thrust in a different direction.

You’re trying to get to the galactic core, a direction indicated on-screen, by progressively increasing your thruster power and armour to increase speed and skip more and more planets on the way. You want to get there to suck the whole thing up and use it as fuel to escape spacetime or whatever THE END.

A Two Hour Patch For My Two Day Game

I’ve just put up a new version of the game I made last weekend, Scanno Domini. You encounter randomly generated enemy robots, scan them to unlock their parts, then kill them and take all their guns, shields and engines for yourself. Grab the new version here.

Scanno Domini 1.1

If you do play it, I’d love to know what you thought of it – I’ve been really surprised by the feedback so far.

This version fixes a few significant bugs I didn’t have time to test during the compo – the competition version will stay as it is for judging purposes, of course, I’m just putting this up for anyone who wants to have fun with it. The key changes are:

  • Choice of resolutions – anything up to 1920×1200. The game will remember your choice and not ask you again.
  • Fixed a crash relating to being able to fire while dead. Duhhh.
  • Fixed a bug preventing enemies from sensing when you shoot or touch them – they now turn to try and find you.
  • Fixed a lot of erratic behaviour with the scanner – it’ll now scan all the new tech the bot has in one go.
  • Fixed a problem with bot behaviour that made The Ominous Event extremely hard to recover from – they’ll wander off on their own once you’re down now.
  • Fixed a bug causing some bots to spawn ‘blind’, with no vision cone. It was kind of cute, but causing problems down the line.

Sometime after Christmas, I think I may try a 48 hour sprint with Gunpoint. Getting so much done in such a short time is exhilarating, and it could really use a burst of progress to get it to a point where it makes sense.

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.

Ludum Dare Day 2, 1PM: Feature Complete

Which is to say: not graphics or content complete. So brace yourself for a painfully similar screenshot:

Snowbot 4

But the two tiny changes you do see represent pretty much everything else I needed to get done for the game to make sense: you can now scan enemies when they’re not looking to steal the details of their weapons, then use that info to rebuild their guns, shields and engines when they’re dead.

I’m happy I’ve got to this point, but there’s a lot more to do. I have a choice of a few fairly major areas to work on, and I’ll list them in my current priority order:

  • Player guidance: Even in an ultra quick experimental game I don’t think this step is remotely skippable. If I don’t get a few basic tutorial messages in to explain how to play the game, no amount of readmes will ever make up for it.
  • Balance: Bots of random strength spawn in random positions. So that kinda sucks. I just need a few lines of code to make weaker ones spawn near the player, tougher ones further away, and to make certain configurations excitingly rare. This’ll have a big effect on how much fun it is to play.
  • Environment: I’d like to add water around the edges to make this an island, and possibly a fortress wall at the top.
  • Objective: Right now there’s no long term objective. Ideally I’d like to have you scanning and stealing parts until you’re strong enough to assualt a fortified wall to the north and escape.
  • Graphics: I must at least make some proper plasma blasts, and ideally add explosion effects and a better player bot. I also need to take one more go at making snow look less awful – I’d like to make it grainy and randomise the ‘dunes’ a bit.
  • Extra feature: scale. I’d really like to have double- and half-size bots roaming around, with accordingly different toughness and speed.

The reason graphics is so low is that the time it takes is such a wildcard – sometimes I get something bad right away, other times it takes me hours to make something bad.

Let me know if you think my priority order is nuts.

Current title idea: Scanno Domini. Other scan puns welcome.

Ludum Dare Day 1, 11PM: Almost Fun

The screenshot I’m about to show you won’t look spectacularly different to the one earlier – I still haven’t fixed the horrible protagonist bot or the laughable kid’s snow effect. But to play, it’s already close to what the finished game will be.

The main thing is randomised enemies, with visually apparent stats. Randomisation will be part of the Discovery element, and also just the fun of the game: it’s never going to be a great shooter, but it’s already kind of cool to blunder into a triple-barreled deathbot with hyper speed and discover a whole new echelon of boned.

The visual apparency – representing every stat in the shape of the enemy rather than a stats readout – is part of that too. It gives your read on the enemies immediacy, and that’s a catalyst for fun. I need all of those I can get. Hopefully you can tell which one of these enemies has more firepower, and which one is better protected.

Snowbot 3

What you can’t see, and what you probably won’t even find if you play it, is the ridiculous amount of fun I’m having with it.

Most of this afternoon was spent thrashing out the enemy movement to be more convincing and dangerous, and all of this evening was spent drawing just a few bad sprites – it takes me actual time to get pixel art to the dismal level of quality you see here.

Then in less than half an hour, I did the coding legwork to implement every chunk of art into modularly assembled, dynamically scaled, randomised deathbots. And the game’s gone from being a tame arena where I can always win through knowing the tricks, to a terrifying robot safari where things with crazy muzzle velocities can also outrun me, and I see combinations I hadn’t pictured.

It’s not exactly good, yet, but it’s an amazing thrill to see that kind of stuff come to life from a few simple maths statements. I can pretty much stomach art work if it’s for a game that can stretch and recombine it to endless different purposes.

Snowbot 3a

I’ve also had an idea for how to relate the game more obviously to the Discovery theme. It’s fun to try and creep up on these bots when they’re not looking. They turn round if you shoot them, to prevent the game being too easy, but I’m going to make it so that you can subtly scan them if you get up close and undetected.

If they have a module you’ve never used before, you’ll gain the ability to salvage it if you later kill the bot. And if they don’t, you’ll be able to read their robo-thoughts. Not entirely sure what I’m going to do with that, but even if it’s just an array of pointless introspection it should be fun to write.

Ludum Dare Day 1, 1PM: A Working Game

Two surprising things have happened: firstly, I’ve made a game that works already. There’s no point in playing it yet, since it does nothing interesting, but that was all I hoped to achieve today. This’ll give me time to make it interesting today, and make it good tomorrow.

Secondly, now that I’ve made enough of it to see what it’s going to be like, I realise it has almost nothing to do with the theme. The angry deathbots you meet aren’t randomised yet, but even once they are I think running into them is just going to feel like encountering enemies in an arena. It technically is discovery, but because they’re simply off-screen rather than visibly obfuscated, it’s not going to feel like it.

I’m not going to worry about that too much yet – my priority order is to make it interesting, then make it good, then make it fit the theme. Here’s what it looks like now:

SnowBot 2

The blue circles are shields: I didn’t fancy putting a bunch of work in just to recreate the conventional hitpoint bar or health meter on your interface, so I went for something more visual and in-fiction. Right now each shield takes one hit, but as you can see that makes you impractically large for not much health, so I’ll probably tighten their size and thickness before I’m done, and perhaps make them come back online a while after they’re taken out.

The enemy will have these as well, and they’re one of the things that’ll be randomised, so it’ll be very obvious when you’re facing something tough. Not sure if I’ll also have big hulls – that’d mean introducing an armour system as well, which may defeat the point of the shields.

I do plan to have large engines/tracks for fast bots, and a large turret or power core of some kind for things with a lot of firepower. Basically, if I can have at least three functionally important metrics that enemies can vary in, and make each one visually readable at a glance without any interface, I’ll be close to what I want.

Challenges right now:

  • You’re in a fairly large open field of snow, and I’m not sure where to take the environments from there. I’d love it to be infinite but that’s technically tricky. I’d also love some randomly placed obstacles, but I’m wary of creating much art work for myself – I want time to redo the actual robots.
  • My control method didn’t work: holding the mouse button to make your bot chase it was fun, but it meant you’d never be able to fire in one direction while moving in another. I’ve changed it to Cannon Fodder controls – click to move, right click to shoot somewhere else while you’re on your way. It doesn’t feel quite right with current movement speed and screen size – you’re at your destination before you’ve got more than a couple of shots off. May rethink.
  • Random enemy movement was trickier than I thought. I’ve done it, but they’re rather geriatric: quivering with indecision when deciding where to move. I’ve realised the way to make it look better is have them pick an arbitrary direction, turn, then move. But that’s also the way every other game does it, so I’m still wondering if there’s a more interesting way.

Title ideas: Sighs of the Snowbots? Snowbot Snores?

Ludum Dare Day 1, 8AM: World And Movement

I present to you, SnowBot! So called because the only things I have made for it so far are some snow and a robot.

SnowBot 2010-12-18 07-52-49-09

It is the ugliest game ever made, but it works – the robot chases your cursor while you hold the mouse button, and decelerates when you release it.

Obviously with 48 hours to make something, you start to look at what really takes time, and the answer is invariably ‘tweaking’. So I made a pact with myself: no tweaking till the game is virtually done: of graphics, movement, controls, anything. I’m allowed to change things once or twice to get them functional, then they’re set in stone until the rest of the thing is in place.

I have two days, so my plan is to make the game in one. That way I can spend the second day making it good, or making up for how badly I failed to meet this ridiculous deadline on the first. My game is going to be crude and ugly no matter what, so I’m happy to make it even cruder and uglier to give myself some time to balance it and make it more fun.

In my head, this meant getting a character moving around the world in the morning, then making content in the afternoon. Turns out the first part only really took an hour, two with all the faffing with all the blogging and setting up screen captures for the time-lapse video I’m hoping to make of this process.

So next up is putting an enemy in the world, and letting the two shoot each other. Video games.

Ludum Dare Day 1, 6AM: Theme And Ideas

It’s 6am, it’s freezing cold, it’s pitch dark, England is caked in snow and the theme of Ludum Dare 19 is Discovery.

Discovery is what I was hoping for. I think one of the close runners up, Containment, would probably have led to a more interesting selection of games, but I had a clearer idea of what I’d do for Discovery. I knew if this one ended up being picked, I would have to make something involving randomised content. That’s what makes Spelunky so exciting to play, and that’s probably the greatest game about discovery I’ve ever played.

Unfortunately I’m not Derek Yu, and I only have 42 hours, and I’m wasting time writing a blog. So my game will be a little less ambitious.

To fit the theme, I feel like the pleasure of the game has to have something to do with the discovering. And the only thing gamers truly and instinctively care about is stuff that benefits them in the game. So not only does it have to be the content rather than just the scenery that is randomised, the unique elements of that content have to feed back into character progression in some way.

My plan currently is for something top down, where you direct your character – probably a robot – around a large landscape with the mouse, encountering enemies with randomised stats. Destroying them will let you salvage some of their traits, so a very tough enemy would boost your hitpoints when you destroy it.

Someone on the Ludum Dare site joked that everyone should not only have to stick to the chosen theme, but also combine it with Christmas. So if I can draw it in any meaningful way, I’ll set my game in the snow.