Go to content Go to navigation Go to search

Killing One’s Children - lessons from Fathom

April 14th, 2008 by Rob

One of the more challenging aspects of making something for public consumption is tossing out features that once were deemed to be ‘great’ .. but as the project moves forward, becomes less and less relevant and appropriate. Any creative person knows this as a distasteful duty … feature films are filled with scenes that don’t make any sense to the viewer, put there by the writer/director early on .. and left until the bitter end because they never had the ‘heart’ to toss it away. The tossing away part is a BIG challenge.

I call the tossing out part .. ‘killing my children” .. I dunno where I got the name .. maybe from Dorothy Parker, the famous writer. Basically I “kill my children” whenever I ruthlessly rip out an early feature that either never worked right and kept breaking something else .. or I never got to polishing quite right anyway and so it always stuck out. They are called “my children” because typically these are the features that got me and everybody else all worked up early on, and then over time, we realize that they really don’t work any more and we have so much better stuff now anyway, that the only reason to keep the feature there is because of some nostalgic reason that only the dev team cares about anyway .. “oh we can’t toss that … don’t you remember how excited we were the first time we got it working?”. So one day I just rip the thing out and I usually felt better about it immediately. I have come to believe that a hallmark of a “pro” is their willingness to be ruthlessly savage in killing their children.
Because if you don’t kill certain children, they haunt you FOREVER.

A good example is in FATHOM, the way the dolphin jumps out of the water. That animation, actually, was completed before the game was even started. Michael Becker and I were talking about dolphins one day, and the next morning, he shows me a rough version of a dolphin jumping out of the water. So I stuck it up on the screen, and started writing a kernal where the dolphin could swim around under the water. And the game grew from there.

But I never really liked how the dolphin jumping out of the water never really seemlessly segued from the dolphin swimming up from under the water .. it’s a real cheat, obviously .. at some point I take away joystick control from the user and just smash the animation up on the screen .. letting the user control the dolphin again when it lands. The “right” way to do it would be to actually move the dolphin itself OUT of the water and either morph it into a seagull right in front of your eyes … OR .. have the dolphin arc and dive back in to the water … with a little splash animation. Such is how I wanted it to work, anyway.

But nobody could bare the thought of tossing out the little dolphin jump animation .. after all .. such had been the genesis of the whole game … that animation was truly a “precious little child” .. and my wanting to “kill it” was quickly shot down by Dennis Koble … and when we disagreed .. Dennis brought in the marketing people, and Bill Grubb, the CEO .. and they beat me up pretty bad that it was fine as it is. So that little animation remained … and to this day .. I can’t look at Fathom because of it .. it’s just sooooo annoying knowing that another week or so would have made the dolphin jump sequence sooooooo much cooler. Ever since then, I make it a point to kill my children a LOT earlier in the dev cycle .. tossing out our early first efforts that looked great the first time, but as we got better at the task at hand, quickly became “second rate” .. turning into an acne faced teen, at best. If left too long, the ‘ugly teenager’ becomes even uglier sometimes .. a true eyesore, that lingers forever after. Because once the thing ships, one’s adorable little child has all of a sudden become a ‘good for nothing grown up” who will long outlive everybody involved.

2 Responses to “Killing One’s Children - lessons from Fathom”

  1. Brian Gordon Says:

    What a great lesson in this blog! Although I have no plans of programming video games anytime soon, this advice can apply to many things in my life. Time to start the de clutter process, have many “childern” in the garage in the form of boxes, can’t wait to “kill” them - lol - Thanks for the motivation and looking forward to future blogs.

  2. Adam Young Says:

    Yep, this is pretty good design advice across the board. I think in software in general there is a sense that since you made the effort to code it, you should ship it. Obviously, the ideal is if you decide what to spend you effort on up front, and only code the most critical features. But since design and development are iterative, evolutionary processes, you have to accept that certain features are more harm than benefit to ship.

    I’m going to see if I can get a discussion going at my company about the features that would improve our products by their absense.

Leave a Reply

You must be logged in to post a comment.