If you are using something like optimus-manager then I dont think prime-run will work unless you are in hybrid mode.
The above method for steam is how it should work. If it doesnt … there is something wrong.
And it is covered in the wiki:
For example, in Steam, select a game - that you want to run using your discrete Nvidia card - from the Library page of the Steam client, right-click, and select Properties. Click the SET LAUNCH OPTIONS… button and specify for the command line options followed by the default launch hook %command%.
DRI_PRIME=1 %command%
(though note … until recently PRIME was only available to opensource drivers … nvidia is newly compatible … hence the above example is using DRI_PRIME … but while proprietary nvidia works the same it uses the command prime-run)