Filler characters feel like filler character
This is not always true, but a lot of the time it is pretty easy to spot characters that could easily be exchanged by any other character. I mean... if you're careful it can work to create the story first, but I feel like it really lowers the amount of choices you can make for each individual character.
Characters first. Story later.
I usually go the other way around and create the character first and then see where he/she/it would fit in (changing things if necessary).
One trick I usually use when creating a lot of characters for games is to pick two things: An object/element/animal and a catch-phrase. Keep in mind that these two are just for you to know, in all likelyhood, noone else will ever realize them (unless you overdo it).
Let's say I take your Ball and Chain user and he's supposed to be a healer. And now I have to create five of those (annoying, huh?)
For my first one, I pick something random as my object like a half-empty beer bottle.
My catchphrase will be something along the lines of... maybe just "Discretion is the better part of valor."
So what does this mean? Well the first thing my object makes me think of is an overweight guy who waddles a bit while walking around (and is pretty slow). Because of the catchphrase, he will probably try to avoid direct battle situations, which fits well with him being a healer. It makes me think he will probably get some attacks that will make him use the ball and chain to propel himself away from the enemy (get some distance). Most of his quicker movements should probably be caused by the ball and chain while he himself is a rather slow character. I could also see the ball actually just being something soft, sponge-like, that he might fill with various substances that will either heal or hurt his targets in different ways.
Number 2 instead gets a pair of sunglasses as his object. Our catchphrase would be "Let me through, I'm important!". That mix makes it a character with sunglasses in a nice, black suit. Think government agent. Now because of the catchphrase, I'd probably give him attacks that shove opponents away, so he can 'get through'. His healing wouldn't be with the ball and chain, that would be just his tool to make room. He'd actually have to touch people to heal them. He would be slim and a pretty quick character.
Our #3: Object/Animal: Hedgehog. Catchphrase: What goes up must come down. This might not be the best mix for a healer, but for now we'll just go with it. So basically, his ball gets spikes that he can activate by will. Catchphrase makes me think the spikes will stick to the opponent and he might be able to heave him up in the air with it and make him crash down. Since I have to think of Sonic, this character will be small and quick, with some spiky hair. He still has to be a healer though, so considering the catchphrase, he might just throw small object in an arc that will heal what they hit. In fact, maybe they will heal more than regular healing skills, but part of it gets removed again after a couple of seconds (unless the character was hit during that time and lost the 'extra' hp anyway).
Our #4: Object/Animal: Potato. Catchphrase: I'll kill you all! This time I think it will be a pretty boring looking character, that somewhat hides his ball and chain with his clothes and then when he attacks his expression and everything completely changes making him look like a complete maniac. Since his catchphrase is so aggressive, his healing power will actually come from hitting the opponents. His ball has to be relatively small, but in exchange he gets to attack a lot more often (even though each attacks deals less damage) than the others. Every time he hits the opponent, some drops of blood flow off him that will heal teammates they touch.
Our #5: Object/Animal: Shower. Catchphrase: Only the sky is the limit. This character will be an aerial type. Jumping a lot, attacking from above ('showering' his enemies with attacks from above). He might get some wings that will allow him to float a little. Since he's in the air so much, his ball lags somewhat behind. It's also the reason he can't actually fly for extended periods (because it's too heavy for that). This actually makes me think in his case the ball and chain are actually on one of his ankles. So he will get a design that's somewhat of an escaped slave or something like that. And yes, the healing will be some kind of spray.
Alright, so now I got my five characters that I think are pretty different from each other even though they have the same general role and weapon type.
Now would be the time where I ask more questions about my characters and try to answer them. Was there some place where #5 could have escaped from? Did one of the other characters have something to do with his enslavement or his escape? Did he know someone before?
What's the deal with #4? Is he just some psychopath or is there an actual reason behind his character change? Do any of the other characters know him (and if so: do they know the real him?) What does he do for a living anyway?
Is #3 some kind of thief? Did he maybe steal something important from one of the other characters once? Is he a relative of someone?
Who does #2 work for? People like him have to have orders, right? So what organisation gives him orders and what is their place in all of it?
Where did #1 train? Were there maybe a bunch of monks that threw him out because he kept getting drunk and screwing up training? Is the softer ball something that started as a joke because he accidentally kept smashing furniture when he was drunk?
And so forth.
In the end, I always feel that I find a place for my character or if not, I will create one. But while you flesh out your character more and more you'll quickly realize what his place SHOULD be.
If you already have a main story (so to speak) you'll want to tailor your answers in a way that fits into that story of course. Which can be a lot of fun.
But especially since we're talking about a game here, it's important that the personality of the character (and his backstory) fit his playstyle and looks. Which is why I'd always do it this way around.
Oh and it doesn't have to be object/animal + catchphrase, you can choose any things you like, just keep it simple.
char __huge array[65537]
(exact keyword depending on the compiler).char
s?