This is a tough one for me. Farcry was an awesome game but it had A LOT of bugs. The game itself was really well done and the graphics were incredible. Lemme break this down -
Pro's - Huge expansive world. Levels are large and you don't feel forced on any path in particular. Plenty of vehicles to use, lots of hardcore action, great driving sequences. Realistic damage models. Large variety of weapons, great storyline, excellent scripting. Multiplayer is fun.
Con's - Repetive gameplay, non stop action in most cases. Enemies became uber. Levels were HUGE, die very often! Bugs, bugs, and more bugs. Game was always 1 step away from freaking out. I don't remeber it completely crashing much but graphics would corrupt, sounds would go nuts, Save feature not available. AI was more aimbot than AI. Became pretty easy to deal with.
HL2
Pro's - Beautiful graphics, game is polished and works great. Immersion is extremely high in game. I feel nervous walking around and get startled when enemies pop out. Very fun vehicles, very unique enemies. Storyline feels real, a lot of attention to detail. PHYSICS. Gameplay incorporates physics and parts of the environment are destructible. CS:S comes with it for free.
Con's - It's really really late. Levels feel small, and path is very obvious and linear. Lots of loading. Enemy AI on harder levels is less about tactics and more about taking more damage and using an aimbot. (Headshots don't kill...) NO HL2 MULTIPLAYER. Req's an internet connection and a steam account to play.
While I haven't finished HL2 and I'm definitely critical of Valve and this game, I have to give GotY to Farcry. The absense of multiplayer is a huge knock against HL2 and despite all of Farcry's bugs it was still a fantastic game which exceptional graphics. Add that to the fact that it was released long before Doom3, and HL2 it really shows how strong this title is.