r/devblogs • u/Treenova13 • 5h ago
tech & code Why our local best and online leaderboard told different stories (Stunt Pals devlog)
A player sent us what looked like a contradictory report: their runs were saved in local history, and the game showed a comparison rank during play, but their best run was missing from the leaderboard list.
This happened while working on Stunt Pals, our Android animal-launch game. We had three things that looked closely related: a record saved on the device, a rank estimated during a run, and a place confirmed by the online board. The screen needed to explain which one the player was seeing.
One board, with optional login
We moved from relying on the platform's public leaderboard to an app-owned board. Players enter a unique nickname and opt in; connecting Google is a separate, optional step for recovering their ranking identity. It isn't a full cloud save or purchase backup.
That added work: handling duplicate names, supporting Korean, English and Japanese input, and providing reporting, hiding and deletion controls. We also had to distinguish pending, confirmed and failed submissions. A successful button press alone doesn't tell the player whether the score was saved online.
Daily needs one shared clock
For a worldwide daily challenge, resetting at each phone's local midnight would put different people on different days under the same heading.
We gave that mode one reset time: midnight in Korea, UTC+9. Its map, conditions and leaderboard use the same day, with daily scores kept separate from all-time bests. Local daily missions can still follow the device's date.
We also added checks for late responses. A result from yesterday's board, or from the identity used before an account connection, should not replace today's list.
What we learned
Owning the board means more responsibility. For us, it helped to separate the player's local history, shared ranking identity and confirmed online result instead of presenting them as one thing.
If you've added online rankings to a small game, what helped you make pending versus confirmed scores clear without cluttering the result screen?
A short edited gameplay clip for context:
https://reddit.com/link/1x898dq/video/tw4e9cwnv0wh1/player
Stunt Pals is free on Android, with ads and optional in-app purchases.
Google Play: Stunt Pals – Animal Launch