Game Developer Rant
Yesterday I listened to ‘Burning Down the House: Game Developers Rant’, available here. It is the recording of a panel that was held last year at the Game Developers Conference and it became very popular, because big game industry names were cursing our industry, and they also used “fuck” a lot, apparently previously being encouraged to do so. So, I decided, to write a rant myself. Keeping with tradition, it will contain the occasional swearword, so your discretion is advised.
Rant Start
So we hear this year our AAA projects will cost 10 million dollars to make and next year they will cost 15 and in 5 years it will be a gazillion. Why? Well hmm, let’s see, the hardware is getting more complex, content creation becomes so much harder, photo realism, content pipelines, episodic content, oh my!
The real reason for exploding costs in game development is incompetent software developers. I am sorry to say. It’s not the big, all encompassing, unrelenting and unchangeable advancement of technology and refinement of consumer taste and expectations, neither is it those “risk averse” publishers who wont finance your creative idea. No, it is simply incompetence. Our skill in devising reliable and flexible software architectures is, to put it mildly, severely lacking. The advanced hardware and those pesky creative designers have created an environment that requires excellence, an environment we can’t possibly keep up with using our current skillz (sic).
Programmers are the least trusted individuals in the industry. Why? Because we are poor and misunderstood individuals? Because we work so hard and are tired all the time and therefore make mistakes every now and then? No. It is because we can’t code for shit. We have no clue about the simplest and oldest principles of software development. We consistently violate well established principles and practices of object oriented programming, while cranking out one class after the other in our “oh we started out with some classes but then it got out of hand uhuhuhu”-piece-of-shit-hacked-together system, which sometimes, but not always, through brute force, individual genius, or sheer luck finds it’s way onto the shelves. And then we go on complaining about those long hours “they” put us through, when in reality, it is our crap code that has us sit there, debugging deep into our utterly untested systems, looking at the same functionality in 10 places and treading to add another line to that one forbidden include file, that will send the time of our next build cycle through the roof. But hey, more time for coffee and bitching about management in the kitchen!
The designer walks up to us and asks us to do a simple thing that would enhance his game, and we tell him that it will take, oh, hmm, days or maybe a week, and we will not be sure how it will affect all the other systems and therefore we can’t say if the game will behave the same as before the change, look out for those side effects, testers! The designer looks at us funny, and we roll our eyes, hidden or otherwise, because how can she possibly understand the intricate goings on in our wonderful and complex software and oh how hard it is to do this cool (and sexy) programming thing but don’t worry, we got it! After all, we are your heroes. Right? Right?? And they keep throwing these change requests at us .. can’t they make up their mind! Do it right the first time, for fucks sake!
We add a feature to your game, but we just can’t tell you if we broke it or not! I mean What. The. Fuck! Dear designers, dear artists, dear producers, we have fooled you. We have stringed you along. We somehow convinced you that this is the way it goes, that software development just IS THAT WAY. No, sorry, we are full of shit. We lied to you. We lied to you because we wanted to hide our own lack of software development competency. And some of us are really good at hiding that behind shiny graphics and oh those mind blowing physics. And we usually do this by crunching our asses off and burning out in our twenties.
So, we need software architecture you say? You mean the thing where you write those small classes with only 3 members or something, uh, and you, like, test them, and, like, your classes have as little responsibility as possible, so you can test them in isolation, and then in the end you plug your well tested small classes together, yielding a well tested and reliable layer of functionality, ready to carry your next layer, which you can build with confidence and the courage to display excellence?
Are you, like, gay or something? Oh and .. you can’t use virtual functions because on the 360 this will cause cache misses and our performance uh uh uh uh.
Well fuck cache misses. Tell your programmers to learn how to write tested and reusable software first, and then have them go and profile those 20% of the code that is exercised 80% of the execution time. They might find out how to get past the same 20% of problems they run into over and over again, using 80% of your budget.
So here we are, blaming Walmart and EA and those evil money wielding publishers in general, and oh the risk it is nowadays with all that money involved.
Or, rather, with all those incompetent developers involved. They build you software which will be hard to maintain and hard to change. They build you software of which they will not be able to tell you if it works the same tomorrow or 10 minutes later. They build you software that will drag them back to their desks for 80 hours a week, spending most of their time in their favorite tool, the debugger. They build you software full of non-commitments and guilty conscience. Producers, have a look at those C++ files in the elusive “Code” folder of your multimillion project, and look at the lines beginning with // or /*. You might get a feeling for how your developers feel about their work. Search for “fuck” and “shit” and “crap” or “god”, “OMG” and “sucks”. You will see comments throughout the code saying “oh .. this sucks but I put it here” or “shit! This is sooo bad but for now it is good enough. NEED TO CHANGE LATER”. Or, my favorite one, which I read personally in the source code of a Triple-A title: “I have no shame left”.
That is right. We, your developers, have no shame left. We walk around in your office, our penises tangling, scratching our balls, and providing you with a heap of shit that you are to use for your creative ideas and dreams, and that you are to market to a hopeful crowd of gamers, which is growing more and more frustrated. Please show us the way to the closet where we left our pants and send us back to programming school.
Rant End
September 21st, 2006 at 12:48
[...] to your choice of social bookmarks Blogmarks | Del.icio.us | Digg | Ma.gnolia | Reddit | Spurl comments [...]
September 22nd, 2006 at 0:38
And StumbleUpon. Don’t forget StumbleUpon - that’s where I found this.
Nice rant.
September 24th, 2006 at 0:56
you bitch too much, you’re just halfway true. Most of the time required to develop is lost to programming blunders, but are they the sole person to blame for the maniacal amounts of money needed to create a game? me thinks not so.
MOH: pacific assault designers and “historical accuracy experts” who toured museums, contributed to the incredible 50M $ that went to the game, a lot more than just lousy programmers.
Games are starting to look like one another, and everyone laments the days of yore when gameplay was the key thing. But its not the programmers who are to blame. It’s the market, and the publishers who have helped the current game design philosophy.
You don’t need too much money to make a game, even theese days. But once you have one, you can’t market it without publishers, who are, as a matter of course, tightassed to new and different ideas, cause they don’t make profit. The market favors FPS-like games, MMORPGs, wich require a ludacris amount of glitter and/or nobel prize winning script and gameplay to be competetive.
phase 1 : collect underpants….
phase 2: ???
phase 3: Profit!
September 29th, 2006 at 17:31
[...] This recent rant about coding quality in the gaming industry makes for interesting reading. The author stops short of naming middleware game engines, but the hints are left for the reader to fill in. (I don’t like hints
No doubt the Doom 3 code is a pain to work with; a friend from #ai on freenode.net tells me you get used to the codebase after a year! He’s doing a research project, but Quake Wars too has been delayed, and according to Id Software, the mod community isn’t as active as it was in previous generations. Valve’s Source engine is little better (but at least they have more experience with C++), and what my former lead programmer says about Unreal 2 makes me shudder. Proprietary game engines I’ve worked with that sell millions of copies are usually a bit worse. The best open source graphics engines are marginally better, but they have less functionality… [...]
October 3rd, 2006 at 23:21
[...] On Programming » Blog Archive » Game Developer Rant (tags: game development programming) [...]
February 14th, 2007 at 8:19
I dont get it really clear cuz I m russian and translator have no power to translate me it with right context.
So. Just can tell u I hate most of games and for me the gameplay is main thing. I m a flash games developer. Can tell u that the big problem of smart person is fear (even if u think there is no). Learn to kill jesus christ’s rules.
July 11th, 2007 at 9:56
Sorry but this rant is just really crap.
I like the start of it because it took a new angle, but then I realized you’re just a jerk you have no idea what he’s talking about.
Every next-gen graphics AAA title is expensive and features takes a long time to code for them, are you saying every one of those teams are incompetent?
It’s tempting to say, because I hate waiting for programmers to give me needed features as well, but I see no reason why it would be the case.