or they use some kind of encryption to prevent non-game viewing.
Encryption only works to the same extent that encoding assets in a proprietary binary format does. The game must be able to decrypt its assets at run time to make use of them. Therefore the key needs to either be embedded in the executable, in which case you have merely moved the problem to another location, or be easily brute forcible so the game loads in a reasonable amount of time, in which case it can be brute forced by someone else. However, both methods are much better than storing assets as mere hidden files (especially plain text
hidden files) somewhere on the filesystem.