Not many of the millions of FarmVille players know that their beloved agriculture simulator was made in just five weeks.
At GDC 2010, Amitt Mahajan, the lead developer of FarmVille, gave a presentation on how his team at Zynga was able to create such a blockbuster casual game so quickly. Mahajan explained that his overall design philosophy was to bring the developers into the design process and to create a cloud-based scaling system using off-the-shelf development products. Also important: sleep.
FarmVille got off the ground very fast. Amitt Mahajan was brought on to Zynga in order to exploit that demand that they saw for social games. "We wanted to build something very quickly. When we first started the game, we decided to go for an eight week launch plan, from conception to launch. That actually ended up being five weeks after we saw how quickly we were developing," said Mahajan.
Mahanjan began by asking what it is that slows down traditional game development. "As someone who is new to a codebase, the lack of knowledge prevents me from being able to produce at my capacity. There's a knowledge barrier before we can start producing," Mahajan said. He combats that by bringing the developer directly into the design process.
"We decided that design doesn't really own all," Mahajan said. "Normally in traditional game design, the designer creates specs, which are then passed over a 'wall' to developers who are then required to implement those specs. Why not give developers just as much ownership of the feature as the designer?
"So we team up designers and developers fairly early on in the process. A designer would come up with an idea and then immediately after that they'll be teamed up with a developer and together they'll work on creating features."
As a result, the developers feel like they own more of the game and are more willing to devote time and resources to making that feature great. The example that Mahajan gave from FarmVille was the green bar that appears whenever a user plants a tree or harvests a field. "That was never specced, and it was implemented by a developer because they thought it would make the feature better.
While that definitely sped up the development process, Mahajan laid out how the technical development decisions allowed the team to create an infrastructure that would grow with FarmVille's popularity. The fairly complex backend of FarmVille exists almost exclusively on the cloud and has scalability protocols built-in with multiple redundancies to ensure that no user data is lost "due to a single point of failure."
"You're probably looking at all of this and wondering, 'How did we write all of this code in five weeks?'" Mahajan asked the audience of developers. "We actually didn't. The only thing we wrote was the [piece that translated user input to the web servers.] Everything else is off-the-shelf components. So the only thing that you really need to concentrate on is developing your game."
Lastly, the most important thing that Zynga learned when making FarmVille was sleep. "We were really really tired by the end of building FarmVille. We decided though that we were going to get it out, that we were going to launch it on Saturday. It turns out that's a really bad idea," Mahajan said amidst chuckles from the crowd. As with any launch, there were problems and the team had to spend several weeks at full capacity trying to clean up those problems while they were already spent.
Because of this, it's now standard operating procedure at Zynga to be code complete on a game on Thursday or Friday and then rest the team over the weekend. "With the team ready to rock on Monday, then we'll go ahead and launch the game," Mahajan said.