What is the best way to accomplish the goal in the title? It seems to me that there are three possible ways that the game designer can do this: a tutorial, the manual, and the level design.
My favourite way to learn the rules of a game is to be taught it, not by the game itself, but in person by somebody who has played it before, and has become an expert at it. This personal, human experience is best imitated through the tutorial. Best does not mean good. If the game tries to imitate the personal touch it will seem fake and off-putting. If the game does not do so then it may cause frustrations as it becomes a cost before the player can actually play a game.
Even an optional tutorial has those weaknesses if it is the only real way to learn how to play, since a player needs to learn how to play somehow. An optional tutorial doesn’t seem like it could hurt when coupled with one of the other two methods, however it still costs resources to produce.
‘The manual’, or simply writing the controls and rules down is my preferred way. It allows the player to understand things quicker by reading, it is cheaper to implement, and it allows for the constant refreshing of the rules. However, for more complicated rules it may require careful design in order to ensure that the player actually understands the real priorities and points of the rules.
I said that the manual was my favorite way to teach the player. That’s true for controls but not for everything. For many things, I feel that the best way to teach the player is to let them lead the way and start playing. This allows them to exercise their own judgment rather than to be spoon-fed notions. A neat way is the ‘tutorial without instructions’, for example being presented with a pit that one could only cross by double-jumping, but not being told to double jump. Of course, such a thing could work by itself on something simple like a GameBoy. It does not work with the many, many keys on one’s keyboard. Although, it works well coupled with a manual that players can discover.
Ultimately, it seems to me that if the three methods were costless to implement then one would implement all three methods. They’re not costless to implement. I think tutorials are likely to be too expensive for what you get. Using level design might have the cost of needing to compromise one’s vision, not all ideas are based on starting the player with a little stroll. One goal is to teach the player the game, you should use one instrument, I’d suggest the manual.