Charles Mauro published an incredibly insightful case on what makes games work – using Angry Birds as a demonstration. This is my interpretation of the major points he makes (to see my basic philosophy about gamification, see here and here). I am sure he will let me know if any of it is way off.
Games make a system engaging when/if they:
· Use a simple basic interaction model that allows users to build a robust schema quickly (during their first user experience). This reduces the need to learn the interaction model, which most users find frustrating. It is not as fun as learning content.
· Have a response time that is fast enough for effective interaction (users get what they need before they need to use it), but slow enough and variable enough to create mystery and anticipation. The response/feedback should also be slow enough to enable learning (time to process the feedback) and error correction (time to change before an action has irreversible negative consequences) when appropriate.
· Have some variation just for observation – no learning is necessary but again adds more mystery and anticipation and keeps it from getting stale.
· Never require more working memory than the user has available. But don't require so little that it becomes boring. This can be done by including variations that are not essential for use, but enhance use. This means users can learn them at their own pace and can forget them without penalty. This keeps it from getting stale. It also allows users to allocate more working memory when they want to, but less when they need to.
· Provide breaks periodically to prevent WM and attention from fatiguing. This is especially effective during phase shifts (when a user makes it to a higher level, there is often a pause to “load” the next one).
· Enhance mystery by having some responses that appear without any user input and at random intervals.
· Use audio to give advance warning of pace. But have the audio vary enough not to get boring. The mean pace can be equal to the interface pace but vary a little faster and little slower along the way.
· The audio is synched with interface actions as well as its pace.
· The visual complexity matches the game interaction complexity.
Most of these are true for enhancing user experience in general. They create a sense of "flow". But they are even more critical for games because without flow a game is just work.