I have been following a few iPhone/iPod Touch developers and at the 360iDev conference two presentations from game programmers that used to be part of large “conventional” teams caught my eye. The topic of the slide was about the relative team sizes and how drastically smaller the iPod game teams are than current game development (200:1). This made me interested in how project code base’s have changed over time. This kind of information is relevant to me making games because it lets me look at what is achievable for one programmer. Most iPhone games are possible with that, but I also like comparing to games from 10-15 years ago.
The best company I could think of to compare to the current iPhone explosion is id software. They released Wolf3D and Doom at a similar time when BBS games were taking off. Their teams started at about 5 people and the kept the same staff making games for years. They are an interesting company to look at because while other teams staffed up to enormous sizes, id only scaled its content team staying at between 2-4 programmers for years! Since their code is available I thought I would do a lines of code comparison between their projects. Here is what that looks like:
It is hard to tell how much development time went into each game. I’m going to do the simplest thing and assume that each game was worked on the entire time between release dates. That gives the below chart of the number of lines of code, per programmer, per year of development. Is this a useful statistic? I don’t know, but I thought I would compare it to writing a book as an example in effort.
(*note: I know I am missing Doom 2. I didn’t find source on that tonight but I didn’t count its time in development so these numbers are off base a little)
I read in a few places online that an average book is between 90,000 and 140,000 words. At 250 words a page that breaks down to about 360-560 pages. If you go with roughly 40 lines a page to convert to a code comparison, that is between 14,400 and 22,400 lines. So in essence, the average programmer at id went from writing half a novel of code a year to writing a large and a small novel a year. Or put another way Wolf3d was the equivalent of a 560 page novel and Quake 3 is close to 15, 560 page novels.
I do not think that ID was the norm in the 90’s with not growing their programming team. This may also be why Epic Games eventually overtook them with the Unreal Engine (not in the 90’s, after). There was a large shift away from game code to tool development and I think that ID missed that with Doom 3/idTech 4. Odds are id won the effecient development competition. I think the teams at id are still relatively small and I wouldn’t be suprised if their costs are much lower than Epic’s. That said I’m sure Epic is taking in more these days but you still have to admire a company that stays lean even if they lose from a Wallstreet perspective.
The data I have provided above is completely subjective and filled with inaccuracies so please do not think that I am presenting the above as actual “research”. The main reason I posted this without thorough investigation is because I still think it paints a picture of how much work is involved in a commercial game. There are some legendary programmers involved in those games. Making games has gotten somewhat easier with better computers, software and debuggers, but projects are growing rather than shrinking. I’m interested in looking at any statistics people will share on these smaller iPod games so I can see if there is hope for the lone indie programmer.
Cool stats! It’s interesting to break it down like that.
I just ran cloc on the Dapple code base and it’s around 18,000 lines of code. That was written in about 5-6 months, so I guess I’m potentially capable of coding around 36-40K lines per year…that is, if I didn’t have to do any marketing or other business stuff after I was done coding a game. 😉
Pretty cool. I just scanned my current project and its about 10,000 lines of code. I actually just wrote my first real blog entry, it describes how I went about making a component system for my games. Please check it out (click my name).
Pingback: Streaming Colour Studios » Blog Archive » How to Make Dapple in 6 Months
Jay Barnson, from Rampant Coyote, mentions on his blog that he saw Abrash speak at GDC a number of years ago, noting “[a]fter going through about eight different flawed rendering engines before getting it right, Carmack remarked to Abrash that if they’d known exactly what they were making before they started, the engine would have taken less than two months to write.”
That’s one advantage to making indie/retro/iPhone apps, vs big-budget PC or console titles: you’re more likely to know where you’re going before you start.