• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
Opwiz

Global Player Ranking

12 posts in this topic

So I'm thinking about how to best design a global player ranking system. Lets assume you get a score 1-100 for for individual levels in you play in the game (e.g. a racing game where the score is based on the track time). How do you create a global player ranking - i.e. a ranking of the overall skill of the player? I'm not really aiming for the score to 100% accurately represent the skill of the player but rather have a ranking system that is enjoyable for the player (that may involve being accurate).

If for example a player gets the score 50 on one level and 75 on another. A few ideas to calculate the player score:

[indent=1][b]Add the scores[/b] for each individual level played. So the player score becomes 125 in this example. It encourages playing more levels but gives no incentive for the player to improve existing scores. The score does in no way reflect the skill of the player.[/indent]

[indent=1][b]Take the average score.[/b] Total score / levels played = 62,5. Rewards the player for improving existing scores but gives no incentive to play new levels. It also gives poor indication of the current skill of the player as it becomes harder to improve the score the more games you play (I find lots of games makes this mistake when ranking players).[/indent]

[indent=1][b]ELO-type ranking[/b] where you gain/lose points based on the difficulty of the level played and your current rank. You get a player score that very accurately shows the current skill of the player. The system punishes bad plays which makes it less enjoyable in my experience - you get defensive about your score and there is no rewards for trying/experimenting with new plays. Puts a lot of pressure on the player to perform well in every game - discourages casual play.[/indent]

A few things I think are important:[list]
[*]I want the the player feel like he is progressing i.e. I want the score to go up as the player plays levels (and not ever go down).
[*]There should be an incentive for the player to improve the score on existing levels - raising the score from 50 to 100 on a level should be rewarded more than playing another level and getting a 50 score.
[*]The ranking system should encourage the player to get better at playing - that involves incentivising playing more and making efforts to improve techniques/strategy in order to get higher scores on individual levels.
[/list]

Any ideas of how to implement such ranking system? Anyone know of any games that does something similar and does it well?

Thanks Edited by Opwiz
0

Share this post


Link to post
Share on other sites
[quote name='jefferytitan' timestamp='1336803252' post='4939506']
I'd suggest something like the following:
1. Get the best score achieved for each level and square them.
2. Add all those together.
3. Square root it.
[/quote]

Nice. Simple and at first glance it seems to work well.
0

Share this post


Link to post
Share on other sites
[quote name='jefferytitan' timestamp='1336803252' post='4939506']
Hmm, good question. It's really got to be a compromise between fairness and player satisfaction. You want perfection to have a higher effect than levels played.
[/quote]

Experimented with some numbers (scores between 1-1000):

[Score1, Score2, ...] = Player Score


[500, 500] = 707
[1000] = 1000
[1000, 1000, 1000, 500] = 1802
[1000, 1000, 1000, 500, 500] = 1870
[1000, 1000, 1000, 500, 500, 500] = 1936
[1000, 1000, 1000, 500, 500, 500, 500, 500] = 2061
[1000, 1000, 1000, 1000] = 2000
sqrt (1000^2*99 + 500^2) = 9962
sqrt (1000^2*100) = 10000
sqrt (1000^2*99 + 500^2*5) = 10012

I'd say it works pretty well. Improving an average score to a perfect score is worth about the same as adding 4 average scores. IMO doubling your score should be worth more so I'll try to tweak it.

Just need to understand the algoritm [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img]. So I found it's called RSS (root-sum square). What does it mean to take the RSS of the scores in this case? Any tips on how it can be tweaked? Edited by Opwiz
1

Share this post


Link to post
Share on other sites
I am planning to implement some kind of ranking for my game too. What I intend to do is to google for discussions about chess ranking systems. In my humble opinion, this topic should be pretty well discussed and researched in chess, and so it is the best place to "free ride". :P
0

Share this post


Link to post
Share on other sites
[quote name='Legendre' timestamp='1336823847' post='4939546']
I am planning to implement some kind of ranking for my game too. What I intend to do is to google for discussions about chess ranking systems. In my humble opinion, this topic should be pretty well discussed and researched in chess, and so it is the best place to "free ride". [img]http://public.gamedev.net//public/style_emoticons/default/tongue.png[/img]
[/quote]

Chess uses the ELO-rating system (and many other games). It works really well in PvP games with matchmaking - the rating is accurate in reflecting the players relative skill compared to other players. As I've stated in OP though, the ELO-rating system is not really what I'm looking for.
0

Share this post


Link to post
Share on other sites
[quote name='Hodgman' timestamp='1336835909' post='4939577']
[quote name='Opwiz' timestamp='1336810822' post='4939521']
Any tips on how it can be tweaked?
[/quote]Seeing [font=courier new,courier,monospace]sqrt(x)[/font] is the same as [font=courier new,courier,monospace]pow(x, 1/2)[/font] ([i]i.e. the inverse of [font=courier new,courier,monospace]pow(x,2)[/font][/i]), you can try tweaking that hard-coded 2 with different values, e.g. what you've got now is the same as this, so replace 2.0f with a variable and see what happens:[code]int sum=0;
for( int i=0; i!=count; ++i )
sum += pow( scores[i], 2.0f );
score = pow( sum, 1/2.0f );[/code]I guess larger numbers give more weight to perfectionists, and smaller numbers are closer to a regular average.
[/quote]

Thanks for the suggestion.
0

Share this post


Link to post
Share on other sites
As Hodgman said, it can be tweaked by changing the powers involved, e.g. use cubes instead of squares to emphasize perfectionism.

The other thing to consider is that you can choose to use a similar formula for calculating the score for an individual level if you wish, e.g. sum((score(k=1..n)^p) / n) ^ (1/p). The higher p is, the closer it is to max(score(k=1..n)). When p=1 it's an average. The downside being that scores could go down if they do many bad replays. Or you could perhaps make it the sum of their best 3 scores so they can improve their score without beating their best score for a level.
0

Share this post


Link to post
Share on other sites
There is still the question of how you translate time on a given level to ranking points.

I would recommend the system used in IPSC competition, where the best competitor gets max points per stage (= level in your game), and the rest get points scaled according to how well they did in comparison; this is robust and there is no need to estimate a theoretical "best" or "par" time.

This conflicts with your requirements in that points can go down. That said, it only happens when someone beats the track record, the negative effect on points is small and gets smaller over time (because the record can't be improved by that much). For example, when track record improves from 82 to 80 seconds on a level with 100 max points, someone whose personal record time was 94 seconds and had 87 ranking points from the level will still have 85 ranking points afterwards.
0

Share this post


Link to post
Share on other sites
[quote name='Opwiz' timestamp='1336832533' post='4939568']
Chess uses the ELO-rating system (and many other games). It works really well in PvP games with matchmaking - the rating is accurate in reflecting the players relative skill compared to other players. As I've stated in OP though, the ELO-rating system is not really what I'm looking for.
[/quote]

I didn't mean to say "use whatever Chess uses".

I meant to say "there are probably many discussions about Chess rating systems over the years. it might be useful to see what have been discussed, what alternatives to the ELO-rating systems have been proposed, and why they have stuck to ELO".

Edit: Oops, sorry, I didn't realize it was for a singleplayer game lol. [img]http://public.gamedev.net//public/style_emoticons/default/tongue.png[/img] Edited by Legendre
0

Share this post


Link to post
Share on other sites
[quote name='Stroppy Katamari' timestamp='1336904399' post='4939741']
This conflicts with your requirements in that points can go down. That said, it only happens when someone beats the track record, the negative effect on points is small and gets smaller over time (because the record can't be improved by that much). For example, when track record improves from 82 to 80 seconds on a level with 100 max points, someone whose personal record time was 94 seconds and had 87 ranking points from the level will still have 85 ranking points afterwards.
[/quote]

Normally I would agree, however if it's possible for someone to cheat (e.g. finishes the level in 2 seconds) then it may have a more substantial effect.
0

Share this post


Link to post
Share on other sites
[quote name='jefferytitan' timestamp='1336944359' post='4939888']
[quote name='Stroppy Katamari' timestamp='1336904399' post='4939741']
This conflicts with your requirements in that points can go down. That said, it only happens when someone beats the track record, the negative effect on points is small and gets smaller over time (because the record can't be improved by that much). For example, when track record improves from 82 to 80 seconds on a level with 100 max points, someone whose personal record time was 94 seconds and had 87 ranking points from the level will still have 85 ranking points afterwards.
[/quote]

Normally I would agree, however if it's possible for someone to cheat (e.g. finishes the level in 2 seconds) then it may have a more substantial effect.
[/quote]That actually occurred to me, but no score system withstands cheating that obvious. It has to be stopped.
In this ranking system, just having the cheater pop up doesn't mess anything up permanently. Because the points are determined dynamically and not just adjusted, wiping the cheater's track record would immediately restore the point situation to correct state for everyone else.
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0