Aaron Ehasz wrote up this process of what you should strive for when creating great characters and what’s only gravy. It certainly covers characters like Tony Soprano and Walter White, as well as characters he’s written like Prince Zuko, Toph, Azula, etc.

Your character doesn’t have to be likable. Right now, “Breaking Bad” is the most popular and acclaimed TV series on the planet, and Walter White is not only unlikable, he’s pretty despicable. But he’s also dimensional, fascinating, compelling, and believable. Those are the ingredients every great character has mixed into the creative soup that spawns them.