Your characters need to be ‘three dimensional,’ and 'well-rounded.' That means, they must be believable, and not defined by a single characteristic. Add some complexity, give them quirks. A ‘good’ character still has follies and weaknesses. A ‘bad’ character still has redeeming features. That’s what we love about our favorite protagonists and villains. Give the good character a gambling addition that he’s trying to fight. Give your bad character some great talent, maybe dark humor or super-intelligence.
Your readers want to know what makes the characters tick. We want to know their dreams, desires, pains and obstacles, their weaknesses and strengths. Tell us what they need. Tell us why they can’t have it. Tell us what quality they have that’ll allow them to succeed. Most importantly, tell us why we should care.
The character's desires should be believable. If a girl wants to be the world’s best ballerina, tell us how good she already is, why her goal is difficult, but still achievable, albeit with great difficulty. Don’t make her a klutz. Don’t give her a physical deformity that makes her dream impossible. Make her talented but poor, or in a difficult relationship, or in a remote island. But the talent and the drive to achieve her nearly-unattainable goal must exist.
Examples of protagonists with weaknesses/undesirable qualities:
We care about Harry Potter because he is relatively pure. He doesn't know he’s up against the most powerful wizard of all time. He is an orphan, he is small, his vision is poor, and no one seems to love him. He’s mediocre as a wizard. All these are unimpressive qualities, but his fame in the wizarding world leaves him unfazed and he remains humble. His goal is to survive, while the all-powerful Voldemort is out to get him. And despite all his shortcomings, we want him to succeed.
Ron Weasley is a great friend, but is the jealous kind. Dumbledore is a great wizard, but has a dark past.
Shrek has ugly habits (earwax candle, etc).
Mr. Incredible is strong, but egoistical.
Simba doesn't follow rules.
Examples of redeeming qualities in the Antagonist:
Your antagonist should have a desperate need to be bad. No one is all bad. Circumstances make them turn that way. Take the example of Scar from Lion King. He wants to be King (who wouldn't?), but the little scamp Simba is in the way. Scar is wicked and cruel, and the perfect villain, because he has no compunction to kill off a little cub. But he has style (and the accent).
Darth Vader is stronger than Luke, and was always more talented and skilled. He turned bad to save his wife’s life. We respect that power and the dedication.
Voldemort is all-powerful and almost impossible to kill. He wants to be the most powerful wizard ever, but he must kill Harry Potter first. That makes him believable.
In summary, your good characters should be more good than bad, and have a very strong positive trait (bravery, honesty, integrity, compassion).
Your bad characters should have more bad traits than good, and have a very strong negative trait (ego, lust for power or money, anger, hatred, jealousy). A good mix and balance between good and bad makes your characters believable.
Want to learn how to write fiction? Check out these helpful books.