1. Easy to Learn, Lifetime to Master
2. Simple obvious controls and rules that are easy to master
3. Allow players to discover controls and goals through simple exploration.
4. Provide clear, immediate, and meaningful feedback.
5. Offer clear and obvious short term and long term goals.
6. Players should be able to succeed in the first 10 minutes or earlier.
7. Support short session times of 10-15 minutes as well as longer.
8. Offer consistent controls and labels.
9. Vary the type of challenges so play does not become routine.
10. Support multiple player styles such as Bartle’s 4 types: Achievers, Explorers, Socializers, and Player Killers.
11. Offer more than a high score as a reward, make gameplay intrinsically rewarding.
12. Offer community/social features such as high score boards, in-game chat, and message boards.
13. Use audio feedback and sound effects to increase excitement and make interaction more real.
14. Include the option to turn audio off, so games can be played anywhere.
15. Test all aspects of the Player’s experience with real users.
16. Adjust spacing between play and reward to keep players motivated and to imply progress.
17. Remember a player’s high score at least between consecutive games, allow them to save it, or otherwise show player progress between games
A great laundry list to keep in mind for people building social games on the Facebook platform and elsewhere.