Last night was Game Dev night at the London Geek meet in the ThoughtWorks offices. It was really enjoyable, I really enjoyed the talks, and meeting and chatting to everyone there.
Interestingly, there were a bunch of comments throughout the evening that confirmed some long-standing suspicions I've had about professional game development. I'm not pointedly directing this at any individuals - it really was a pleasure and an education talking to every person present. However, I couldn't help but notice that there seems to be a pervasive macho streak in the game industry, sustained by the belief that game development is considerably harder and more creative than any other form of software. Or, as I have overheard game developers saying, first hand, than any other human endeavor.
Not rocket science
Now, there's no doubt that different niches of the software industry vary in complexity, just as the commitment and experience of individuals, teams and organisations varies over an enormous range. I have no doubt that game development lies on the upper part of that spectrum rather than in the middle. But I also have no doubt that there are lots of other software industries which are just as complex, demanding and creative as game development.
Game dev is not special or unique in having many hard problems to solve. When game devs claim that it is, it simply looks like a defensive reaction to the pervasive belief outside the industry that games are trivial time-wasting distractions, and that creating them must therefore be one of the easiest and most lightweight aspects of IT.
This would be merely silly self-delusion if that was as far as it went, but this state of affairs actually has huge damaging knock-on effects. The belief that they are tackling projects which are harder than other software projects leads to an attitude verging on arrogance - an assumption of superiority, and that they have nothing to learn from the rest of the software industry. As a result, game dev shops don't even attempt to talk to other software engineers about their common craft, and as a result the engineering prowess of the game industry actually lags behind the rest of the software industry by five or ten years. Practices and techniques which are de rigour in the rest of the industry these days, such as test-driven development and continuous integration, are virtually unknown in the game industry. Examples during last night's discussion, which were held up as indicators of how difficult and complex game dev is, appeared to many people in the room to simply be symptoms of clearly bad design.
The legendary long hours and project burnout in the game industry is actually a symptom of this - far from being the most capable engineers amongst us, the reason they are working such ungodly hours is to compensate for poor software engineering. The rest of the software industry used to suffer from a similar overwork problem, but you know what? We figured it out, decades ago now. It's notable to me that other industries which suffer from overwork and burnout (eg. the finance industry) are also buzzing with arrogance and secrecy.
Humility and communication are pre-requisites for any learning. Jeez, get over yourselves and go learn how to run a software project.