Class-based game systems are occasionally described as offering “niche protection” as part of their design. The cleric is a healer, and no one else heals as well as the cleric, for example. The rogue excels at dealing damage; the fighter withstands punishment like no other. The wizard controls the crowd and/ or damages wide areas. Each of these roles has a thing it does well, so the “niche protection” statement is true.
But, in a larger design sense, what niche protection actually offers is an ecology of dependencies that build relatedness between players. A party of four fighters won’t fare as well as a more rounded party, because many of the things fighters depend on aren’t offered by other fighters. (Of course, some systems offer ways to vary the makeup of various classes, but these variants are rarely as potent in their variant role as the core class structured to meet the dependency.) The cleric’s job is to keep everyone standing, something that no other class does as well; the other players depend on the cleric for this, accordingly. The fighter’s job is to keep threats focused on him; the other classes depend on the fighter taking the most heat so they can perform their functions. The rogue is augmented by sneak attack damage, so she eliminates threats quickly, but she relies on the cleric to keep her standing and the fighter to keep enemy attention on him.
Designing for these dependencies not only helps the player group maximize its effectiveness, but also helps strengthen the relationships between players. And since games are a social endeavor first and foremost, rewarding those relationships is ultimately a proven method of keeping the players engaged for the long term.