As i said, my intention is to make sure that even if someone manages to break into the server (by hacking or somehow getting my admin password for backend access), no critical user data gets compromised
This is, fundamentally, impossible. What you can do is make it harder for someone to do this, and collect less data that can be leaked.
However, whatever goes into your server (user scoring, IP addresses, etc) will be observable by a sufficiently motivated attacker, assuming the attacker can get access to your system.
(Or to your backups ...)
If you don't want to collect user identifiable information, then the best thing to do is probably:
1) Generate a strong cryptographically random string of 50 characters on the client
2) Make the client call the server and say "this is my string, and please keep my data under this name"
3) Store the string in a preferences file on the client machine
4) Have a button that displays the string, and lets the user copy it. Perhaps also opens a web browser with the string as part of the URL, to let the user move this "credential" to other places.
5) Have the ability to enter a pre-existing string into the program if you want to support playing from another computer or re-installing the game
It is now up to the player to actually save the URL in their bookmarks, or whatever other backup mechanism they want to use.
There is still some user-identifiable data (like the IP address used,) but no password, no email address, no real name.
And it's almost totally automatic.