My instinct is that you're looking at it a bit simplistically (and maybe a lot of video games over the years have looked at it too simplistically, too). If a character or "side" is presented as a
villain, it means the game has set you up to look at them as not only the antagonists of your characters and your game, but as a force that should and must be defeated. That's kind of what a villain (or "bad guy") is, and it's something that quality media accomplishes with its editorial bias and its direction, not just with its plot. The player/audience is made to believe that the
heroes are morally "right", and the
villains are morally "wrong". If that's taken away, there are no heroes and villains - just sides in conflict with one another.
Example 1: The movie
Pearl Harbor, whose presents the American seamen/pilots as good guys/heroes, and the Japanese as bad guys/villains, even in the scene where the American pilots are firebombing the city of Tokyo. A fair read of history would paint a very gray picture around who were the heroes and villains of the US-Japan war in particular, but the movie needs you to believe that the Americans are heroes and we should cheer when they kill Japanese, so it focuses on the Americans' relationships and personalities and paints the Japanese more like competent, generic mooks.
Example 2: The game
Tales of Symphonia presents an organization of villains (in the second half of the game) with a legitimately sympathetic cause, and in some cases sympathetic personalities as well. If you were in this world, it would be hard to tell who are the heroes and who are the villains. But while the plot itself kind of blurs the lines between good and evil, the narrative bent and focus make sure that you as the player know it very clearly. You're hunting the villains down and it wouldn't be fun if you felt too torn about it. And since there's no way to side with "the villains", they make sure that you know who the villains are - by including scenes where they murder and deceive innocents, refuse to compromise in the name of peace, and bring the world to the brink of destruction.
If you want to offer the player the opportunity to take one "side" or the other, you have to rework the standard way that stories are told. Because while most players want to be able to see and play a story from both sides if that's an option, few players will feel good for very long about doing what the game implies (through its direction and tone) is villainous or wrong. Therefore, you have to make sure that you tell your story in a way that will never make the player feel like they made the "wrong" choice about which side to take. I can think of two ways to do this:
- You can frame each side as a faction that has mostly good people and a just cause (even if both just causes are diametrically opposed). The factions are in conflict, but neither side is really portrayed as heroes or villains on the whole. In doing so, be sure that your (playable) characters are painted in a relatively heroic (or, at worst, gray) light. Make the player feel like they're controlling characters that want to do "right".
- You can branch the way that you tell the story once the player chooses one side or the other to join. Now that the player has chosen one faction or the other, you can start painting them more as heroes, and their enemies more as villains. Change the editorial bias, the focus, and even some of the minor events that take place in the plot, to firmly establish heroes and villains. Show personal stories, rescue of innocents, and idealistic causes from the heroes. Show wonton destruction or murder, expendability, and cynical causes from the villains.