Leaderboard Ordering

Gears of Glory: Apex Ace makes extensive use of leaderboards. Not just a measure of skill, they are used in Apex Ace as a competitive gameplay device by generating challenges and news stories by tracking how the standings change over time.

If you end up lower in the rankings due to being overtaken whilst not playing, a challenge to retake that position may be generated the next time you play. This is one of the points in the game for which gameplay scenarios are expanded: players get awarded extra trophies for completing the challenge, as well as being higher in the ranks for all to see. In the same way, the challenge can be generated whilst actually playing – and an in-game notice will alert players that they have fallen in the rankings, and what to do to rectify that situation – usually by shaving a few hundredths off a lap.

Leaderboards in which scores can go on and on – endurance titles – are ideal for this sort of challenge based gameplay. Games which have a natural score ceiling, however, such as racing lap times (as they approach the perfect racing line) have the problem that leaderboards can become saturated with page after page of the same time – at which point the ordering of players in the leaderboard who have identical scores becomes really important.

Here is an example; Player A is currently in P1 with a score of 10. Player B is in P2, with 12 and Player C in P3 with 13.

  1. Player A: 10
  2. Player B: 12
  3. Player C: 13

If Player D comes along and scores 12 also – what position should they be in?

  1. Player A: 10
  2. Player D: 12
  3. Player B: 12
  4. Player C: 13
  1. Player A: 10
  2. Player B: 12
  3. Player D: 12
  4. Player C: 13

I asked this question on twitter, and got many responses. My own view is that, for Apex Ace, and for my challenge system to work well, newer scores must be higher in the ranks than previous scores. The leaderboard must be fluid towards the top, player ranks changing and generating challenges/news regardless of lap times themselves being better.

Note that, technically, both Player D and Player B are in P2. In this scenario there is an assumption that only one player can hold a unique position – so either of them can be in P2 or P3, depending on leaderboard ordering where scores are equal.

There were too many responses to list here, so sorry if I have not used your quote!

Most of the responses seemed to agree with my desired method as being more of a challenge;

However @flaxed’s point is quite valid. It can be seen as unfair too – there were plenty of replies who mentioned the first player to gain a score should remain higher on the list:

My (possibly harsh) opinion of the fairness point is that if you can’t race the lap at the same time again you probably don’t deserve to hold onto your spot.

Of course, a way of keeping the boards active yet keeping the ‘fair’ aspect would be to have boards periodically reset – pointed out by @jwatte.

Resetting of the boards is something I considered early on, and created a poll for it on the facebook group. The results, whilst consisting of only a handful of replies, showed resetting was not a feature with much support.

At the moment my favoured method of sorting the leaderboards is not supported by my publishing platform: IndieCity. I could migrate to my own leaderboard system – but this would mean achievements and leaderboards being on different portals, and isn’t a route i’d like to go down. Hopefully I can convince IndieCity of the benefits of having different leaderboard orderings and get it added to their development roadmap – it’s something I certainly want for Apex Ace, and feel other people could make use of.

Finally; there were some other interesting responses, most of them along these lines:

Interesting (and slightly cheeky 😉 ), but I need the listings to have the same positions across the board for generated news stories – even though it would make players feel better! The ranks can be viewed online also, so the ordering needs support at the level of the platform rather than the client.

Thanks to all who replied to my question!