Making sense of the world
Part of the reason for this is about world-building and storytelling, which may not seem relevant in the genre or type of game you are writing but if you aren't giving your users any kind of story or world hooks, they will be creating their own to make sense of what they are playing.
If you look at it in that respect, then a character-class system represents the development of an individual in a set of skills. Let us imagine that we had a game in which you could be a musician, a high jumper or a barista. If we just listed all their skills in one place, you might have something like:
- jumping quite high
- making an americano
- playing a C major scale
- jumping higher than average
- making a good latte
- playing the melody from 'Ode To Joy'
- jumping hella high
- being able to carry six mochas
- playing 'Moonlight Sonata'
Now that set of skills falls naturally into three categories and it would make sense to someone playing it that you need to progress through jumping quite high
and jumping higher than average
to master jumping hella high
. If you were to progress from playing a C major scale
through making a good latte
to jumping hella high
that doesn't really make sense and your players would probably find it a little weird.
In this respect character classes map to the real world fact that you get better at what you practice, so higher level skills are available to you as you master their predecessors. That helps the world of the game feel sensible.
This type of increasing specialisation is treated in a lot of games as a skill tree rather than a character class and this makes sense but is basically the same thing.
If you have a skill tree that goes through playing a C major scale
to playing Moonlight Sonata
that is no different than levelling up in the Musician class really. Of course there is the option to learn other base skills, so you could learn to jump quite high
and make an americano
and become a high-jumping barista but in many class based systems - particularly "proper" RPGs - this available through multi-classing.
The other way that skills and powers are often represented is through equipment- do you need to have a character class at all if you just let the user choose equipment that gives them the skills they want?
Again I would argue that if you have the best Wizard Hat and the best Wizard Staff to gain all the Wizard skills, you're effectively playing a Wizard class. The terminology changes but the theoretical mechanic is broadly similar.
Classes enable progression and specialisation
Now the big advantage of a class/skill-tree progression system is that you can make the pinnacle of any given class much more awesome because a player has to specialise to get there. A game where everyone is an average generalist is typically a lot less compelling than one where they are diverse and can do a selection of awesome things. Rather than favouring micro-optimisations, this can lend itself to more interesting play and open the door to having different strategies for different situations. If you watch people playing one of the DOTA family of games, the diversity of strategies needed for different heroes is what makes it interesting and keeps people coming back.
If I am playing a game I would rather be able to do a few powerful and awesome things and have to think about how and when to use them. If the game is team based it allows strategy to take place on the level of the whole team rather than just individual players, which is often a lot more compelling.
The sense of advancement and growing in power is easier to conceptualise in a class/skills-tree type framework and that is part of what makes games that offer this type of progression work and part of the reason that it is such a common pattern.