you can absolutely have good characters be unlikeable; some of the best villains are designed to this (all villains are to some extent). the thing is, for likeable or unlikeable, the real trick of a good character is having them fufill their role in the story effectively and interestingly.
in most stories your supposed to root for the hero and want to defeat the villain, so designing the hero to be likeable and the villian to be unlikeable is the most logical way to go about that. of course, in more complex stories you would want the player to feel with much more variety towards the characters; a flawed hero makes him more human, and while being less likeable for it he becomes more understandable and relatable, for the most part improving the character. making a villain have some sympathetic qualities does the same, making them more 'human' and more interesting; if he draws paralells with the hero, it makes their inevitable confrontation all the more exciting to look forward to.
ultimately, what makes a good character depends very much on the story they are in. they have to feel a part of the story, a part of the setting, cultures, and rules of whatever universe the story takes place in. or they have to feel completely alien to that world; again, it depends on how you want to use them in the story. it also depends on the quality and nature of the story, and how effectively they fill whatever role you give them. so yeah, not so simple.
contrary to what most think, i think gordon freeman is a good character, because he isnt meant to be a character at all. he is perhaps the only proper use of a blank slate character, being as ineffectual and absent as possible so the player doesnt just immerse themselves in the role as most failed blank slate characters do, but the player actually just puts themselves in that role because gordon sure as hell isnt doing anything. a big reason of why that works is because you never, ever actually leave first-person, and mirrors dont seem to exist in city 17, so for all the player ever knows gordon and freeman are just the names you gave to your 2 fists, because thats all you ever see of him.
for the most part however, playable characters should definitely be their own characters; a fleshed out and believable character, for me at least, is alot easier to immerse myself in; gordon works because all he ever needs to do story wise is shoot stuff and much of the plot and interesting stuff is what goes on around him rather than what he does by himself; trying to work Mr. generic into an actual important role kills immersion more often than not.