The game doesn't need to modify itself. All you need to do is to alter the game slightly when you're compiling it. You don't even need to do it manually, as you can easily write a script that does it for you (add a random file somewhere, append random data to something like music files/models/textures, add unused code,... anything that doesn't break your code will do). Once that's done, keep the builds somewhere along with their checksums (MD5, SHA256, or anything that's reliable enough) and a list containing what build you've sent to each specific person. If the game leaks, check if the checksum is the same as one of your builds: if it is, you've got your guy. If it isn't, he might've modified the game to try and remove the watermark, so check the leaked build manually: if you find even a single byte of your digital watermark where it should be, you've still identified the leaker.