Original Author: Mitch Zamara
Disclaimer: The following are my own opinions, and observations, and do not represent those of my employer, either past or present. Nothing in this document represents confidential or privileged information. Use this information at your own risk.
After spending the last 2 years working in social games, I’ve had a chance to play through a very large number of social games, from the biggest games on the platform, to many smaller ones. One thing that I’ve noticed across a large number of these games, is their ability to borrow mechanics, viral flows, concepts, systems, and a large number of other things. However, the one thing that I rarely see properly emulated is the first time user experience (FTUE). The FTUE is arguably (in my opinion) the most important part of the game that you will build. It’s the only thing, aside from your loading screen that all installed players will see. The number of players who make it to session 2, session 3 etc..will determine the ability for your app to “hold water”, as those players remain, and brings their friends to the application. I wanted to share 5 observations/tips/lessons that will hopefully help fellow social game developers in creating successful FTUE’s.
Design, Test, and Iterate; Early, and Often!
The second you have your core loop implemented in your game, you should start designing and testing your first time user experience. This will not be something you just do once and are done. (And if you do, you’re doing it wrong!) Play through it, have everyone on your team play through it, and have everyone submit notes and feedback. Isolate the good feedback, update your tutorial, and test again! Keep doing this until the very day you launch. Hell, after you’ve launched you should keep tweaking and optimizing your FTUE.
Limit the Number of Steps
While it’s important to guide your players through the first steps of your game, teaching them the very basics, it’s also important to limit the length of your guided tutorial. Empower your players to use the mechanics and methods you teach them, and never pull control from them for too long. Look at the successful games on the platform that have a guided tutorial, and look at how many steps they have. The best games are able to capture the core loop in a handful of steps, and transition out of ‘tutorial mode’ quickly. The player should have enough knowledge by now to complete basic tasks and objectives (like quests) until you start to unfold the subsequent mechanics and systems of your game.
Don’t Expose Too Many Features
As the space has evolved over the last couple of years, the number of features, systems, and mechanics included in each game has risen significantly since the early days of games like Parking Wars, and Mouse Hunt. New games have complex economic systems, character customization, and a wide range of other features that seem simple, but together can easily overwhelm an average player. That’s why you should limit what features are exposed to players. If you have multiple resource types, then front load the player with the secondary resources, and teach them how to make the primary resource. Once they get that down, then introduce them how to earn the secondary resources. Focus on the features that are the most eye catching, enjoyable, and fun to do, and delay the rest of the supporting features until later sessions. Players wont feel overwhelmed, and they’ll be more likely to pick up the complexity of your game if they are served it in small digestible bites.
Present Enough Viral Opportunities
This topic extends the prior point about your app needing to ‘hold water’. In addition to being able to retain your players who install your app, those same players need to also become your means to reach new players! The way to achieve this is by presenting enough viral opportunities. A great example of this, is looking at the FTUE deconstruction of CityVille done by Kevin Rose. In the first 3 levels of the game (less than the first session lasts) the player is asked to invite friends, send gifts, and post to their wall a total of 9 times! It’s extremely important to note that while this may seem like a lot of opportunities to ‘spam your friends’.. almost all of these scenarios feel like natural opportunities to share information with your friends. Rarely do any of them feel ‘Forced’ upon the player in any way. It’s critical that if you do implement these viral opportunities that you make them feel genuine, and inviting for the player, or they’ll feel pressured and never want to share their experience with friends.
Measure and Track Your Results
It should really go without saying, but unless you have hard numbers to back it up, your instincts on how successful your FTUE really is, are likely wrong. Measuring your install funnel and identifying what % of players make it through each step/quest in your first session is extremely critical. If you have hooks established for every single guided click action, you can quickly determine where your sticking points are for your new players, and how effective you are when making adjustments. If you’re tracking all your quest start and quest completion points, you’ll also be able to tell what quests players are getting stuck on. If you’re tracking each quest task, you’ll know what tasks are too hard/complicated etc.. Put significant efforts towards tuning, modifying, and maximizing your FTUE conversion (players who become regular players) and you will stand the best chance at retaining players and growing your application.
Hopefully these tips will be of some use to those of you working in this new and exciting space. Please feel free to follow me on Twitter (@mzamara) or leave a comment if you like what you’ve read!
/* ').html("/web/20120418215417/./api.nrelate.com/rcw_wp/0.50.6/?tag=nrelate_related&keywords=Designing+First+Time+User+Experiences+for+Social+Games&domain=www.altdevblogaday.com&url=http%3A%2F%2Fwww.altdevblogaday.com%2F2011%2F03%2F30%2Fdesigning-first-time-user-experiences-for-social-games%2F&nr_div_number=1").text(); nRelate.getNrelatePosts(entity_decoded_nr_url); /* ]]> */