Creating Game Leaderboards with Redis

10
Creating Gaming Leaderboards Using Redis Ronny López Technical Lead Backend [email protected]

description

The leaderboard adds a whole new dimension to your video game. It's a means of building rivalry between players and deepening their engagement with the game. But, like most things in gaming, building a leaderboard comes with its own technical challenges.

Transcript of Creating Game Leaderboards with Redis

Page 1: Creating Game Leaderboards with Redis

Creating Gaming Leaderboards Using Redis

Ronny López Technical Lead Backend

[email protected]

Page 2: Creating Game Leaderboards with Redis

Leaderboards

• Effective way to show where a user stands within a gamified system

• Absolute leaderboards – incentivize • Relative leaderboards – avoid disengagement of players at

lower end of rankings• Several type of rankings (weekly, monthly, friends, …)

2

Page 3: Creating Game Leaderboards with Redis

3

Page 4: Creating Game Leaderboards with Redis

4

Page 5: Creating Game Leaderboards with Redis

5

Page 6: Creating Game Leaderboards with Redis

Requirements

• Add member• Remove member• Update member score• Find member score• Find member rank• Associate data to members (Name, Alliance, etc…)• Get slices of the ranking (for pagination)

6

Page 7: Creating Game Leaderboards with Redis

Architecture

Scalable to serve several million active users Performance is a must

7

Page 8: Creating Game Leaderboards with Redis

Implementation

• Redis data structure server• Sorted set data structure• Different sorted sets for different kinds of rankings• Redis hash data structure for member associated data• Lua scripting for aggregating in-memory data • (Sorted) Sets operations (union, intersection, etc…)

8

Page 9: Creating Game Leaderboards with Redis

Challenges

• Horizontal scaling• It is not possible to shard a dataset with a single huge key like a

very big sorted set• Two-phase commits if you want to execute a transaction among

different data stores

9

Page 10: Creating Game Leaderboards with Redis

Summary

• Redis is the right tool for the job, but datasets can not be bigger than memory

• Exceptional performance (more than 8K leaderboard ops per second in a single instance)

• Easy to use and understand technology• Mature and open source

10