Building Big Social Games

by Amitt on Dec 18, 2009
I recently had the honor of presenting to a group of developers in Seattle at the Social Games Seattle event on how to build big social games. The talk focused on the design and technical decisions we made with FarmVille to support a massive audience.

I've included the slidedeck I used below. There were a few points which were talked about but not in the deck:

<ul style="margin: 0 0 0 10px;">
<li><h3>It is possible to release too much content at once because it overwhelms players</h3>
We frequently throttle releases to prevent information overload. Furthermore, an increase the amount of content per release also increases the burden to test all of the new content. Usually, this results in decreased test coverage on any given feature, increasing the risk of a serious bug for a release.</li>
<li><h3>Players look forward to new updates</h3>
When you release updates to your game at a consistent interval, players come to expect those updates almost like they expect a new episode of a tv show each week. There's an impulse to keep coming back to see what new things have been added this week.</li>
<li><h3>Invest the time in proper code architecture and development practices</h3>
Building sustainable games is a marathon. If you hack together your base, it will make it much more difficult to adapt to evolving design requirements and release consistent updates later on in your product's lifecycle.</li>
<li>The iframe trick referred to in the last slide involves embedded an iframe in your canvas page footers. This iframe basically "pings" a php page that then performs FQL statements and stores them in memcache before the game begins loading</li>
</ul><div style="width:425px;text-align:left" id="__ss_2741524"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="" title="Building Big Social Games">Building Big Social Games</a><object style="margin:0px" width="425" height="355"><param name="movie" value="" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object></div>