I'd like to examine two multiplayer class-based FPS games with support classes as case studies: Wolfenstein: Enemy Territory and Team Fortress 2. Both have separate classes that give health and ammo, and I think it's helpful to consider both types of support.
Enemy Territory has three support functions - healing, reviving and ammo - given by two classes - medic and field op. Healing and giving ammo are similar: the medic or field op uses up "charge" - a limited, regenerating meter - and throws down a pack of health or ammo not far in front, which can be picked up by any other player. Medics could also revive dead teammates by using a close-range "needle" on the body, and in practice medics rarely ran out of needles.
The game also rewarded support actions in the form of "xp"; gaining xp would eventually make the player gain ranks, improve or even gain new abilities. This provided an extrinsic reward to supporting teammates.
In practice, there was an abundance of revives and a shortage of ammo giving. Revives were common because of two factors: it was obvious who needed reviving, and it used up practically no resources. Ammo giving was rare for the opposite reasons; in addition to using up "charge", the field op was a peculiar class in that it can also call in powerful AOE attacks, but at the cost of charge, so there was resource contention.
Then there's Team Fortress 2 which hopefully needs no introduction. I feel that the medic was designed very well, whereas the engineer's dispenser ability is flawed. Whilst medics can be rewarded by earning assists when healing teammates that produce kills, the dispenser does not reward the engineer when being used. In practice (and echoing Thijser's observation on dispensers), medics were abundant but dispensers were often placed at inconvenient places.
To encourage players to give ammo (and support each other more in general), I offer the following tips:
- Make it easy: this almost goes without saying; but it can be achieved in two ways: make it easy to know who needs supporting, and make it easy to support. The medic class in TF2 does this well: not only is the medic gun easy to heal with, even on moving teammates, teammates also have a "call medic" button. Revives in ET also do this well as bodies show up prominently in the medic's GUI. The TF2 dispenser is somewhat good in this regard; once placed the dispenser passively supports, which makes it very easy on the engineer.
- Make it easy to say "thanks": the lack of support isn't a problem when it's a group of friends playing, but it is when it's strangers in a fast-paced game - there's very little time and incentive to show appreciation, which makes supporting a lonely and thankless job. TF2 has an interesting take on this: characters will automatically say "thanks" when being supported, but I feel this is impersonal; it should still require human input, but as easy as possible. Maybe a context-sensitive keypress that says "thanks" to whoever is helping you right now? In any case, don't underestimate the value of even simple human interactions, as they profoundly shape the tone of the game.
- Reward the supporter: supporting, by definition, benefits the recipient rather than the supporter. In practice, the supporter is often punished because they have to risk themselves in order to reach those that need support the most. To encourage more support, turn some rewards back onto the supporter. ET does this well with the xp system; TF2's medic also has the powerful "UberCharge" ability which needs to be charged by healing teammates.
- Reward supporters for good gameplay: even better than simply rewarding support actions, reward those that directly contribute to the main objectives. As Thijser noted, blindly rewarding all support actions can lead to bad gameplay, as support players are encouraged to spam support actions, even if they don't help the team. Instead you can reward the actions that do actually help. TF2 gives assists to medics who are healing the teammate that made the kill, for example. I think this is a good space for new ideas; how about (as Joe mentioned) tracking who gave you ammo, and giving assists for kills made using that ammo? I think there are many ideas in sport - where the "assist" concept came from - that can be used too; many of the stats tracked in team sports can be considered support actions, the most useful of which do often contribute to the team's success. Think about rebounds and blocks in basketball, for example, which are highly valued for their indirect effect on the game.