Why do gamers seem to like the sometimes un-heroic Nathan Drake of Uncharted fame? One of Drake's creators explained in a comment on Gamasutra.
The short take is that Nathan Drake has attitude without being a jerk, and he cheerfully but woefully gets in over his head. This helps make him charming rather than annoying.
Former Naughty Dog creative director E. Daniel Arey explains it better than that in a comment below a Gamasutra essay about another character voiced by Drake actor Nolan North, the revised prince of last year's Prince of Persia. Some gamers disliked the new prince, finding him to be too abrasive, too unlikable and — in a comment not as directly addressed by Arey — too sexually frank.
Here's Arey explaining how and why the Uncharted team thought they could make Drake both unusual (for a game) and unusually likable:
I can tell you from our experience that there is a fine line between jerk and lovable rogue. We developed Nathan Drake determined to make him more human and accessible than most videogame heroes.
Heroes can be cocky, (in fact, if they're not, you run the equal risk of making them inactive and only reactive – the kiss of death), but if a hero constantly shows their human side, we relate and forgive any seeming overconfidence because we've all been there.
The whole team, as well as myself, Amy, and Evan thought the reason characters like Han Solo (and his emotional twin, Indiana Jones) are likable is the fact that these characters constantly butt up against their frailty and often get in way over their head, barely finding a way out of predicaments. We can all relate to that! Couple this lovable trait with humor and a quirkiness about life, and you get a character you want to watch and play. (The kind of person you'd like to go have a few beers with.)
Arey's full comment — and the Prince of Persia article above it — is well worth the read. Then again, that revised Prince of Persia is well worth trying out. So go catch up, please.