A lot of more modern games are officially supported on Linux. But for the ones that aren't, playing on Linux often seems possible.
But buying physical has less hassles and is better for other reasons: you can sell, trade, lend games. And most games have a better experience on console.
Of those that are better played with a keyboard and mouse, some are DRM-free and on Linux, which is the best option in my opinion.
Of those that aren't, Steam usually seems to be the best way to try to play them. Steam is available for Linux and many games for it are officially supported on Linux, and for those that aren't, it has the built-in ability to attempt to run them anyway. To try this, start Steam on Linux, go to Settings -> Compatability, and enable Steam Play for all other titles using Proton Experimental. I've found that there are many games I have that aren't officially supported but still seem to work. This is probably because of the Steam Deck, which is Linux-based; there's an incentive to get all Steam games working on the Steam Deck, which makes them work on Linux too. Here is a database of games showing people's experience of what works.
In some cases, for simple games that are only officially supported on Windows and are run from an exe file instead of Steam, simply running the game with wine works. However, for convenience and ease of setup, you can also run those games through Steam by adding them to Steam as a non-Steam game, and forcing a particular version of Proton to be used to run them. Using this method I was able to get Battle.net and Starcraft 2 to run on Linux, thanks to instructions at this post.
CrossOver is also an option - it's paid software that has a free trial, so worth a try if a game won't work using the above methods.
Other software that I looked into that didn't seem as useful for me for gaming on Linux:
PlayOnLinux hasn't been updated in a while, and is just a graphical front-end.
Lutris is just a launcher, and it didn't work with the EA App when I tried it.