Tuesday, May 24, 2005

Small Teams Kicking Arse: Defining "HPD"

The classic question that any game developer with an inkling of project management is bound to ask is "how do we do more with less?"

A more pertinent variation is "How do we do just enough to make the game addictive while consuming as few development resources as possible?"

I was recently playing the game Fate by good folks over at WildTangent. It is a lovely little Diablo clone with a bit more of a delicious old school Hack flavor than I was expecting. There's an article on the development of the title in the latest CGW magazine.

Fate took 6 months to develop and had a team composed primarily of 1 programmer and 7 artists. I crunched some numbers and found that Fate had a stunningly efficient production cycle compared to comparable teams. More after the break.

Fate took 6 months to develop and had a team composed primarily of 1 programmer and 7 artists. They were supported by WildTangent's QA team. The title sells for $25 over the internet and is available as either a 27.5 meg file or a 128 meg file with improved graphics. They estimate 20 to 30 hours of game play.

Market-wise I would classify this as a niche title. The PC Action RPG genre appears to have tailed off in the past couple of years with the release of Diablo II and there are few major blockbusters announced. Fate follows the proven market strategy of releasing a competent B-grade title in a niche genre and then taking advantage of existing genre addict word of mouth. Though it is marketed as a 'casual game', I'd be curious to see what percentage of buyers had played a Diablo game in the past.

Why you should care
The impressive point of all this is 1 programmer and 7 artists. This is substancially less than Diablo with its 17 programmers and 39 artists. I'm not even counting the bloat from Diablo's producers, designers, or the four semi-random lasses listed under "Mr. Dabiri's Background Vocalists".

Diablo, admittedly, had quite a few more hours of gameplay than 20 to 30 hours. Let's say that on average someone would spend 60 hours on the title. (I'm being generous) That roughly translates to a 2x or 3x factor. So Fate managed to squeeze out 50% of Diablo's gameplay using 5.8% of the programming resources and 18% of the artists. And don't forget that Diablo took 2 years to make vs 6 months for Fate.

HPD, baby!
If you'd like, you can calculate "hours of game play per developer year" value. A developer year is similar to the mythical man month, except longer. Let's call this value hpd (Hours per developer). For Diablo, that comes out to 0.53 HPD. For Fate, that comes out to 7.5 HPD.

An order of magnitude
Certainly you could argue that this is a bit academic since game developers care a lot more about more than just how long people play the game. Other factors like the intensity of the experiance and the amount of money the game makes also matter.

Still, I'm seeing a team that is roughly 10x more efficient than another benchmarked team. In the immortal words of Keanu, 'Whoa'. An order of magnitude improvement in efficiency is worth exploring.

Teams who are making casual games or serious games on a fixed budget can learn a lot from the development techniques involved in a title such as Fate. What if you could successfully finish your project and spend 10% of a typical game budget?

Questions about HPD
  • How do these small teams achieve such impressive efficiency compared to full game development teams? Are there techniques we can apply to other projects?
  • How does HPD compare to the HPD of other media production. What is the HPD for a movie? What about for an hour of training? How far does production efficiency for games need to advance before it can compete with other serious games-style applications.
take care

PS: Diablo also lists in their credits Alan Dabiri as a 'dunsel', which as far as I can gather is 'a nautical term for a part with no obvious function or purpose' Despite his undoubtedly essential presence in every game up until World of Warcraft, I did not include dear Alan in my number crunching.


  1. An interesting point about efficiency. However, there is a significant point that you may be missing: technology has changed since Diablo was released.

    PC's are faster now; they can accept much more in terms of waisted code. Indeed, one could imagine developing a Diablo-type game in Visual Basic, widely known as a productivity language that sacrifices performance for ease of use.

    Back in Diablo's day, they were doing cutting-edge 2D. This meant hand-optimized assembly blitting algorithms. This meant lots of painful debugging time just to get something visually on-screen with reasonable performance. Diablo runs just fine on an ancient Pentium 90. I seriously doubt that Fate will run on anything less than a P3 500MHz or better.

    Plus, we have better game creation tools. Because we have more processing power than most of us really know what to do with, we can afford to not use hand-optimized assembly algorithms. We can afford to use middleware that may not be 100% efficient, like Ogre or Torque. We can afford to use low-end hardware abstraction layers like SDL or Allegro if programmers don't want to use middleware solutions, or if none of the solutions are appropriate for them. Programming games has never been easier than today, and it's getting easier.

    Art is also easier. Diablo was an 8-bit palatted game. Designing sprites in a subsection of a palatte, let alone sprites that look good, is a challenge. A significant challenge. A time consuming challenge. One that requires frequent cycles of give and take back and forth in terms of who gets which palatte colors and so forth.

    Modern 2D games use at least 16-bit color sprites if not full 32-bit color ones. It is far easier to just make the sprite than to have to work within the limits of a color palatte.

    Note that I'm not suggesting that Diablo's development was exceptionally efficient, or even more efficient than that of Fate. However, it is important to note that it is just easier to develop non-cutting edge games today than it was when these games were cutting edge.

  2. I have a longer post that addresses this topic lurking in my rough draft folder. You raise some very pertinent points. I was going down the same path myself when analysing the factors involved in this bizarre difference in efficiency.

    Some thoughts on the concept of technology advancement.
    - Proposal: If Blizzard were to do Diablo again with all the glorious new technologies and tools available, it would cost them roughly the same or more than Diablo originally cost. This is conservative. The estimates I'm hearing are around a 20 - 50% increase on non-triple A titles and upwards of 80 - 100% increase on AAA titles.

    - So now we have theoretical case where technology and tools are equal and we are comparing Fate and Diablo III. I'm guessing that the HPD (Hours of gameplay per developer) would end up being roughly identical to what we are seeing now, if not more skewed in favor of Fate.

    - The reason is that there are fundemental design and scope choices that occur when you focus on 'great gameplay on a budget' instead of 'best quality at any cost'

    - Technology is certainly an aspect, but efficiency is almost never a case of 'things were hard, but now they are easy'. It is almost always a case of 'I believe that advanced technology is the best, so I'm going to invest my resources in cutting edge engine systems.'

    Hand-optimized assembly blitting algorithms are a product management choice. Just like normal mapping is a choice today. In those days, you could have gone with a similer non-isometric tile -based engine. Now, you can go with a DX7-based engine that lacks a bit of the bling, but still gets the job done.

    Not to ruin the punchline of my longer rambling rant on the subject, but efficiency is as much a design choice as it is a technology and team structure choice. You need to know what you are optimizing for.

    I think it is important for game developers to realize that they have a choice and that there a simple conceptual tools that can help them optimize for efficiency if that is there goal.

    take care

  3. i need a money hack or a way to make items...anyone can help it will be greatly appreacated

  4. come on, fate only got 10% of diablo, not only in content but also in spirit.

    When i was playing fate, i kinda of asking meself, "why i am killing these minions", but i never asked this even after five years of diablo experience.

    Another point i really want to make is that sometimes efficient is not very important if you can be the first one. What's the price of time? What's the efficiency of time? LOL

  5. I'd forgotten all about my post up there. I hadn't seen your reply until now.

    Do professional game developers have a choice?

    Blizzard made the choices they did for Diablo II out of necessity. They're Blizzard. Gamers of the day expect a certain degree of production value from them (visuals, audio, etc). Equally importantly, you can't sell a game that a player can't play, so the need to make the game function on low-end hardware while still holding production values was foremost on their mind.

    Fate wouldn't have been able to compete with Diablo II. They may have achieved a 7.5 HPD, but there was a substantial cost associated with that. Had Fate released alongside Diablo II, DII would have crushed it in both sales and profit. It could sell to people with Pentium 90's, which Fate couldn't do (minimum requirements of 800MHz CPU and a 128MB videocard. Back then, that was high-end if not non-existent). In order to develop a game that can run on low-end machines, technology must be leveraged towards code optimization, which is diverting funds away from getting the game done. And when all the machines are low-end (or, low-end compared to what production values you're shooting for), you really have no choice but to invest significantly into optimization.

    Fate's efficiency of development is due to leveraging modern technology, not for production values, but to make development more efficient. You're right that, in general, developers have a choice in what to do with technology. But, by and large, consumers don't care about development efficiency (except when it makes a game cheaper); they care about production values. At the very least, there is a low-end of production values below which few if any consumers will be willing to spend money on.

    The real question is what the lowest-end in terms of production values are. How much are gamers willing to sacrifice, even to pick up a cheap game? The next generation of consoles are going to answer this question, what with the cost of games increasing non-trivially and so forth.

  6. The biggest problem is not even with the 'it was easier then' mentality, the whole HPD concept simply does not hold water when comparing apples to oranges. Diablo was a AAA title, period. Fate is a B title. The quality of the art and the overall package always dominates the timeline and the budget. But it also is the only thing that can make a game a AAA title. Polish costs a ton of money.
    You are talking about Jurassic Park vs. The Blair Witch Project.
    Sure you can be successful peddling little crappy arcade games but just because you can does not make it reasonable to compare them with development of polished, professional AAA titles.
    End of story.

  7. Some good comments there (except for that anonymous 'end of story' troll).

    I think right now is a very interesting time to think about business assumptions, and HPD is one way of looking at that. (It's also a good time to read the Innovator's Dilemma.)

    >>The reason is that there are fundemental design and scope choices that occur when you focus on 'great gameplay on a budget' instead of 'best quality at any cost'<<

    I think this is the key point, but I come at it from a different angle. Blockbuster AAA titles have to at least try to be at or beyond the cutting edge on several fronts. Technology is only one part of this. Was Diablo a genre when Diablo came out? As I recall it wasn't. Now it is, and making (and marketing) a Diablo clone is a lot easier. I think that is one reason why Diablo was more expensive to make.

    Another factor playing a role here is that game developers tend to be bad or inexperienced at business, including business tools such as metrics. And HPD is a metric.

    I once got a brief to produce 4 small titles in one year at a studio I worked at, instead of 1 big title that took 18-24 months. We pulled it off and it was a lot of fun, but even then we were not as efficient as studios who were built from the ground up to make small casual titles. A company is a mechanism built to fulfil a role, and changing that role isn't easy.