A few years ago I was visiting my friend Michael in San Francisco and he told me about a little startup he was working with called MyMiniLife. MyMiniLife had some great Flash technology that allowed anyone to quickly (and simply) create a little 3D house and customise it to their own taste. The user could furnish the house with almost anything they could think of thanks to its smart object creation tools which made the ability to upload textures very easy. A market to trade user created content quickly sprang up around it making for a vibrant user experience.Michael was thinking of joining the MyMiniLife team as an advisor to help raise money. He had a couple of choices at the time but MyMiniLife was edging the others because he really liked the team and he really liked their technology. At the time the team were sharing a house which also doubled as the office and they were throwing everything they had into the project. So he joined them. About 6 months later (and I’m massively over simplifying this part) MyMiniLife was acquired by a fast rising social games company, Zynga. The MyMiniLife dev team, lead by Joel Poloney, set about working on their first game for Zynga. It was a farming sim called Farmville. Today, there are around 20 to 30 million people playing their game, every single day. To put this into context, the best selling cartridge on the Atari 2600 during the 80’s was Pacman and it sold around 7 million copies of the 12 million produced [http://uk.retro.ign.com/articles/903/903024p1.html] Super Mario Galaxy, another truly mass market game has to date sold 8.84 million units, whilst World of Warcraft enjoys around 11 million users per month. Obviously it’s a little unfair to compare these figures as they are very different games and with very different sales models. However, what is inescapable is how Zynga’s Farmville, via Facebook, has opened up gaming to a huge new audience and they are changing how we view the traditional way to play a video game (i.e. in large, usually solitary chunks of time). Here Joel’s take on Farmville and it’s development (again, a huge thank you to Joel for taking the time to share this tremendous achievement): Q: Do you remember how the team got the original idea for FarmVille and how different was the released product from it? The farming simulation space was starting to heat up and Zynga wanted to join. We iterated on the idea a lot, changing several aspects of it. I personally wasn’t that involved on the product side early on, but I know there are parts of the game that were developed and never released. Q: How many hours a week do you spend working on FarmVille? I’d say I average between 50 and 60 hours a week working on the game now. I think when the game launched last year, I put in 36 hours one weekend. I recently had an 18 hour day, but those are rare now. If you like what you’re doing, it doesn’t really matter. We worked close to 80 hour weeks at MyMiniLife for almost nine months straight when we started. Q: When you started looking at the server architecture for FarmVille did you have any idea of the traffic you’re getting now? At the time, the largest game was pulling in around five million daily active unique, and Zynga’s largest game was pulling in around four million daily active uniques. Our goal was to build something that could match that. We weren’t thinking we would hit 20 or 30 million daily active uniques in the very beginning, but the growth curve didn’t stop. Our servers never officially fell over, but we had some close calls. A lot of the early tech decisions were to help make it easier to scale once we started hitting the unknown. Q: How complex is the server infrastructure on FarmVille and how many users is it built to cope with? Our architecture has grown a lot since the inception of the game. It’s been really interesting to see it progress. We use a lot of standard web components, but we also have some unique ways of solving problems. Recently, we began open sourcing some of the technology that we’ve been developing. As far as traffic goes, we have run as high as 30 plus million daily uniques and held steady. Q: How much has it evolved over the past 18 months? Was it built around MyMiniLife’s architecture as the starting point? The game has only existed for a little over a year now, but the engine that it’s built on, goes back several years. From the start, Farmville was a collection of several technologies, including MyMiniLife. We were unique in our development in that we combined technology from MyMiniLife and existing Zynga games. We were the first Zynga game to truly launch in the cloud, which was a great learning point for all of us. Q: How much formal process & methodology do you use on the project (any specifics like Scrum, etc) – what tools do you use (e.g. Subversion, etc). How much has your rapid growth changed your project management – can you describe what it was like at the beginning and what it’s like now? e.g. how easy is it to put a new feature in then and now? We utilized scrum from day one and still use it today. We’re pretty liberal about the tools we use at Zynga; use what works best for you. I personally use Vim, Eclipse, and Flex Builder for development. Our team has definitely scaled with the size of the game, and that has been very interesting. In the beginning, we were a much smaller team, so it felt like a start-up inside a start-up. Now, with a bigger team, we’ve had to implement a lot of process to be more efficient. It’s still pretty easy to develop features and get them in the game. We push code every day, so it’s easy to get changes out to the public. Q: When did you decide you wanted to make games professionally? This is a funny question as I don’t think I ever officially decided I wanted to do it. One could argue that we started MyMiniLife as a tech demo. I just wanted to build something unique. It took us three months to build the initial version and after another year of iteration found that it actually had legs. Over the course of working on it, we came to realize what we were building was not a virtual world but an online game. Q: How does it feel to work on Farmville? Fundamentally, I think all engineers want to build something that other people use, regardless of their discipline. To have millions of people use your product is an incredible feeling. To develop new features and release them on a daily basis and get instant feedback is surreal. I can develop something in the morning, push it live at night, and read about it on blogs and newspapers the next morning… you just can’t get that kind of feedback loop anywhere else. Q: What gets you through the deepest darkest crunch periods? Baked Lays Sour Cream & Onion chips. Seriously. I’m extremely motivated by my stomach. My co-founders at MyMiniLife would buy me burritos and Slurpees for working until the sun came up. DI.fm is crucial for me too. Q: What’s the biggest enemy to the project, time or your own expectations? I think it’s hard for large teams to understand that sometimes you have to move slower in order to move faster. I’m a big advocate of working smarter, not harder. Q: What aspects of yourself are part of the process? I try my best to make sure that our engineering team is working efficiently. I hate to see developers justifying something that they just wrote. Q: How much of your personality colours the game? It varies from time to time. Several aspects of FarmVille are programmer chosen layouts, text, and colors. One of our newsfeed postings for fuel has a link that says “Get some.” It was kind of a joke, kind of not. It was funny and made sense, so we just left it in the game. Q: Do you have any sketches that you’d be willing to share with us? I’m a terrible artist. I might be able to find some early concept art. Q: How much did you get on paper in relation to the end product before you started development and how much evolved in the development process? I can’t comment much on the product side, but on the development side, we knew exactly what we were building and just built it. We used whiteboards for discussions, but other than that, I don’t think the engineering team wrote anything down during the initial development. Q: How do you measure the quality of your game as it develops, is it purely a “feeling” that guides you or are you always comparing it to something that impressed you? There are a lot of factors that go into it. Zynga is a very numbers driven company, so we measure almost everything. A lot of decisions are based on what the numbers tell us, but we also value and monitor our forums, fan pages, email, and Twitter feeds for “user love.” Q: How much has the Internet and mobile gaming changed the industry, for example there is a particularly strong emphasis on free or cheap products based purely on having a lot of venture capital until you figure out how to make money. What’s your take on it? What we’ve seen (and what I think everyone else sees), is that if you ignore monetization initially and you concentrate on just creating a good product that people actually want to use, then you will have no problem monetizing later on. I think the days of building a huge website and throwing advertisements on it are long over. The concept of micropayments are now starting to catch on in the US (think iTunes, iPhone apps, etc). Personally, I’m very mathematically driven and weigh the cost opportunity of my time. If I pay $10 for Farm Cash in FarmVille and get two hours of entertainment out of it, that’s a win in my book. In contrast, I paid $18 to see Iron Man 2 in an IMAX theater for two hours of entertainment. Just using these two points, the Farm Cash is a better choice. Q: What’s the worst part of developing a game at moment? That’s a tough question. I’d say coming up with features that people are actually going to enjoy and like. There are things that we’re completely convinced are going to be killer, but then we look at the numbers and they’re flat. Then there are things that throw our numbers off the charts and we’re left wondering what happened. Fortunately for us, we’re able to learn and iterate quickly enough to make more hit features. Q: Do sales and marketing need more resources than development? They definitely play a crucial part of our business but cynically, if you created a perfectly viral product, you wouldn’t need them at all. I think FarmVille is definitely up there on the successful viral product list. Q: What advice would you give someone starting to make games? I can really only offer advice on social games, and there are three words that come to mind: Fast, Light, and Right. Work smarter not harder, keep the product simple, and double-down on ideas you know you have right. Q: Do you think the design and development of games can be made easier through better processes and documentation? Possibly. I think you can do a much better job by sharing and reusing technology as much as possible. While a lot of time, effort and knowledge went into the features and mechanics of the game, we were much on the technical development side we were able to build FarmVille in just 5 weeks by reusing a bunch of already built tech. Q: How has life changed from your days in MyMiniLife to Zynga? There was definitely a “life upgrade” after joining Zynga. We moved out of our little house in Palo Alto and moved up to San Francisco to nice apartments. I’d say work/life balance has actually improved. We definitely work hard at Zynga, but we also have great perks that we get to benefit from every day (massages, acupuncture, free lunch and dinner, snacks galore, Zynga yoga sessions, to name a few). I should also mention that I’m not constantly worried if we’re going to run out of funding or any of the other thousand aspects of a startup that you have to worry about. Q: What does ‘social gaming’ mean to you, what would you like it to mean? Currently, it means bite-sized entertainment. We make games that you can enjoy in between meetings and classes. I would love to see it mean something much more. It would be really cool if everything you did in life somehow related back to whatever game you were playing. I wake up and brush my teeth: gain 5 XP in FarmVille. I ate a banana for breakfast: gain 3 XP in YoVille. I ride the bus to work: gain 250 chips in Zynga Poker. Simply put, I think it’s taking social games and making them more relevant to your daily life.
24. What are the big challenges to social gaming? Getting the product right and understanding how to be viral are huge. On the technical side, building a game that you can scale is very important (ie: start with two developers, then add 50 more engineers, and still be able to work efficiently on the same code base). As with all internet based applications, scaling the server architecture is also critical. With the size of the game now, there are few, if any, canned solutions for problems we face. Thus, we have to understand deeply the nature of the problem we are facing in order to build a solution that fixes it.