I am not good at videogames or writing or english but there seems to be a sort of a fundamental flaw with the game that keeps gnawing at me.
There's a disparity in the usefulness of classes.
Since the game at its core is built around the interaction of shooting and moving in order to kill while not dying, the usefullness of the class is kind of like the area of a triangle formed by a line denoting the relation on a carthesian graph where the axes are mobility and damage potential.
Generalist classes like Demoman, Soldier, Scout are good at both movement and combat – the two things that make up the core gameplay and that all other mechanics work around. Medic does damage mitigation like a motherfucker, and not dying is also the big dealbreaker for core gameplay. He acts as a multiplier of surviveability and therefore – damage potential of other classes. He makes everyone else exponentially more useful.
These four classes stay useful no matter what's going on in the game.
Specialist classes like Heavy, Spy, Engie are either situational or slow the game down making it less fun/ fulfilling
Heavy is slow and gets killed easily. He can push or defend chokepoints, but whenever the game moves fast, he's dead weight by design. Good at killing, bad at moving.
Spy is useless if the other team pays attention. He can pick off the med or bust through an engie nest, but that's really situational, and outside of those situations he really is dead weight.
Engie takes a long time to roll out, has a really hard time moving his nest around even afforded hauling, even not being too slow on his own, and the usefullness of his buildings is nil if the flow of battle changes and the traffic of teammates or enemies circumvents the buildings. He really is mostly useful for chokes and stalemates, where you need to hunker down. Sometimes he can plop an exit behind enemy lines but this rarely happens. Again – very situational. And so is the intensity of his play – you might be ripping your ass in half one moment, making sure your shit isn't being wrecked, and the next moment you aren't really doing anything.
Pyro is bad. The design of the class itself lacks focus – it's a close range combatant, sure, but what the fuck does he actually have to fascilitate that? Does he get extra tools to ambush people? Does he get some means to close distance to his target fast, or to mitigate/avoid damage if played correctly? The airblast helps but isn't nearly enough. Pyro has been kinda useless from release straight to this day, unless I am forgetting something.
Sniper picks shit off, and can do real damage, but is not that fun to play with or against. That would not be too bad in and of itself if he wasn't countered by himself. You do sniper things until the enemy gets a sniper of their own. Then it's sniper war. And you don't really get to do much shit other than this.
Demoknight is like a very loud spy. Can do picks if the enemy isn't paying attention, but they eventually will wise up to you. Really needs more fleshing out.
Some classes are universally good to have, others are only useful at specific times and in specific situations.
1. The balance of the game is heavily skewed in favor of generalist classes on the whole. Not in specific matchups, – there are situations where a specialist class absolutely fucks up a generalist. But these situations are much fewer and come up much more rarely than the reverse.
2. The specialist classes have little to do and are not fun to play outside of their speciality. This is pretty fucking self-evident and I feel like a retard for complaining about it. Probably because I can't properly put my grievances into words. I guess I just wish that these specialist classes would have something useful to do outside of their "main job". Say, engie has his toys and that's the heart of him as a class, but he can also dispence ammo and give armor boosts (like in quake/classic/forever) for teammates when he isn't babysitting his nest. Just something to bridge the void that is downtime between useful nests, so that the player doesn't feel the immediate need to switch to a soldier/demo/scout/med/.
3. Some classes are just not fucking developed. Pyro and knight are neat ideas and their respective modes of play feel unique and fun. But they aren't awfully useful and seem a bit unfocused.