Game Optimization: A Farmville Sheep (Case) Study

A sheep stands in his field. Munching. Baa-ing. Wait, is that—spaghetti on his head? A bib around his neck? Aww, that’s the cutest sheep I ever did see! But why is that darn sucker moving so slow?

In fact, our poor wooly friend is an animation from Zynga’s game FarmVille. When we worked on this game, 140 million of you were coming back daily to plant and sow. Well, not YOU, of course! But if no one admits to it, where did all those players come from?

When optimizing art assets for Zynga’s Farmville, we noticed that some graphics had huge performance problems. In fact, some of players’ most favorite animals on the farm slowed game play to a crawl. And since Zynga depends on solid game performance to retain its user base, this was serious business.

Our first instinct was to build an art optimizer to simplify the artwork and make it faster via a process called rasterization. And it worked! Great, done—that’s all folks, the end.

BUT we all wanted to know more—why were some artists better than others at making cute little animals that would also show up on your screen with lightning speed? 

There were plenty of other sheep on the farm that looked great and didn’t slow game play, so why was our spaghetti guy causing all sorts of trouble? It turns out it wasn’t the sheep—it was the spaghetti.

Get out of the building moment

Suddenly, the problem the spaghetti bowl caused made so much sense—the artist had individually drawn each noodle in glorious pasta-riffic detail.

Displayed up close on a large-screen monitor, all that detail looked great. But in the game, the entire bowl of spaghetti was just a few pixels across, so the detail was superfluous.

Our optimizer tool allows us to easily spot animation performance problems and improve them.

At that moment, it occurred to us that the problem here wasn’t optimization, it was training.

I immediately scheduled a meeting with the FarmVille studio art director and a few of the artists on the team. They were really surprised at the impact a few extra pen strokes had on game performance.

To find performance bottlenecks in other artwork, we next built the Zynga Analyzer, a tool that integrated directly with the artist’s workflow. With each action in the authoring environment, an artist could see the impact on performance.   

The Analyzer tool helped give everyone a sense of how much drawing “budget” they had for a given character. Some drawing techniques, such as transparency and shading, had more impact on performance than others.

Everyone wanted to install it to find out what they were doing right and which art assets could be improved. Given these constraints, I saw that Zynga artists were incredibly clever at making cute illustrations that also performed well.

The Zynga Analyzer depicts how the artist has consumed their asset “budget.”

What started as an engineering optimization problem had morphed into an artist training program. The tool that exposed total impact on game performance now instilled a bit of self-reinforcing competition within the art team. Artists were spurred on to create illustrations that looked great and performed well. By exposing character performance during the creation process artists felt they had skin in the game, so to speak.

And finally, for illustrations with no fat to cut, the Optimizer tool gave an animation a bit more pep in its step. Altogether the effort once again secured each special animal’s place on the farm, including our little sheep who can now munch spaghetti till the cows come home.

Questions to ask when developing a retail mobile strategy

Lately, retailers (both large and small) have seemed to focus on their omni-channel strategy: leveraging social channels to drive traffic, traditional mediums to promote cross-channel awareness, and e-commerce to streamline the transaction process.

But what about the mobile touch point of the customer experience? These days, many retailers have a mobile app: but is this the right mobile app for you and your customer? In an age where nearly 58% of customers conduct online/social research prior to purchasing an item at a brick-and-mortar retail store, retailers should be thinking about how their app can (a) enhance the customer experience and (b) streamline the path to purchase. Sometimes these objectives are one in the same. Here are some questions to ask yourself when developing a mobile strategy for your retail environment.

What are your customer’s pain points? Every retailer is different: Different store layouts, different SKUs, different check-out process. As a retailer, you should ask your customers what their biggest pain points are when shopping in your brick-and-mortar retail store. By the same token, you should also ask yourself how you can solve this pain point with the customer’s mobile device. Some scenarios to think about:

  • Are your checkout lines too long?
  • Do they want to know what is on sale?
  • Do your customers need help with an item?
  • Do your customers need help navigating your store to find a category or SKU?
  • Would your customers prefer a ship-to-home option rather than hauling the item in their car?
  • Do your customers want to know what the price is of an item?

Why should your customer use your app? Once you’ve figured out your customer’s pain points, you should ask yourself why a customer should (a) download and (b) use your app. With thousands of apps on the market, and room for ~20 apps on the user’s Home screen, a better question may be: Why will the customer want to use your app more than once?

  • Do your app solve the problem (above) in a way that enhances the customer experience?
  • Do customers who use your app have a significant advantage over customers who don’t use it?
  • Does the customer receive value in the form of discounts or loyalty rewards?
  • Does the app enhance the offline and cross-channel customer experience?

Operationalizing the mobile experience to wow your customers

In some, or maybe all, of these scenarios the retailer may need to operationalize the experience around the mobile app. For example:

  • How do you handle loss prevention if you implement mobile check-out?
  • How do you greet loyal customers who enter your store?
  • How do you redeem loyalty rewards via the mobile app for a customer who is ready to check-out?
  • Do you offer flash-sales for customers who scan a SKU using their mobile phone, based on their purchasing history?

We believe the best mobile experiences are the ones that “start with the end” — and in the case of retail, we believe starting with the desired customer experience in the context of mobile, will help bring brick-and-mortar retailing to the 21st century.

Why Mobile Apps Fail

Apps are Pets

When beginning a mobile, web or other app software project, keep in mind it’s more like adopting a pet than building a product. Software needs continual care, maintenance and feature development. Users expect updates — whether to take advantage of the latest mobile Operating System release, to fix a bug that somehow slipped through Quality Assurance, or simply to add features. Building an app is not a “one-time and you’re done” operation.

Product / Market Fit

Consult the experts, whether  Marc Andressen (co-creator of the first web browser), Steve Blank of Stanford, Paul Graham of Y-Combinator or Sean Ellis of LogMeIn, they all agree: it’s about getting the right product, to the right people. That said, your app’s features should depend heavily on who that app is marketed to. To achieve this takes a lot of  “get out of the building” type thinking promoted by Eric Ries in his book The Lean Startup.  Interacting with your market as soon as possible is paramount.

Agile software development process, user-centric design, and Lean thinking can all help you discover what features to build, but all the theory in the world won’t help unless you learn from your market, measure feedback, and build the features that users desire: you must go through this “build, measure, learn” cycle a few times to get it right.

Build, Measure, Learn: How to achieve product market fit by iteratively achieving small milestones
The Build, Measure, Learn Cycle

Accrue Technical Debt Wisely

You may be initially wowed by a software team that can deliver features fast and furiously — especially when you they look cool, and progress comes swiftly — but in just a few short months, a mobile app project can grind to a halt. Why? At the beginning of a project software developers often build features without building the surrounding infrastructure to support them. It’s like building a glorious bathroom complete with steam shower in a house with no plumbing.

The industry term for this is “technical debt.”  While this form of indebtedness can get you a quick jolt of progress, it can also come back to bite you. For quick experiments, technical debt may be the right option, but for meaningful, high-quality app development, building it right means a robust software architecture, infrastructure to support scaling to a massive audience, and putting in place the security necessary to protect both your users and your investment.

Beware Schedule

There is a reason that, on average, large IT projects run 45 percent over budget and 7 percent over time, while delivering 56 percent less value than predicted. In a survey of 600 people closely related to a software project, 78% of respondents reported that the “Business is usually or always out of sync with project requirements.” It is extremely difficult to correctly estimate large software projects. So, smart teams have stopped trying.

But, without an estimate, how will your app hit deadlines and a budget? The secret is once again, in the agile process: you can correctly estimate software deliverables over the short term. The agile software development process promotes short “sprints” and we suggest a one-week time period.  This way, your team releases a fully-functional and complete product every week! And since you are learning from your users, what you will do over the next few months, will be in direct response to their usage and feedback. Think of a product initiative as an experiment, where the goal is to learn what a market wants, and deliver it.

Beware Users

Asking your users directly what they want (or don’t want) is a pitfall to avoid.  You are the innovator, and you understand the possibilities for future directions of your product better than anyone, including your users, so asking them is asking for trouble. Instead, simply observe them. Focus groups are notorious not only for their expense, but also their “false sense of science.” Studying users behind a one-way mirror may have worked well in that Mad Men episode, but for software, the “Starbucks Method” is about a million times cheaper, and much more insightful. Get into the cafe, hand out some 20’s, 0r buy people lunch in exchange for watching them use your product.

There is no harm in providing a few in-app survey questions.  Take a look at Qualaroo for how to do this well. For building community, GetSatisfaction is a good bet. Bottom line: Target your questions to the specific user experience, not the overall product.

Beware Apple

As the recent “Downpocalypse” of the Apple Developer Center demonstrated (no new iPhone apps could be created for over a week!) hitching your app to a single horse is a dangerous move. Though an initial iOS app release makes sense in many cases, building with cross-platform mobile technologies like HTML5Adobe PhonegapLudei or Unity, allows your app to diversify its bets; placing expensive native features only where they’re needed.  This way you can release on iOS, Android, the Web, even PC, Mac and gaming consoles.

Choose the Right Team

Select a development team that will maximize your budget and give the best value.  Sometimes the cheapest guy on Craig’s List, Upwork, or RentACoder is the right way to go — such as with one-off experiments or when a quick and dirty initial draft of an app on a shoestring budget is expected to be tossed and re-written from scratch — but for most projects, it makes sense to proceed with a team that can provide end-to-end services, engage with your users, and help guide you strategically to that nirvana of mass adoption.