Thursday, October 4, 2007

Modern video games are incredibly large

A recent GameInformer magazine described the budget and related parameters for an "A list" console game (I cannot recall which game or platform.)

10% marketing
8% testing
15% design
20% art
30% programming
(Sorry, it was a student's copy of the magazine, I didn't write it down at the time, and I could not access it online--so this is from memory.)

There were 1,767,000 line of code in the game. Let's get a handle on this. A single-spaced normal page has 54 lines of text. Let's round that down to 50 because some program lines will be longer than the width of the page. 100,000 lines, then, is 2,000 pages of text. A million lines is 20,000 pages.

So let's try a million lines. How long would it take a typist, typing 50 words a minute, to type 20,000 pages of text? A line is about 13 words. Let's call it 10 to account for short lines. Then each page would be 500 words, or 10 minutes. 20,000 pages is 200,000 minutes. That is 139 days of typing 24 hours a day.

Actually, 50 words a minute is optimistic; code is much harder to type than normal text, and must be completely without typos or it will not work.

Now consider that this code must actually be written (created) and tested, which takes immensely longer than mere typing. Nor can we have people working nonstop for 139 days. And this is only just more than half the entire game program, since we did only a million lines.

Now add in the time for creating the artwork. Generally, at least twice as many people work on art as on programming.

So now we've covered just half the budget!

In contrast, we have three hours of lab a week, times 16 weeks, or 48 hours (really less than that considering breaks). So what are the chances that we, in a one semester class, can even scratch the surface of creating an A-list video game? Nil, nought, nada, infinitesimal: none.

The days when one person could create a well-known video game ended around 1990. And even then, that person took much longer than both our game design classes combined, in an era when graphics were primitive and everything was much simpler.

There's a saying, "you can't get together nine newly-pregnant women and have a baby in a month." In other words, some things just take a long time, no matter how badly you want them to happen faster.

This is why I tell people, if you want to learn to create good games, you need to use non-video games, where you can get to a playable prototype in a short time, not in "forever". Until you have a playable prototype, you haven't done even 20% of the work.

Be sure to read Ian's comment to this post, as he has the full figures and makes an interesting comparison to numbers of semesters of work involved.

A related post explores the percentages of work done.

October 26: I have worked on this further and made a set of slides (a rarity). The file is linked here.


Ian Schreiber said...

Luckily, I happen to have that issue of GameInformer right in front of me. The game was Rainbow Six Vegas. Budget breakdown:
30% - Programming
20% - Art
15% - Design
10% - Marketing
8% - Testing
7% - Sound
7% - Animation
2% - Management
1% - Other

They also give a breakdown of 11 months concepting, 8 months preproduction, 10 months production, 3 months submission & release.

It should be noted that some of these numbers are specific to this franchise. 10% marketing is pretty small actually (at least up to a few years ago, publishers routinely spent equal amounts on development and marketing), but in this case it's probably smaller because it's part of an already well-known hardcore franchise, so they don't have to waste money reaching out to people who have never heard of the Rainbow Six games.

Converting lines of code to lines of written text is a dangerous game; actually I think that the vast majority of code lines are much shorter than a full line of text (consider a simple for loop in C++ which might only contain 20 characters; or the one-character open-brace on the following line. Some editors just count lines even if they're comments or blank whitespace. I think it's far more common to see a short line of code than a long line. (But your point about programming taking much longer than prose writing is absolutely correct.)

When I explain to my classes that games are huge, I do it by budgeting:
* Let's say a typical AAA game on a current-gen console costs $10M to develop (this is expensive but by no means the highest; Sims 2 was something like $50M).
* Let's further say that 75% of the dev cost is payroll, and the rest goes to "operations" (i.e. office supplies, rent, hardware, administration personnel, etc.). That's $7.5M just for paid professional developers.
* A few years ago, you could count on developers making an average of about $50K/year (obviously seniors make more and juniors less). Nowadays with inflation it's probably a little more than that, but let's use that number anyway.
* A little math shows that the game then "costs" 150 person-years to develop. That's working full-time, 40+ hours a week, mind you.

Now, let's figure out how long it would take a student team to do the same work. A typical class might demand 10 hours a week from each student, which increases the time to 600 years. Also, productivity studies show that there's about a 4x difference between senior-level and junior-level programmers, so now we're up to 2400 years. An academic year is only 9 months, so that converts to 3200 academic-years, or 6400 semesters.

If my students want to make the next World of Warcraft in a single semester, I show them these numbers and then ask if they have 6,399 friends on Facebook who would be willing to help them :)

Lewis said...

Thanks for the figures.

I understand that actual personnel costs amount to much more than salary, so the $50K programmer costs somewhere in the $80s, perhaps. That doesn't change the magnitude of the figures, however.

Anonymous said...

good points and the details are more precise than elsewhere, thanks.

- Norman

Anonymous said...

1,767,000 is an oddly specific number to have remembered about a game of you can't even remember the title of

"Always do right--this will gratify some and astonish the rest."Mark Twain
"A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away." Antoine de Saint-Exup'ery

"Not everything that can be counted counts, and not everything that counts can be counted." Albert Einstein

"Make everything as simple as possible, but not simpler." Albert Einstein

"The worst form of inequality is to try to make unequal things equal." -- Aristotle