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:
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.
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.
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.
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.
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!