You always get roughly three kinds of players on pubs:
-
The new player, who doesn’t know the game well enough yet to make correct decisions. They won’t push because they won’t know how or why yet.
-
The intermediate player, who has learned enough about the game to know the how and why, and feels very enthusiastic about applying that knowledge in game.
-
The veteran player, who gets their teamplay fix from actual team matches and only joins pubs for warm-up or aim practice. There is literally nothing you can do to make these players care about the objective or their team. Of course half the time they will still make your team win, just by their sheer number of kills.
If you really want to improve quality of life on public servers, the only things I could imagine to make a real difference are to
a) provide better tutorials and learning modes for the first type of player, and only mix them up with the main population once they have reached a certain level of competence and
b) provide an alternative mode for veterans to get their warm-up / aim practice fix. People don’t seem to like the idea of a brainless deathmatch mode, but this is exactly why we should have one. Ideally with random spawns that constantly put you in front of other players, like the CSGO deathmatch mode, and don’t even record team score. Make it clear that it’s not a “real” mode but only for practice and warmup.
Of course even with that, people will mostly play for themselves on pubs, probably more interested in topping the score boards and earning credits than anything else. The only place where you will find real teamplay (more often than not) is ranked matchmaking, where players will mostly care about winning to improve their rank.