Anatomy of Game Development
CowboyRobot writes "ACM Queue has an article titled Game Development: Harder Than You Think that looks at the complexities of creating a modern game, in comparison with the relative simplicity of doing so ten years ago.
My understanding of the industry is that they have too many designers and not enough programmers. From the article: 'Now the primary technical challenge is simply getting the code to work to produce an end result that bears some semblance to the desired functionality... There's such a wide variety of algorithms to know about, so much experience required to implement them in a useful way, and so much work overall that just needs to be done, that we have a perpetual shortage of qualified people in the industry.'"
No it's not. Children make up games to play with their friends all the time. Why is it difficult to make a system? Codifying it formally is where everyone runs into problems. Oh and that everyone loves to reinvent that wheel.
Too many cooks spoil the broth.
The hard part is not the engineering. The hard part is the game design, story line, and content creation.
So in a sense, the author is correct: game development is hard; but its about 10 times harder than he is making it out to be because he is focussing on the 'easy' bits.
It's also that there's a huge gulf between "having an idea for a game" and "being a game designer". Frankly, any idiot off the street can come up with a halfway decent idea for a game (it might not be terribly original, but it could probably turn into a reasonable game). The talent in game design lies in the thousand little decisions you have to make in turning the raw idea into an actual game. It's those little details that matter, and that separate a great game from an average game, and an average game from a bad game.
Nice article, but I think it misses a key point. Game creation is only more complex these days if you're trying to build/copy a complex title.
Of course a Lone Wolf isn't going to be able to knock out myHaloTribes2! But s/he sure as heck can still tackle a simpler game, with even less effort than "days of yore" in my opinion. OpenGL, a slew of commercial games engines, cross-platform solutions, even SDKs for mobile phones.
The opportunities abound, even if the market is drowning in noise these days. The bottom line is don't try to compete with a big studio if you're not a big studio! Skip the $150K intro/cut-scene movies, etc. Don't aim for a MMORPG. Just build something fun, dammit!
Think of it as the development equivalent of asymetrical warfare.
...have any of you seen the demo video of the upcoming Half-life 2 (or even *gasp* downloaded a leaked beta), I was watching in amazement wondering how games had come so far in such a little time.
Let me elaborate, splinter cell was an amazing game but the storyline was very linear and interacting with the environment pretty much restricted to shooting out lights.
Halflife 2 on the other hand allows you to use some magnetic levitating weapon that can tear metal objects like radiators from the wall and hurl them at the opposition. Boxes and furniture pushed against doors to stop attacking enemies.
I can't even begin to imagine the complexity that has not only gone into the code design but also the level design. That's the crux of it, without amazing and clever levels that leverage all of this new complexity a game falls flat on its face.
I am NaN
Games are art, more specifically they are art of the same kind as books and movies in that they have a strong cultural bias. Paintings and music are also culturally baiased, but they're much more open to apprecation by members of other cultures. Video games, books and movies all tend to make assumptions about the backgrounds and experiences of the audience that are necessary to fully understand the work.
Sure, EA could set up a team in India to develop games for a lot cheaper than a team in the US or Japan, but the resulting games probably wouldn't sell very well. Even games transfered between the US and Japan tend not to sell very well statistically speaking (and i say this as an american who likes Japanese RPGs, but i know i'm part of a small group.) Companies in one country have tried to design games that they thought would appeal to the other, and as often as not they have bombed. I believe Final Fantasy Mystic Quest was one such experiment.
So in order for the game to have decent odds of selling well in the targeted area, the designers need to be from the targeted area or an area that has close cultural ties, such as US and the UK.
Ok, so keep the designers in america, and ship everyone else off to India. There are probably people capable of doing the work in India, but you'll run into another problem. Designers frequently don't know what the hell they're doing. I appologize to any designers out there reading this, but all the ones i've worked with know it's true. The programmers will write some tool for the designers to use, and the designers will get lost and come to us for help. We'll tell them how to do that, and they'll be fine for a few days until they run into another problem. Sometimes the problem will be something they can deal with if they just learn the scripting lanague or whatever the issue is, sometimes it will be something new that we need to implement, and sometimes it will be something we told them to do or not to do weeks earlier. They'll do A and complain that the enemy does blah, and we'll tell them that they can't do A, they have to do B or C instead. Then they'll come back a week later saying if they do A, the enemy does blah. You'll explain again, and they'll say "Oh yeah, you told me that before didn't you?" Designers just seem to think differently than programmers, which is why designers are designers and programmer are programmers i suppose.
So if you attempt to outsource the programmers, you're going to run into huge communication difficulties between them and the designers, both in terms of developing what the designers want and explaining to them what they're doing wrong. You'll have possible langauge barriers, time delays from emailing back and forth across multiple time zones, the difficulty of not being able to actually _show_ the other person what you're talking about, etc. The reason why companies frequently have onsite QA even when there's an offsite QA team is because often you can't figure out what the offsite QA team is talking about just based on the write-up they email you. You either need to fiddle around for it for a long time yourself, or have local QA spend the time reproducing it and then show you.
There are similar issues between artists and programmers, and i imagine there are also issues like that between designers and artists. If you seperate any section from the others you're going to introduce masive delays and complications to the project.
The only area that i've seen effectively outsourced is sound. However it's interesting to note that the only company i worked for which had it's own in house sound department was frequently cited for the quality of the sound effects in the reviews of the games. And this is just with outsourcing the sound to another american person or group, even within the same state.
So yes, they could save money if they outsourced the labor to India, but if they only out-sou
This Space Intentionally Left Blank
First of all, any change whatsoever in header files trigger rebuilds, not just public interfaces. Secondly, core headers in theory would perhaps be fixed early on, but in practice that's just plain impossible. I can spend a lot of time here trying to explain how that comes about, but it's not worth the effort unless this message got a decent score. Suffice it to say that it's simply impossible to see into the future and know exactly how any header file really needs to be when it's finished.
Sorry, Carmack is full of BS. Story makes or breaks a game in more than a few cases. Take Halo. Without the excellent story and plot devices, Halo would have been nothing but another faceless FPS. A pretty one, but hardly the best seller it was for the XBox. Story drove that game. Story seperates Baldurs Gate 2, a masterpiece, from the gorgeous but hollow Neverwinter Nights. NWN has BG2 dead to rights on every point except one, and it's that point alone that elevates BG2 to legendary status.
Of course Carmack says story is not really that important... Look at the games he designs-- FPS almost exclusively without story. It's a pretty narrow vision to be making such sweeping judgements from and it hardly makes his word gospel.
You need a FREE iPod Nano
Well, the problem with too many designers is simply that almost anyone that's ever played a game feels they could design their own great game. I'm sure you know at least a few people that played a few Mega Man games and then came up their own ideas for Mega Man bosses. Heck, the bosses in the last few NES Mega Man cames were all entries submitted into a design a boss contest.
There are plenty of game programmers too. Look around at the console homebrew development websites. Plenty of programmers there.
What's really lacking is artists. You generally need a huge amount of artwork for a given game, and you need talented artists for a game. Someone who simply knows how to use Photoshop filters won't cut it.
The worst part of doing a homebrew game is finding people to do the art. Very few artists are willing to get involved in a project without money up front, and those that do are often hard to keep motivated enough to get things done.
As the author of the article, I'll just say that I wasn't trying to impress anyone with how difficult my life is. I like games, that's why I work on them.
They are, however, one of the most challenging kinds of software engineering there is. And that's how I'm hoping the article is taken -- as a call to challenge for people who may be interested.
And there is no spoon.
(I wrote the article).
I think in the game industry the situation is actually the opposite of this. Most game companies, despite having been in business for years, still underestimate the difficulty of the task (because it keeps getting harder every year) and hire people who are underqualified (often because they just can't get anyone else).
Like, all the time I see job listings like "Lead programmer for massively multiplayer game, must have 3 years of C++ experience, must know Direct3D , Visual C++" and I just think "Wow, these guys don't have a chance -- if their stock was public I'd short it."
Every year or so I buy a game that consists of 90% 3D fluff. I just spent an hour at Dave and Busters and really enjoyed the "old" 2D interfaces because they nether helped nor hindered good games. By good game I mean something designed with regards to gameplay and not another over-done FPS maze game or cookie-cutter strategy game.
The game industry looks like the equivalant of the comic book industry in the eary 90s, lots of eye-candy, gimmick covers, etc and little substance. Seems its a technological arms race to build games that run on the newest hardware and that gameplay is the last thing on the 'to do' list.
The game I am working on right now is a week before Beta. I work for a medium sized publisher of console games. Take that as warning of my bias.
I would add several reasons to why game development is hard. All the technical issues Mr. Blow mentions, can be fixed given enough time. But there is never enough time.
To keep funding $10M+ game projects, a corporation needs to release a steady stream of games during major buying periods. This means, unless you're the likes of id or Valve, development cycles are 18 months, rarely negotiable. If you are late you will start loosing consumer awarness and marketing budgets. You also need to schedule time to do several demo disks and generate assets for the media. A senior programmer said that our primary target is management, and only later the gamer.
Second, unlike many software markets, you constantly feel your competition at your heels. The graphics, realism, complexity is an arms race. This makes games better and it also makes developers stay at work extra longer past midnight to implement that extra rocket launcher effect to stand out from the competition.
Then the market judges you on purely subjective measures. You can't lock yourself into a market like MS Office or Windows would. It doesn't even matter if you are technically the most advanced. As a game developer you are fighting for gamers attention. This is why you see games that are mostly sequels and based on established IP.
Then again these challanges are the reason I'm a game developer. Mr.Blow does point out a good deal of inneficient practices in the industry.
This should be seen as a call to arms for middle ware vendors and ISVs. Whenever there is a problem there is a buisness plan!
Besides this, many people have ideas that have already been thought of but weren't done because they just aren't feasible to do or don't add to the fun in any way.
I think the problem isn't a lack of programmers, but that the design isn't focussed enough that the programmers aren't wasting their time on stuff that makes no difference to the gameplay. Some of this is attributable to the publisher who wants some new feature to advertise (realtime wart-growing!), or some overly ambitious designer that wants things that add nothing to the gaming experience (did MGS 2 really have ice cubes you could watch melt? If so, then WHY?).
I really think that every designer should be made to play Super Mario 64 and Tetris. SM64 was huge, and Tetris was small, but both are very tightly focussed on the things that make the game FUN.
"But I trust in the people's capacity for reflection, rage and rebellion." -Oscar Olivera
Or it could just be that many games programmers work stupidly long hours, particularly as stupidly close deadlines approach, while being expected to write code of a quality unseen in most of the programming industry because of the need to keep performance up and support the latest and greatest AI algorithms, without much of the fun and glamour they thought would come with the job because the production people get most of that, in exchange for financial compensation that barely beats what a Mickey Mouse business apps developer can pick up in his first job, assuming the company lasts long enough to get the game finished and published so there's any pay cheque at all. Nah, that's a silly idea...
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
"that we have a perpetual shortage of qualified people in the industry."
This is funny. A few years ago, after working on successful but boring software projects for the past ten years, I decided that I wanted to work in the game industry. I have no debt, and was willing to take a pay cut. I live in San Diego, home of a number of game companies, EA, Sony, etc. I figured it wouldn't be too difficult to get myself at least an entry level position with 10-years experience, just to learn the ropes. Nobody seemed willing to hire someone that didn't have several previously delivered games under their belt, despite a number of other successful consumer products and happy customers. I had sent resumes to all the companies in the area, as well as working briefly with a "game headhunter" which didn't work out as well. After roughly six months of trying, I gave up, and went back to working on my boring jobs. I'm guessing that the writer of the above quote isn't all that tied into the needs of the industry.
WWJD -- What Would Jimi Do?
(Smash amp, burn guitar, take home the groupies)
It is hard to compare games by time it takes to play them. I spend large amounts of money on great (to me at least) arcade games and I really only like arcade games. How many hours of gameplay do you consider Galaga to have for example? 2 minutes? 1000 hours? Does it matter if it is a great game? The replay value in great arcade games is priceless. I have found in the majority (not all) of 3D games of the last few years, they have almost zero replay value. Why pay for a game you are only going to play once or twice? I am sure I will get more replay value from Metal Slug 3 or R Type Final than the majority of other recent releases - garaunteed!
Every year or so I buy a game that consists of 90% 3D fluff
The game industry looks like the equivalant of the comic book industry in the eary 90s, lots of eye-candy, gimmick covers, etc and little substance.
I think the way this works is this: there's three types of games- those with fluff, those with substance, and those with fluff and substance (and gradients inbetween of course). Substance, by itself, does not sell.
The thing about substance or gameplay is that it requires a certain amount of attention that cannot be extracted from an audience until they have bought the product and invested some amount of minutes or hours into it. The sure-fire way to get that investment is to attract the eye- visuals can transmit much more information about something much faster than sound or text, so discerning quality of visuals is easy for nearly anyone. There is no shorthand to communicate gameplay other than simply playing the game, though screenshots and videos and short text descriptions may at least indicate what is to be expected.
If I'm going to play a crappy game, I'd rather play a crappy game that looks good than the alternative- and the same goes for other visual media.
An addition to that last statement is that there are a lot of people for which style is substance. The obvious ones are artists, or people with ambitions in that direction or simply an appreciation for it- playing something with really cool level and character design and etc. is the main thing while the story and interface should drive it along- if they're really good, that's a great bonus. Bad story isn't really a showstopper, but bad interface is - so I don't mind seeing the 'cookie cutter' approach get used there because I'd rather not every game try to reinvent the wheel when I just want to move the camera/character/units around.
What's really lacking is artists.
With respect to open-source projects, that's certainly true.
I think it's harder to collaborate on art- Software forces a certain degree of conformity, while in art freedom is absolute- there's a huge proliferation of different styles that wouldn't look good next to each other in the same game.
Tools are partially to blame- they are prohibitively expensive and hard to master. There are some good open-source solutions: Gimp is okay for 2d stuff (please someone give it a docked interface rather than having to shuffle through dozens of independent windows...), though interface-wise I'd rather be using a copy of Deluxe Paint from ten years ago (and is there any paint program that allows you to assign one color and tool to the left button and another color and tool to the right button?). Wings 3D and Blender can do some good 3D stuff, but there's a lot missing for creating more complicated objects
The other problem is that the open-source community spirit hasn't infiltrated the art community yet. It may take a few years- I see in a site like deviantArt indicating a future where sharing and collaboration are more the rule. Artists may be less susceptible to the gpl ideology, or simply lack leadership- who would be the RMS or Linus of free software-art? And what is the standard license for distribution- something from Creative Commons?
Most game companies, despite having been in business for years, still underestimate the difficulty of the task...
Isn't that pretty much the state of the whole software industry?
Actually everything I've read in the press and in B&N game books is that the industry can't keep it's top dogs, because they get burnt out.
I would say not only that, but since EA just closed office(s) in Austin... of forget it. Game Publishers close offices all the time after a great game is shipped,etc and this article states there aren't enough programmers?!
Well I personally know of a great programmer who left for the business world since it payed double what he was worth and the corporate bullshit stings pretty bad in game companies.
Maybe that's what happens when real greedy CEOs and businessmen collide with very immature geeks and developers.
The industry needs to reward better it's programming heros and keep them in the game.