Client side “cheat protection” is unnecessary. It creates an arms race scenario. In a business, you might decide whether or not it’s more revenue-minus-costs-able (profitable) to fight an arms race than it is to maintain a community. Some forms of cheating a very visible. You could install a trojan on your player’s computer, but it wouldn’t be absolute. (You shouldn’t do this yourself if you’ve ever complained about Windows being insecure or of Apple trying to control you). Or you could take advantage of naturally developed social reputations and player web of trusts to make cheating be considered outside the norm and shameful. It means you have to enable more player to player interaction and cannot use certain (boring) multiplayer elements like highscore tables.
With one option, you have people striving for having a reputation of being a skilled player and fun opponent. (Which is fine because you don’t need a global ranking system.) In the other, you have people that try to cut in line to get unearned status symbols.
If your game is designed so that the player is meant get a rush out of having invested more time getting points, experience points, wins, or other tokens, then there will be much more incentive to cheat. That and the fact that major games tend to focus on selling new games or content is probably why companies opt for an arms race. You’re going to buy something else from them soon anyway.
Just use good network coding practices, make your server (and clients, too) secure - without confusing cheating for a security vulnerability, maintain game synchronization, and let multiple clients resolve conflicts using consensus. The first two should not be ignored simply because you’re working on a game and not something else. (I feel I need to make that explicit.) Synchronization and verification prevent blatant cheating. The conflict resolution is to make cheating harder to achieve without cooperation from other players… (In which case it would be modification, not cheating. It should be obvious why this might be frowned upon in big commercial games…) while also leaving room for benefit-of-the-doubt (in player behavior and legitimate latency issues). The final point is analogous to self-refereeing in amateur sports games.