Overwatch has added competitive play and a ranking system. The ranking system is a 0 to 100 scale, centered on 50. If you win matches you gain in rank, if you lose matches, you lose rank. As is pretty standard, the magnitude of the gain or loss depends on the rank of your opponents.
For the most part this system is pretty serviceable, but it has its quirks. For one thing, it's zero-sum: the ranking gained matches the ranking lost. Then Blizzard decided that if someone left a game in-progress, hitting the remaining members with the full loss would be too punishing, so the loss is greatly reduced. But since its zero-sum, the winning team gets a very small gain. Which is arguably fair, as there's nothing great about winning when you're up a person. However, this has led to people quitting when they are losing, to "punish" the winning team.
There are other issues. In general, your rank settles down after a while and does not really change, leading to a feeling of stagnation.
I think it would be interesting to add a time component to these ranking systems. The current system for Magic: the Gathering does something similar. Here's my idea:
Let's start with the existing rank, R.
Then let's add the concept of a Time-Adjusted rank, T = nkR + nm, where n is the number of days since the start of the season, and k and m are constants.
What this does is cause the ranking curve to go higher and wider as time goes on. Let's say that on Day 1, the ranking system goes from 0 to 100. On Day 10, the Time-Adjusted ranks would range from 10 to 1010. (The constants adjust how the curve changes.)
However, the rank the player sees does not automatically increase each day.
The final piece we need is a Display rank, D. This is the number that players see, and are ranked by. The Display rank only changes when the player plays a game. The Display rank increases, targeting the Time-Adjusted rank. The Display rank doesn't need to jump directly to the Time-Adjusted rank, it might do so in stages. Cap the amount gained per match, only jump halfway to the target, etc.
The big advantage of the Display rank is that it is decoupled from the real rank. It does not have to be zero-sum. Indeed, it does not have to decrease at all. You can set up so it always increases (or stays flat).
To go back to our earlier example, on Day 1 Jane plays a bit and has a real, time-adjusted, and display rank of 50. She then doesn't play for a week or so. On Day 10, her real rank is still 50, her time-adjusted rank is now 510, but her display rank is 50. She plays a game and loses. Her real rank drops to 49, her time-adjusted rank is now 500. But her display rank increases from 50 to 150 (increase in display rank is capped at 100 points for a loss). As she continues playing, her display rank continues to increase, win or lose.
Such a system keeps the forward momentum going. You are always moving forward. The better players move forward faster and higher, but even the worse players see movement. The system also encourages players to keep playing steadily. You can't achieve a high rank early and then stop playing.
Since display rank is not zero-sum, you can do things like penalize leavers 10 points, without modifying the other players' increases.
There are a few negatives, of course. It's harder to compare players' skill, as a lower display rank might just mean that you haven't played in a while. And you do have to play steadily, especially near the end of a season. Playing the first two months and skipping the last month is worse than skipping the first month and playing the last two months.
Overall, though, I think a time-adjusted ranking system is better as a whole, and focuses people on playing the game rather than gaming the ranking system.