Opinion: Crunching / The Retroactive Ripples
I’ve heard game developers moan and groan about “crunch time”, the practice of working ridiculous hours to meet an equally ridiculous deadline, very publicly in the past and always assumed that it was the long hours that irked them. Now I think I realise just why “crunch time” upsets people so much. It’s not the hours, as exhausting as they might be, it’s giving up your integrity as a developer to get something done on time.
A few weeks ago I took my laptop to a local pub (a rare occurrence for me – I’m very much not one of the types who like to sit in pubs or coffee houses and make a big deal of being seen to write games) and showed a visiting industry friend of mine a very, very early version of Less Than Three. To give you an idea of just how early it was, it had hardly any graphics, no audio, broken collision detection, just a rectangle to represent the player, only supported one resolution and required the player to manually move the game window fully on to the screen every time it started. It did have a fully working particle system though, go figure! Thankfully, the friend in question understands the game development process and was able to see past all of that to the actual game underneath. We chatted about it for a while and then put the laptop away for the rest of the evening to concentrate on sampling some rather good craft beers.
A few days later I received an email from him suggesting that Less Than Three be submitted for inclusion in an indie showcase at a game expo. I hadn’t really considered submitting Less Than Three to any showcases or expos as I didn’t feel that it was in a state ready enough to be seen by anyone outside my close circle of friends yet (excluding dev screenshots on Twitter etc.). However, having someone else in the industry, albeit a friend, suggest that I could potentially get it ready and submit it made me think. Having spoken to various people close to both myself and the game, I figured it was worth a go. After all, even if it isn’t accepted, at least it will have been seen by the right people if nothing else, right?
The only issue with submitting was the deadline, just two weeks away.
I mentioned earlier that Less Than Three was, at the time, in a very basic state. Most of the work prior to that point had been on the engine – actually getting a vaguely polished, demo-able game out of it was not something that could be done in two weeks without putting in some very long days and cutting a lot of corners. Rushing everything to meet an incredibly tight deadline flies directly in both the face of iterative design, a methodology I believe very strongly in, and my own personal work philosophy – I’m not work-shy by any means, I work incredibly hard and rarely have a day off even over weekends but, having worked in the very high-pressure world of F1 software engineering, I like to do things at my own pace now, work on what I want, when I want, to a level of quality I’m happy with and, most of all, not be forced to cut corners. Still, this wasn’t going to be a release version, the code doesn’t need to be tidy or optimised, it was just to show a few select people what the game is and, hopefully, what it has the potential to become – so cutting a few corners wasn’t an issue, was it?
Two weeks of solid 12+ hour days full of coding and asset creation later and Less Than Three is submitted with four hours to spare. It runs smoothly (on my workstation, at least), looks ok, the core idea of the game is there and I can sit back and relax.
Except I really can’t. In those two weeks I created some 325 graphical assets each of which, to speed development and allow me to meet the deadline, is stored in its own file and loaded into its own Texture2D object in memory – for performance reasons these all need reorganising, renaming, compiling into spritesheets and all the bits of code that use them need refactoring to accommodate the changes. That’s a couple of days’ work. Then there’s the player model – I don’t like it, it needs redesigning, something I would normally iterate over several times before even thinking of importing it into the game. In fact, a lot of the graphics were created to show potential, as context-appropriate place-holders – most of them will need re-working to some extent. I’m not happy with some of the code design decisions I took to get everything completed on time – they will need re-evaluating leading to potentially more refactoring.
All of this had been playing on my mind for most of the two weeks and, with those two weeks behind me and the deadline met, is now even more so. I’m taking stock, working out what needs to be done, re-done, changed, optimised, and redesigned. I’ve made some of the changes already (four new player models, halfway through spritesheet creation etc.), but there’s still a lot to do. I’m retroactively iterating for all the iteration opportunities I skipped, ignored or passed up just to get everything working, and it really doesn’t sit well with me. I like to take the time to do things right. To take a step back, design, iterate, optimise and ponder… then rinse and repeat. That’s just me, it’s who I am and how I work.
Thankfully, as I work for myself, I can go back and do all of these things, especially as there’s no firm release date for Less Than Three yet, but a lot of developers at larger studios don’t get that opportunity. I raise my coffee mug to all of them. I’ve made a decision to submit to a lot more indie game showcases and competitions, so there are going to be a lot more deadlines to hit, and a lot more corners cut and then uncut. I guess it’s just the nature of the industry.