I'm getting ready to make a little road trip up to my parents' place in Indiana, ostensibly to help out with construction on their new house, and other such stuff. Unfortunately, this isn't a proper vacation, which means I'll be taking some work with me. (It works out fine, though - they'll be asleep by 9PM every night which gives me a couple of hours guaranteed to get stuff done [grin])
So I've been copying my build environment over to Relm, my laptop, in order to be able to take my projects on the road. This is a pretty easy procedure, since I've got about 90% of it set up already from previous travels. The rest could actually be automated, but I haven't gotten around to it yet; I'll have to seriously think about it for the future. But that's another digression I don't have time for.
The upshot of this little bland slice of routine is that I realized just how much my current development box sucks. It's a great, reliable, and incredibly resilient machine, no doubt; but it's simply too old and decrepit for developing a next-gen game.
I've been planning, of course, to upgrade to a shiny new Conroe box - but it'll be another couple of weeks before inventory levels stabilise on the processor model I want, and I'm holding out for some price drops on the few Conroe-compatible motherboards. So I've just been hobbling along on my AthlonXP 2400 and GF4Ti4800 for the past couple of months, quietly losing my mind and pretending to be patient.
I timed a full compile/launch cycle on Phoenix, my development machine - the time it takes to recompile the entire game code (sans stable libraries, of course), start the game, and reach a point where I can actually play - I mean "work". On average, the length of the cycle is 6 minutes. What's worse, because there's a couple of game menus involved, I have to by physically present at the machine to keep the process moving forwards, so I can't even nip off for those 6 minutes to do other things.
And, since my processor is ancient rubbish, my machine is pretty much totally monopolized by the strain of running the compiler and/or the game. All of this translates into massive amounts of downtime, and as I've burbled before, downtime is very bad.
By contrast, on Relm, the glorious, beautiful, dual-core hunk of digital sexiness, the compile/launch cycle is roughly 40 seconds.
Yes, that's right. 40 seconds. Versus 6 minutes.
The more I think about it, the more I can directly trace my low productivity over the past few weeks to my hardware. Much of the time I don't have to do a full rebuild, which cuts the code/run cycle down to 2 or 3 minutes, but that's still 2 or 3 minutes I shouldn't have to be losing.
What's worse, I don't have the patience to sit in my chair and stare at the compiler while it does its thing - and I can't do anything else on the machine in the meantime. So, quite often, I'll get up and pace around, stretch, grab another drink, etc. This has two negative effects. First, I rarely sit down again at the exact moment that I can resume being productive, which adds to the downtime. Secondly, and more importantly, I lose my brain state.
I realized today that I haven't gotten into a proper groove in weeks, because I'm subconsciously frustrated as hell by the sluggishness of my hardware. So instead of building up momentum and getting huge swaths of things done, I keep stuttering in little abortive bursts, punctuated by compiles and waiting for the game to load.
My main excuse for hanging on to Phoenix has been the dual-monitor happiness. Yeah, 17" widescreen is really nice, but it just can't touch dual-17s for raw real estate. I'm constantly running two or three instances of Visual Studio for showing code and data files side-by-side. At any given moment there's a half-dozen browser windows, Notepad snippets, IM conversations, emails, and whatever else floating around. It's a critical part of getting stuff done.
Now that I've reminded myself just how much I'm sacrificing for those dual screens, though, I think it's time to just say "Screw it" and move over to the laptop entirely. I'll have to do that for this trip anyways... and moving all the data, email, blah blah blah back onto my desktop is a nuisance... so I'm just going to shift my development operations entirely over to Relm, until such time as I get around to building the Conroe machine.
Well, as usual, I blew a lot more hot air than I thought... if you think estimating schedules for software development is hard, try estimating how much drivel I'll sputter when I get to raving about something pointless. I was originally going to segue into some additional thoughts on productivity, tools, and programming languages... but I've forgotten half of what I was going to say, and I think most of it fits better in the Musings sequence anyways.
So here's another cliffhanger ending for you. Please don't lynch me.
And now a word from our sponsors.