Ok, let's review all of them:
Snivy: Good support with decent Def and SpDef, better than the other Starters. It also has a great Speed.
However, when it evolves into Serperior, it doesn't have that good of a level-up moveset with only Grass, Normal and Poison moves.
Tepig: Good in the early gyms (second and third) as it evolves into a part Fighting-type against the Normal-type gym. When it evolves into Emboar, definitely a better level-up movepool and a great Attack. Also, Emboar is dual-type, which gives it more STAB options. It has an awful speed, but if you're just playing in-game it should be manageable.
Oshawott: Has nearly equal Attack and Sp.Atk, so close that the difference doesn't really matter and you can use it for either or go for a mix. It also has the least weaknesses, however, it also has a really bad speed. Not many defenses or HP to stand hits well, but also doesn't hit very hard.
Overall, I think that Tepig is the best Starter choice, being good both in-game and competitively. The hardest Starter is probably Snivy in-game, as it is used mostly for its support qualities (which don't come too often in-game) or for its hidden ability, Contrary (which you can't get through a Starter).