This is my first post on this stack, so bear with me! This is just my simple opinion.
I am a huge believer in hiding certain mechanics in a game. This is mainly to add some mystery to the game where I--as the developer--am not showing my entire hand to the player.
When I say hand, I'm referring to the game of poker. It's me against you, you against me. If I show you my hand, it takes the fun out of playing the game much like it can take the fun out of the game I'm developing for the end user.
For example, when working on my first text-based online game in the late 90's, I stuck with the original design of not showing how stats played a role in damage. I didn't show how stats played a role in skill check success rates. These, among many others, were an entire mystery to the players. They had to figure it out for themselves by actually playing the game.
This decision caused players to focus more on playing and most importantly, discovering the game. They spent time applying different theories in order to discover a definitive answer. But, with no true definitive answer to be 100% proven, this lead to different playing styles, different approaches to simple or complex problems and heartache.
The impact was acceptable with the decision to hide. Most players enjoyed the mystery and enjoyed the path to discovery where I didn't show my entire hand. They felt that every log-in, there was something new to discover and something new to learn where there was no definitive answer. So, you could be wrong and still be right, which is key to maintaining a healthy player base in online games in some cases.
On others, the impact was harsh. The need to know and be given everything quicker rather than later was growing strong. This was mainly due to certain games where consequences, downtime and more were reduced to make playing easier, quicker and accessible.
I am not a big believer in sharing everything, but when I have, I felt the discovery and the need to play from the end user had been reduced. Knowing everything, much like having a god mode option, can take the fun out of playing the game in some cases.
For example, when we introduced a game mechanic in a game that I will not say, and revealed too much behind the mechanic and the underlying game system, it lead to increased exploits because the end user knew definitively what will work, not work and how to exploit the system. When the exploits were resolved, it lead to a definitive answer to what will work and what will not work, which is in some cases, still a problem
What will work could be one element or many different elements that cannibalize or compete with other elements to the point of being void. Like for another example, character equipment.
We had a hard cap on a stat for hitroll and damroll. These define if you can hit a target based on an AC check and when you passed, determines how much damage you dish out. Having a character class designed around hitroll and damroll forced players to pick only the highest hitroll and damroll bonused equipment. Therefore, voiding any other pieces of equipment that did not meet the criteria.
In return, a good number of world zones were not being used. The NPC (monsters) that didn't carry those certain sets of equipment were not being used. No one cared to kill them because it wasn't the best and time spent in development of those zones is wasted.
I think that mystery behind what you develop is important to a healthy game. That doesn't mean you should hide everything, but in some cases, you should let the players discover it. This is what adds to the fun, but not all the fun. It's like a enhancement that adds something delicious to hopefully, an already good recipe for success.
When that mystery is revealed. The paths are clear. Having a clear path can mean other paths are less traveled. If you take the approach of eliminating paths, then game depth becomes shallow. That's exactly why you have variety and why you see 2 or more types of different game elements such as different damage stats, armor stats, class stats and ETC. It adds depth to the game, it adds more options to the game and in most cases, can add more mystery to be discovered to the game.