There's something you might notice if you watch a lot of American movies or dramas : The "hero" is often a villain.
As far as cinema or TV goes, since the last 30 or 40 years there has been a big change.
Previously, the hero was a pure-hearted, clean person who, in the battle between good and evil was always on the side of good. There was always a clear distinction between people who were good and those who were bad, and "good" always won in the end.
Not any more. Since at least the late 1960s, the "Antihero" became popular. An antihero is a person, who though not completely good or pure, will do something good in the end. A good example is Clint Eastwood in the old "macaroni" Westerns.
In the "Godfather" movies, members of a Mafia "family" are obviously criminals, but viewers like and sympathize with them. This idea was continued through other mafia films and TV series " The Sopranos". (G.K)
As far as 〜 goes 〜に関して言えば
battle between good and evil 善と悪との戦い
on the side of good 善の味方になる
clear distinction 明確な区別
in the end 最後には
sympathize with 〜 〜に同情する
The Sopranos テレビドラマ「哀愁のマフィア」