FV2 Interactions

Less is more
Challenge

The original FarmVille was cumbersome to use. Too many clicks, too many contextual menus—it just wasn't a joy to play with. When we designed FarmVille 2, we decided to utilize click-and-drag to reduce clicks and make the experience more immersive. The trouble was that click-and-drag was already in use—for moving the game board. Could we come up with a system that allowed both?

In the original FarmVille, harvesting 15 crops took 15 clicks.

In the original FarmVille, harvesting 15 crops took 15 clicks.

In FarmVille 2 we utilized click-and-drag to queue up similar tasks. Now harvesting is a single click.

In FarmVille 2 we utilized click-and-drag to queue up similar tasks. Now harvesting is a single click.

Click-and-drag was great for queuing up a lot of actions, but it posed an interaction problem: it was also the input used to navigated the world.
Approach

Working with Leads we decided to utilize clicking and dragging to reduce experiential pinch. This led to a whole new set of challenges, since click-and-drag is the de facto input mode for panning the board. How can we allow both? Furthermore, we knew our demographic was not very computer savvy and would be quickly overwhelmed by a complex or subtle system. We tried a contextual menu before realizing we were headed down the wrong path. I knew from experience that we had to build extensible systems since the nature of live social games meant that even though we had enough room now, it would quickly run out. It was also a cumbersome way to play the game.

A radial menu was explored but ultimately scrapped because of the ever-increasing number of options.

A radial menu was explored but ultimately scrapped because of the ever-increasing number of options.

We knew our demographic was not very computer savvy and would be quickly overwhelmed by a complex or subtle system.

Our goal was to keep the user "on the farm" as much as possible, out of menus and dialogs. It needed to be tactile and satisfying to interact with. On mouse-over, animals would perk up and look alert; ripe crops would sway back and forth. We decided on a system where, instead of offering every option all the time, we took an educated guess about your most likely action and made it the default click. If a crop needs watering, you should be able to water it with one click. Rather than overload the user with a ton of options, we simplified down to a single default action on click—If it's hungry, feed it. If it's ripe, harvest it. 

We also knew we wanted to avoid a complex series of HUD tools. Many web games overwhelm the user with a ton of options, cluttering the HUD and causing awkward interactions. We decided on a small set of critical tools, and reduced the number of HUD buttons to three. This meant we needed a very smart system for cursor interactions. Everything would be contextual. 

A massive interaction matrix defined all default actions and cursor states.

A massive interaction matrix defined all default actions and cursor states.

Solution

Sometimes it takes complexity to make things simple. A ton of prototyping and iteration led us to a ruleset that allowed

The solution was to offer less, not more. Instead of allowing everything at any moment, we simplified the user flows drastically so a single click would perform the most likely action by default.

Came up with various models and began working with a developer to prototype them. Defining the most used actions and scenarios, and catering to the most common. Don’t allow everything at any moment—constraints are helpful in this case because we knew we wanted to reduce the number of choices for our demographic. If click on bare plot and we assume you want to seed.

Outcome

Outcome: FarmVille 2 became a wildly successful game, with XXX DAU and accounting for 40% of Zynga’s revenue. The systems we put in place are still largely intact, and as the game matures we are able to maintain the simplicity of the core interactions.

Instead of a radial menu with a ton of options, we simplified: a single click would perform the default action. If it’s hungry, feed it. If it’s ripe, harvest it.
On-board interactions were made as satisfying as possible; picking up animals and dropping them is one of the most delightful in the game.

On-board interactions were made as satisfying as possible; picking up animals and dropping them is one of the most delightful in the game.