I've been reading a lot lately about how to create compelling characters, how to build effective villains, and I've been chewing bubble gum. Now I'm all out of gum.
Ok, confession time: I haven't actually read that much; lately, my thing is to watch YouTube videos on the subject while I commute to and from work. And by "watch" I guess I mean "listen to." This is the primary good I get from YouTube Red; I can play this crap on my phone without wasting bandwidth on the seeing-eye part of a video. That's enough about me.
Mostly what I want to point out is that I think 99% of the advice I've seen is bad.
What's the difference between a hero and a villain?
But, seriously, I keep seeing people claim that the hero and the villain should be morally opposed, with contrastng principles. I've seen the example of Batman and the Joker more than once: Batman believes in the inherent good at the core of all people, and Joker is a nihilist who thinks we are all cannibals waiting for the apocalypse. I mean, sure, their contrasting personalities probably add something to the story, but claiming that the significance of their conflict is derived entirely from this is missing the point.
Consider a semi-real life tale of man versus man: the story of a duel between two snipers in Stalingrad, 1943. For now, we'll forget the fact that it was almost certainly made from whole cloth by Soviet propagandists, and we will discuss our protagonist and our antagonist: Vasily Zaytsev and Major Koenigs.
What is the difference, morally, between the hero and the villain? Both are soldiers, following orders. Both are engaged in the faithful defense of their fatherland. Both serve honorably, placing life and limb literally on the line. Both bow to the unfortunate realities of modern warfare by fighting in an unconventional way—a way often despised by other soldiers. What makes the one morally superior, or even morally distinct, from the other?
Nothing. It's not as if the fictional Major Koenigs is portrayed as a dog-kicking, child-abusing, womanizing scoundrel. Rather, he is described as a fine soldier, an excellent marksman, and a master of his craft. The only questionable aspect of his character is that he is a sniper, but that's a characteristic shared by our hero. He is practically a German Zaytsev.
Again, this is not a true story; this is a tale told to manufacture a Russian hero. The fact that no one bothered to make Koenigs into a "real" villain somewhere along the way demonstrates how inessential real villainy is.
In that case, what makes a good villain?
This seems to be one way in which villains are held to a higher standard than heroes. Heroes can waffle over their public goals, their private desires, and even their methods for achieving them, but a villain must be gripped by a sincere conviction that what they are doing is right. To do write it any other way will only serve to weaken the villain, and that's the opposite of what you want.
Think about it. How afraid are you of Emo Bitch—er, I mean, Kylo Ren? The only thing I'm afraid of is that, next time he flips out, he might smash something important for a change. As in, "Dammit, I was watching that!"
You could make a fairly effective argument that Ren is not even meant as a villain. I might even buy it, because—if he is—he's the worst one in history, but that's not relevant here. Either way, he serves as a perfect demonstration of my point: if you aren't certain what you want, you cannot be a decent villain.
I will add a second thing that makes a good villain, largely because other people have discussed this as a distinct feature, even though I personally see this as a part of the conviction I just mentioned: a villain should believe he is making the right choice, but also the righteous choice. Moreover, given the circumstances and the principles he applies, you should be able to agree with him.
What about heroes?
This is where heroes should differ from villains. Where a villain feels conviction, a hero feels conflict.
At the end of the story, a hero should probably be certain what he wants. In fact, the final, climactic moment is often a moment of decision. Think of Indiana Jones hanging by a thread into the chasm that was the Great Seal. He can almost reach the Grail—but in that moment he realizes what is important, and he reaches up to take his father's hand. This kind of enlightenment should pretty much only come at the end of the story.
Up until then, the hero should be conflicted on what he wants, and even about how he can get it. In the beginning of the movie, Indy resisted even going on the quest for the Grail; in fact, he only joined because his father had gone missing. He consistently claimed to be uninterested in the Grail, but rather only in freeing his old man from the awful clutches of those damn Nazis. Even so, the closer he got to the Grail itself, the more feverish his desire became, until he was on the point of throwing away his life just to hold that cup one last time.
To return to our comic book hero movie example, Joker is convinced that the people on the ferries will blow each other up. Batman is horrified by the possibility that he is right, and so is the audience. We share Batman's horror, and so the story resonates within us.
To summarize, let's just steal some more Internet advice. You know those people on social media who say insipid garbage like:
"haters gon hate b ur best self i kno i am"
—Insipid Social Media User #7490019218
...That's your villain, except that your villain isn't full of shit: when he says that he is the best version of himself, he means it. Whatever the hell that means. He has been through trials and he has overcome, and he is certain of what he wants and how he should go about getting it.