..."Game Class is"
There's no such thing as "too many classes" in your game, so long as each has a distinct differing factor, the more distinct the better.
Take a look at final fantasy 1. You had the Fighter, the dude who uses swords, the Monk, the dude who punches things, the Thief, the glass-cannon (who is actually really bad at his job, mind you), the Black Mage, the dude who blows things up, the White Mage, the dude who heals others, and the Red Make, the dude who jacks all trades, but masters none.
FF3 through 5 added on to this, resulting in 5 being an insane amount of fun in how well you could learn and combine class traits, effectively making decisions infinite and the game replayable as fuck.
--
Now, the general idea is to take these as concept of unique function and apply it as classes in your game. However, in order to make this system 'good', each class needs a specific use that not only makes it distinct, but makes it desirable. If your play testers become frustrated by being unable to decide which classes they should use, this is actually a GOOD thing, since it means they consider all classes distinct and well-balanced enough to be worth playing.
So there's a few things you need to do:
1) As I said twice now, each class needs to be "distinct" - this goes for the stat bonuses the class offers, the unique skills the class learns (and you really should try to have every class learn its own unique skills; a "doesn't learn any attacks!" class is really boring, unless it's a berserker, and a berserker that is
WORTH USING), and/or a unique visual graphic to determine the difference.
2) Balance the everloving fuck out of the classes. This is the hard part, as you genuinely need to replay your game over and over to test everything, and try to keep all the classes equal, without making them all too similar or all useless.
3) Ask yourself whether or not classes will be static or dynamic. A "Static" class would be one that your character can change into, but will not retain any skills or abilities if and when they change to another. A "Dynamic" class would be one that they can learn, say, a fire spell as a mage, and from that point on be able to use it as a fighter. (Keep in mind if you do decide on dynamic classes, you need to carefully determine prerequisites the player needs to fulfill to permanently learn skills for use outside that class title)
4) Since you want classes to be unique to each party member, remember to balance things to keep every character unique as well as their classes. It is better for a player to love the diversity each party member gives than having one or two characters be completely useless and/or undesirable that they might task with item duty.
--
I recommend playing Final Fantasy 5 some time (assuming you haven't) to see a great class system in action. If you cannot track down the game (and lord knows you can't because SquareSoft secretly hates you), you can read a Let's Play
HERE to give yourself a general understanding of, again, a really damn good class system that you should aspire to.
This post has been edited by ZarroTsu: Nov 10 2012, 08:43 PM