Yes.
The books never explicitly say that the GM should or must tell the players the difficulty, but that's because it takes it for granted. (It really should say, because – as you point out – keeping players in the dark is just so normal for so many GMs.)
There is circumstantial evidence in the text that the GM is supposed to set difficulties "in the open", but they're scattered throughout hundreds of pages and can be subtle. The most obvious, undeniable one is on page 311 of Your Story (emphasis mine):
Difficulty as Plot Device
Sometimes, assigning an unexpectedly high or low difficulty to an action can create an interesting detail for your game. For example, if the PCs are breaking into a small company’s office building, they probably expect most of the locks to be Good difficulty or lower. Finding one that’s Great or Superb difficulty would be unexpected, and this will serve as a flag to indicate that not all is what it seems. […]
Likewise, if the same PCs are infiltrating a Mafia don’s safehouse and all the locks are Average difficulty, it should be an indicator to them that something is wrong.
Note that there is no way that this bit of GMing advice makes sense in a system where difficulties are kept secret. If difficulties are secret, they can't serve as flags that something is up. If difficulties are normally secret and the GM reveals only the "odd" difficulty that's out of place, then the advice straight up doesn't make sense because the players won't have any other difficulties to compare with; and the simple fact that the GM is suddenly telling them difficulties would be the indicator, not the actual difficulty. It would be less artificial to just say what's out of place instead of "indicating" or "flagging" with difficulties. This bit of GMing advice simply wouldn't be in the book if it wasn't simply assumed that difficulties would be played in the open.
So yes, this passage is just a bit of sidebar GMing advice, but it reveals the underlying context of a system that is written with the solid bedrock assumption that players will be told the difficulty of every roll they make.
On top of that, as you point out there are many disadvantages with keeping difficulties secret:
- It slows down play significantly
- It makes in-character strategising (which in FATE is done via Aspects) impossible
- Players have no way of knowing what their characters do know – how their own world, bodies, and expertises work
- It robs the players of narrative power in a ruleset that is designed to be hugely collaborative (and functions poorly when it isn't)
- Playing "guess what the GM is thinking" is almost never fun. This is particularly true in the case of Fate's core mechanic, since uncertainty about target numbers adds no suspense while adding lots of drudgery.
I asked Fred Hicks via Twitter if there is an official rule either way, and he responded:
fredhicks
@sevensideddie I think Fate works best with difficulties in the open; you say jump, they ask how high, and you tell them. :)
4:26 PM - 14 Dec 12
So this is as official as it gets: The game doesn't require anyone to play with difficulties in the open, but the designer thinks people should and designed with that in mind. That's consistent with the books: they don't have a rule for it, but they consistently, subtly, assume that you'll play that way.
In sum, playing with secret difficulties is like voiding the warranty. You can do it, but the game is not guaranteed to perform as designed if you do. As you're discovering (and as I hope your GM can begin to appreciate), this game you're in is suffering somewhat for having its warranty voided and isn't operating at full capacity.
Fate has a much more narrative approach, less GM authority, and player-based plot control mechanisms. This can make for trouble transitioning from a more adversarial GMing environment.
Fate Core (and other recent Fate games such as Dresden) actually do a pretty good job of providing a suggested "menu" of powers and stunts for players to take; show them to your players and let those inform other stunt ideas through play, rather than trying to get the characters completely nailed down in advance the way you would have to in D&D.
To address the specific problems you mentioned:
The "blind sniper" problem is that in Fate, it's very easy for a cooperative party to stack multiple temporary aspect bonuses on a situation, then tag them all for a single super-successful roll regardless of innate skill.
Consider a sniper with a base skill of +0 - "has no idea what he's doing". First he hides on high ground (creating aspect "On a Grassy Knoll"). One of the other players - a tech - has made, and gives him some "Precision Armour Piercing Ammo", with suitable aspect. Then another player jumps into the road to stall the target into "Standing Still for a minute", so the sniper can create advantage by taking an acting to put him "Centred In My Sights".
Then the sniper free-tags all of those, for a base roll of +8 and a near-certain hit - with fate points to spare if he needs them.
Stacking enough of this sort of this can greatly reduce plausibility, but it's obvious behaviour for a group of D&D players where it's an expected part of the system to need to stack every combat advantage you can generate. I don't, however, feel it's as much of a problem as some Fate players do - this is behaves-as-designed. Fate characters are supposed to be able to beat pretty much any single obstacle if they can generate a convincing narrative. "He's not that good a shot, but it worked because an entire team was helping him take it" is a pretty good narrative to me, and gives the plot and characters room to develop further.
The "constant compels" problem arises when GM and players get caught in a Fate-point loop of constantly compelling aspects to force behaviour or non-actions from each other.
Remind your players, and remember as GM, that the point of compels is to implement narrative development. The Fate point economy will naturally limit how far players can push this, so it's not a problem unless the GM gets sucked into constantly offering Fate for compels. So don't. Compel when it's a narrative or character development to do so, not just because it's possible.
Long combats occur because groups have trouble actually taking out opponents of similar skill levels. This is particularly likely if your group is used to D&D, and trying to "wear them out" by all attacking individually. In Fate it's much more effective to set up a narrative about a couple of major attacks, taking multiple actions to support each other and make those go off well.
The best counter to most of these issues is threefold:
Let them have their moment. Players being able to tear through obstacles like this is not a problem in Fate the way it would be in D&D; it's expected behaviour of the system. Don't make it impossible, but ask what happens next and generate new obstacles. The problem can come more from a D&D-oriented GM feeling he has to make tasks "possible to fail" than from actual issues.
Your enemies are not idle. Don't GM in direct opposition to the player's actions, but instead change the game. Fate uses the same mechanics for social and combat conflicts, and it does so for good reason, expecting them to intermingle. Use it. Enemies will attack on social fronts, run away if they're in trouble, consult allies, adjust schemes, and all the other narrative options that are not often available to an orc in a dungeon.
Remember that in Fate, the player is always an informed participant, even when the character isn't. The gap between player and character knowledge is much bigger in Fate.
Situation: A hostage is tied to a chair. There is a trap which incinerates the room if anyone touches the hostage.
D&D answer: Tell the players nothing. Make hidden Perception checks. If anyone explicitly searches, make Search checks. Lie unless the players succeed at these checks.
Fate answer: Tell the players immediately that there's a trap. Let them make rolls and use aspects freely to see if the characters spot it. If one of the players has a "reckless" or "rescuer" aspect, compel it - offering a fate point if their character runs in carelessly and sets the trap off. Make the players partners in decisions that hurt their characters.
Best Answer
One of the problems that I run into with Fate is the preconceived notions of what a GM is, and the role played in other games. Fate is about the story, more than the system, i.e. the story utilizes the system rather than being constrained by it. So, though it may seem that you are letting the players know about something that they do not, what you are really doing is introducing a story point to move things along.
In the best instances of synergy, his utilization of the aspect would involve revealing it if it affected some roll that involved the player. But, just because this is not the case doesn't mean that the characters know- just the players.
This does not mean that the player can't invoke it by spending a fate point, but it does mean that the invocation does have to be explained in such a way that it would not rely on the character's knowledge. An example of this might be the player spending a fate point to hinder the other character because of the fact that he is an undercover police detective, and this fact constrains him, rather than the player.
I've found that though details may be hidden outside of interaction with the player, once the players become involved, its not so much hiding details, as to how they interact with the story.
Also see this thread where I pose a similar question- like I said, I had a hard time getting past this.
One last point- the reason that the players need to know is stated in that other thread- since the players can spend fate points to alter the results of the roll, they need to know their target.
That said, if you do want to have aspects that are hidden to the players, I'd say that there are a couple of ways to do it- and a couple of caveats that you have to watch out for.
You can use tangential aspects to the primary aspect to act as breadcrumbs towards puzzling out the primary aspect. I've done this in my game. But the caveat is that you can't be too obscure in your placement, so that players can actually puzzle out that their is more to the situation than meets the eye. If you are too clever, then you can find yourself in the unenviable position of having to try to figure out ways to drop hints so that your players can find out your big reveal.
An example of how I've used this: There was a person of note in the campaign that was seemingly a villain, but was actually a patsy and a victim; their bodyguard was the real threat in the scene.
The patsy had the aspects Detached to a fault, Listens to his subordinates, and Winning is everything. These covered that he was Addicted to Red Court Venom.
The bodyguard had the aspects Divided Loyalty, Has his boss' ear, and Strong as an Ox to imply that he was Red Court Infected.
The aspects that told the story were there, and as the players saw clues, they were able to puzzle out the mystery. But it was harder than it needed to be, as though the aspects seemed obvious to me, they weren't obvious to the players.
Always keep that in mind, and have a definite plan for the reveal that doesn't necessarily involve the players' agency.
As I looked back on it, I saw that last caveat as the reason that I would use this sparingly, and concentrate more on the story than the plot points and being the GM. Player agency is important in Fate, and to an extent, this removes that if they don't follow your orchestrated plot.