Thursday, 2 September 2010

What could possibly go wrong?

Now that we are so close to the release of Amnesia, I would like to talk a little about all that stuff that didn't go so well during the development. I cannot talk much on behalf of my mates here at FG, so this is gonna be a pretty personal post (but can surely apply to others out there as well).

What can keep a project from getting done? Well, there sure are tons of different causes for this to happen, but I think we can classify these in some simple categories, which I am gonna list right away:

Bad (or not so good) design
This is a big source for issues, issues and more issues. Think about it, if you are just patching your stuff up for your current needs, you are really gonna need a big amount of luck to be able to keep that if further additions need to be made. Also, that is bound to fall apart at some point in the future. All these generally lead to rewriting stuff from scratch, which means time in which the project is stalled.
For example, at the start of the project I made an object management design that worked perfectly with the 3 types of objects that we had. A few months later 2 more types needed to be added and guess what, the old design did not work! Scrap the old one and make a new fitting the old ones. Then suddenly another type is needed and of course is totally unsupported... and so on. Fortunately I got to do something that nicely fixes this now, but guess what... it's asking for a rewrite now!
Not to mention how transforms are handled, which works for now, but I really want to get it done some other way.

Rule #24923 from the Gamedev code: Learn to facepalm you will have to

So what to learn from this? Summing up, lazy design is something to avoid at all costs, and you have full control over it, so just don't let it happen! You have been warned. Also, if you fall into this one too much, it can actually lead to...

Lack of motivation
This is a dangerous one. You know, it is reaaally non rewarding to wake up right next to your workplace, being all alone there, with temperatures over 35ÂșC (lovely summertime in southern Spain) and having to hunt down a random bug through over 1000 lines of code. You eat, sit back, hours go by and then you go to sleep again. I had these like everyday in the last month and a half. I looong so much for a vacation now, just in case you are wondering.

I see no inspiration in this painting. You can get melting watches everyday in august here in Seville.

Anything that can be listed here is no good on its own, but it can also lead to issues in the above category. When you work while being in this state, you are very likely to make mistakes, often minimal, but horrible-bug-creating ones too. In addition, when working like this, even the simplest of tasks will become time consuming. Trust me, it is not good at all.

Force Majeure
Fancy frenchy name for the funniest one. Think Murphy's Law: anything that can go wrong, will go wrong. These are generally external interferences, as in stuff happening around you over which you have little to no control at all. This includes:
  • Power cuts for a couple of hours.
  • Electrical failures with firework-like sparks and lightning and risk of fire.
  • Having water from a neighbor above flood your apartment.
  • Network screwups.
  • Laptop breaking down (twice).
  • Buying a replacement computer for the dead laptop that turns to be faulty itself too.
  • Being pointlessly called to court, senselessly accused of swindling.
These are fine examples in this category that happen to summarize the last 5 months in my life. While it might sound like a joke or exaggerating, all of the above are true stories that are actually too long to describe here (I might give details on demand). I lovingly coined it "the Frictional Curse", and it seems to affect FG core team members living outside Sweden only. At least I didn't lose any of my work. What can I say...

Wait, is that my apartment over there?

Sadly, all the above is nothing but just a glimpse of the many forms mayhem can adopt. At this point, I got no real advice other than learn to live with the fact that there is chance things can go bad, and in the worst possible moment. Once you accept it, that won't make it less likely to happen, but at least it won't take you by surprise!


  1. Haha. Yes sometimes Shi* happen

  2. What did you do to have been accused of swindling?

  3. @A: I tried to pay at a store with a fake 50€ bill last year, 100% unknowingly of course. I even know exactly who passed it on to me and where, but it was nothing I could prove, so I lost 50€ and on top of that, I earned myself going through a unnecessary minor offence proceeding a year after. Bad luck I guess :)

    Moral of the story: always double check any bill you get from anyone.

  4. 35 degrees? wow, that's really hot. i like it closer to 20 or 25.
    yeah, what did you get called to court for?

  5. @Padster: The answer to your question is right above your post.

    Quote (SuddenJonatan said...)

    "Haha. Yes sometimes Shi* happen"

    Damn strait - I just fell off of my damn chair, one of it's legs broke off. And I'm not that heavy - the wretched thing was an old, wooden chair, and probably some woodboring insects had fun with it.

  6. Were # Electrical failures with firework-like sparks and lightning and risk of fire.
    # Having water from a neighbor above flood your apartment.

  7. @Padster: as Anonymous said, I gave away some details right above your post.
    @hanging_rope: as fun as it might sound, they were totally unrelated events. I believe I should I feel lucky for that. :P

  8. Let's hope that Amnesia hits the 1000000 units sold mark soon, so you can move into a top level loft (no neighbors above) with it's own UPS (not just for the computer, but the whole _building_), so no more electrical outages.

    As to the rest of force majeure: meditate and prepare yourself, they'll get at you no matter what.

    And take your time (even more) with design in the future. I know from movie production that a badly planned story or production process usually collapse on the first minor hiccup. Sometimes I think of movie production as another form of programming, with people as the collaborate compiler. No debugger included, tho :D

  9. And yet indie games generally turn out better than mainstream titles.

    As a aspiring games dev, thanks for posting this.

  10. @pseudoruprecht: hahaha well a top level loft here could be a bit dangerous. Try to picture a real harsh sun shooting its rays for around 14h a day on that rooftop. Wouldn't take long to turn the loft into an oven :P

    @Ben: you're welcome :)


Note: only a member of this blog may post a comment.