Okay there’s some problems with villains lately. Too many people want to make them more human, others want to show that they aren’t all bad and other still want to make them somewhat comical. These are three things to avoid. If you want your villain to have redeeming traits, like he loves Santa Claus or he really wants to rule the world to make it a better place then your bad guy needs to be your protagonist making your good guy the antagonist. Perfect example of this is Dr Horrible’s Sing-a-Long Blog by Joss Whedon, Dr. Horrible is the main character but he isn’t all bad he loves, he feels, he has ambitions and he’s comical, which is fine because he’s the main character. If you are doing a serious story with a good guy as the protagonist, then your villain needs to be bad. Not a gray but evil, black, the devil incarnate.
If you want to make your villain human, why? Your villain needs to be an insurmountable force which causes your protagonist to struggle and fight to overcome. If its just a man well then there’s no problem. Look at Rocky 4, Ivan Drago (played by Dolph Lundgren) had literally beat Rocky’s friend to death in a boxing match in the first round. He had no visible weakness, no emotions, and the entire backing of the USSR. It isn’t toward the end of the movie when Rocky finally opens a wound on his face and the crowd starts to chant: “Rocky! Rocky!” Before that Ivan was an unbeatable robot, we saw him train some, but that was it. So humanity is not something you overly need for your villain because it automatically weakens them in the eyes of the audience.
An extension of that is the attempt to make them not that bad after all. Say that they save a child from being hit by a car, or take in a box of abandoned puppies. Why on earth would they do that? If the kid was going to become their assassin like Go-Go from Kill Bill then sure, but just to have a kid around, no. Same with puppies, what’s he going to do turn them into some form of blood thirsty hound that’s fine, but just because he likes dogs, no. He should tell the kid his shoes untied so the kid looks down and gets smashed by the car, while the villain laughs. The puppies well he should leave them alone because you don’t mess with puppies, but a real villain would kick them or drop the box in a river. No emotions for anyone that isn’t family (especially no emotion if they kill the family) and they should launch into a violent revenge fueled tirade that makes you not even want to make eye contact with them, if someone wrongs them.
Your villain is kind of clumsy or has some other somewhat laughable quality. If it isn’t a comedy then this is the worst thing you can do, the instant your villain becomes laughable then he’s not threatening. If your villain is pretending to be a clumsy computer programmer to infiltrate a facility where he will immediately kill someone in a way that clearly demonstrates he’s not a man to be messed with, then yeah that’s fine. That’s not a character trait it’s a disguise, so it is acceptable.
So remember if your villain isn’t the protagonist and it isn’t a comedy, then your villain needs to make the Devil himself a little nervous. He needs to actually be the polar opposite of your hero and then a little worse so that your hero has to overcome the enemy. Don’t make him too human or likeable. He’s a villain make him villainous.