I'm designing badges for a client's app (when users get a certain number of points, they get a badge). It seems like badges are used in nearly every type of challenge/game app. I understand that it's a reward for the users, but I feel there can be a better alternative. Is there any theory behind why they work, or how they make the UX better?
Badges are one of the best methods of building up users' engagement. They are rewards at no cost for the system issuer, like a perpetuum mobile. The best thing is that this model is universal - it works both in systems like Q&A, forums and games - and most probably in almost any multi-user environment. This is also very similar to real life (e.g. army, sport or work with positions and various awards).
If you take a look at the badges system used here, on StackExchange, you will find that there are various activities one can build up their rank with. Badges are focused on pormoting quality content (bith regarding questions and answers) and also performing other activities.
It is sometimes good to provide ranks alongside with badges. Ranks differ from badges, because these are like titles, whilst badges are like awards. Usually, in digital systems it is pretty much organized, so the closest analogy is to the army, at least regarding ranks. Take for example this person: General George S. Patton. His rank was "general", yet he was awarded for his actions with many orders. His rank was built up from private to general. Of course, in this case awards are discretionary, so you cannot assign a direct condition that causes being awarded with a medal. In digital systems you can do it.
From my experience, some things you should focus on while creating a successful ranks/badges system are:
And, which is very important, badges are strategic elements of your system - you should plan them depending on what you want to achieve, how you want your users to behave, what kind of activities you want them to perform and how much you want these to be promoted. You whould never underestimate the power of badges system. Thus, it is more important to ask how the badges system should be created for a system than if it should be used at all.