TL;DR; tried gaming on Linux again after not having done so for ~10 years and am absolutely blown away by how much improved it is
Today I decided to get some use out of an older/leftover PC that I had laying around after upgrading. My plan was to plug it into the TV in our lounge room so that my 5 year old can play some of the less demanding games she enjoys from my steam library (stuff like Slime Rancher 2).
Originally my plan was to install Windows on it only to discover I couldn't do this due to TPM / secureboot requirements that the older hardware couldn't handle, this was infuriating and felt like I couldn't use my own machine which used to run Windows fine.
To understand where I'm coming from; I've been a Linux user on and off for more than a decade and in the past had been able to play some games using Wine but it was often fiddly or simply wouldn't run the game well enough which is why I generally just dual boot Windows for gaming.
I decided to give Linux a try as I'd heard steam has made gaming on Linux much more approachable than it once was using a proton compatibility layer (which under the hood uses Wine but making it a bit easier to use).
After installing Ubuntu 23, Steam and then enabling the proton compatibility in Steam settings I am absolutely amazed at how easy it was to get most games working!. My daughter has been playing Slime Rancher 2 and it works really well and I've also tested a few other games such as Cult of the Lamb and Dredge and they also worked well. This is such a leap forward to how I remember the state of things back ~10 years ago when I last played games on Linux.
From recent developments it seems like gaming on Linux is really beginning to pick up momentum and I look forward to the day game publishers place great import on releasing native Linux ports but until then am super grateful for the work the good people at Wine have been doing as well as Proton and Steam for making it easier to use.
I think realistically you need both client and server side checks.
If you were updating a password, server would need to check the password meets policy; you might as well check that client-side as well - provides immediate user feedback, but also keeps the load off the server for verifying invalid items. If user hacks their client to submit invalid stuff anyway, then it still doesn't get through.
If it takes three frames minimum (assuming fixed 60fps) to select an item in a menu, then obviously anyone submitting a hundred menu items selections per second is a cheat who has hacked their client, and you can ban them. Client-side check keeps the load off the server, but server must verify. Also, you don't want to instantly ban cheaters, because otherwise they'll know what the limits are and push against them. Waiting for twenty minutes and then making it so that they can only connect to other known cheats strikes me as a suitably ironic hell; go have fun in there.
Honestly moderated self hosted servers always seemed like an obvious solution, but no game company would do this since they can't monetize their products to the degree that a live service can.