All I can say, if that if you want two examples of how to make a FPS that lasts: Halo 3 and CS:S. The former is still the standing record for most time consumed for me; I had something like 4000 matches logged, and it was by far the most fun I've ever had in any game, simply because of the sheer potential for dicking around with friends in custom matches. I had a dedicated circle of around a dozen friends and a score of people I vaguely knew, and could find a custom lobby at pretty much any hour. I honestly am not sure how to put it into words, but Halo 3 would qualify for my top 5 favorite multiplayer games of all time, just because of how much fun I had with it.
CoD? I've forgotten everyone I ever met in that game, and I can't remember any notable games or events. CoD isn't even bad, just 'meh'. It feels arcady, in a bad way. Instead of actual depth, you get a massive, repetitive unlock system and run&gun gameplay. There is a certain type of entertainment, but it isn't long-lasting or particularly good. Quite apart from all of that, it is easy. Half the time, I felt like I was playing against low-difficulty bots. Sure, I can go 30-2 in most games, but for almost all of them, I either need to be tryharding or in my sleep-deprived fugue state. In CoD, regardless of anything else, if I pay a tiny bit of attention and use a non-experimental/joke loadout, I can do that in practically any match that isn't massively stacked against me. Of course, given the quality of CoD matchmaking, that ends up accounting for more of my bad matches than my own stupidity, teamstack, and other factors combined in other games.