So I have this game that supposedly keeps highscores and uploads them to an online leaderboard. I would also keep a local list of highscores in the device. The thing is, my game would involve a user login, of course (maybe link to Facebook, or using Swarm, I have yet to decide for that).
My plan is for the game to be playable even without an account logged in (Guest player). Highscores will be kept locally but it will never be uploaded on the leaderboards.
I can't really find the proper words to express my problem so I'll use the following scenario:
If for example, a person tries my game and played for the first time without logging in because they don't want to link their Facebook yet to a game they aren't yet familiar with. They kept on playing the game and then made good records then decided, "hell yeah I should login".
Their local scores got carried on to their account and then they instantly appear on the leaderboards (it's their scores after all).
But what if someone else borrowed the phone and linked their own account? If the local scores would get carried over, they would be technically stealing his scores.
But if I take the other approach on not carrying over the scores they made while not logged in, wouldn't it be annoying for the player to see his scores get practically reset to zero once logged in? I mean I also need to provide a motivation for the player to login, right?
So my question is, in this situations, how does an experienced developer handle these data? Or at least how is this conventionally dealt with?
This could also be applied to Achievements as I'm also planning to implement that system.
As a side question, when talking about persisting data I mostly read about using SharedPreferences. But aren't shared preferences easily editable by hand if a user finds it? is SQLite not a viable solution as well? If not then what is used to store scores that are not easily exploitable?
Btw, I'm still at the planning phase. Won't dive into coding yet until I laid all the pieces down. I'll be using LibGDX as my framework.