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

Status

walrus

James was taken offline last week by my hosts, BlueHost, because something was spamming my database of posts incredibly rapidly with incredibly demanding data requests. It was using up so much CPU on the server that it was slowing down every other site it hosts.

I was in New York meeting a nervous walrus at the time, so I couldn’t do much about it. Now that I’m back I’ve looked into it, done some maintenance, taken some precautions, and asked them to put it back online. The upshot is that it seems to be fixed for the time being, but I’m going to have to keep a very close eye on it for a while. If it goes down again, I’ll post updates on Twitter here.

If you’re interested in the technical specifics, here’s what I found:

  • A few lines of malicious code have found their way back into my source code, despite my having changed my password and kept up to date with the latest WordPress updates since that last happened. I’ve removed them and changed my password again, to something ridiculous. Not sure if there’s anything I can do beyond that.
  • One visitor, presumably robotic, immediately started loading the same page dozens of times a second within a few minutes of James going back up. I’ve banned its IP, but I don’t know how to prevent that kind of thing in general, or why it would cause slow SQL database queries.
  • Something was accessing parts of the database that aren’t supposed to be public. After careful investigation I discovered that, on this occasion, it was myself: when I accessed the database directly to do some maintenance, it was taking 6 seconds or so just to display or select the tables. Further back, there are still calls to these private tables that I can’t explain. I choose to ignore both these problems.

Thanks for sticking around.

More