Any checks you add to a client-side game can be cracked, and will only have to be cracked once for the damage to be done.
If your game becomes successful, both the pool of potential crackers and the incentive for them to crack it will increase.
If big companies like activision can’t stop it, neither can we. 
You can invalidate all my statements so far by making the game server-side and just giving the players a more or less thin client… they’d have to rely on your service rather than just getting a copy of the game.
As long as your don’t release the source code or binaries for the server, anyone wanting to play the game for free would have to duplicate the effort you put into developing the server. So if you put a lot of effort into the client, but only a little into the server, this means they can duplicate your work with little effort.
So, in closing, make the client an mpeg4 player with keyboard and mouse input control. Stream the input data from the client to the server, render the game graphics on the server and stream it back to the client as an mpeg4. That should be the most crack-proof game you can make.
(or just add a very trivial web call to check if the serial number is registered, as that will stop the most casual of crackers, but you won’t waste too much time trying to do the impossible)