Tag Info

Hot answers tagged

14

It sounds like you're storing the points awarded for each match, and then 'expiring' those point adjustments over time. Which, as you've noticed, is open to easy exploitation. In a standard ELO implementation, your ELO score is forever; it does not 'decay' over time, as having points leave the ranking system in this way will eventually lead to overall ...


13

If the kids are supposed to enter their initials, I don’t think you should block any combination. On LinkedIn, there are 25 professionals named Carol O’Keefe. How about Andrew S. Schwartz? If you want kids to be able to choose an online identity without allowing profanity, you could consider a pre-determined combination of icons, animal pictures, colours, ...


10

I think there are two basic problems with a global leaderboard: Cheating. And from a design standpoint, what does it do for the game experience? I would argue it actually detracts from a player's experience, unless a global ranking is somehow achievable. When I finish playing a game for the first time, have a couple hundred points, and then get shown that ...


9

There's no standard, nor is there actually any reason for there to be. People seem to like the exponential growth as it makes them feel like they're getting more powerful and being faced with proportionately more challenge each time, but in fact that is only true if the way you collect points doesn't also change proportionately as well. If the ...


8

I like all time high score and daily high score board as well. But my favourite highscores is when they match it up with my friends scores, I don't care about some guy I don't know highscore, I want to see how well I do against people I know/in my area


8

The internal system we used for Moblox (later replaced with OpenFeint) worked like this: Send a JSON message over plain HTTP (not HTTPS). Include a MD5-hash of all fields plus a magic string. On the server, check the integrity of the message with the same operation. To crack the system, you'd have to find this magic string. It is possible with reverse ...


8

Always unless they choose to opt out. You should never publish something that can possibly be individually identifying without asking. For people like your friend simply put in a check box that says "Don't ask again" or something along those lines.


7

You can limit the most flagrant of abuses by monitoring the highest results in the top score table. Depending on your game, you may have a "perfect score," above which any score must be fraudulent. If not, you can calculate the lowest "impossible score;" can the player shoot 10 shots per second, the game lasts 1 minute, and each killed enemy is worth 100 ...


7

I added a simpler curve to Nathan's answer, The curve is 1 - ( b - x ) / (c*x + b) It doesn't use log, and you can alter the steepness of the curve using the c parameter. When c=0, the curve becomes linear.


7

Though it is (to my knowledge) most common for newest score to be entered at the top, I would argue that the OLDEST score would deserve the first position. For this simple reason: The first player to achieve the high score had LESS TIME to achieve that score, than people making later/following attempts, thus deserving a higher position as (s)he was the ...


6

You can use the Facebook Graph API for that purpose (there are several SDKs available). These are roughly the things you need to do: Create an app on Facebook. You can do this here. There you'll get your APP and API Keys that are needed for you to communicate with the Graph API. If your app wants to post to somebodies wall, he/she needs to grant your app ...


6

I added a quick/dirty high score table to a project of mine a while back and not being at all versed in internet security/etc it turned out sort of flawed. Surprisingly, with nearly 1,200,000 recorded scores, I've only had maybe 5 or 6 occasions of batches of blatantly incorrect scores reaching the top of the board. Most of the scores even looked more like a ...


6

First question, how much do you care about cheating? Making a simple webapp for leaderboards is probably pretty easy, but it will instantly be spammed out of existence. I would look at curl as a decent async HTTP library that you should be able to integrate into just about any client code. For the server side, I assume you have no budget for dedicated ...


6

ScoreLoop is available for Android platform. You can use ScoreNinja too. ScoreNinja offers an easy way to implement global scores but requires to view your score in the ScoreNinja application. Otherwise Cocos iphone provides a global score with CocosLive. You can use CocosLive.net or use your own GoogleApp Engine VM. CocosLive is not available on Android ...


6

Just sort them alphabetically. And if you have numbers to call out the position, be sure to handle the tie case appropriately so you aren't calling one person 3rd and another 4th even though it's the same position.


5

I'm not sure there is one framework that spans multiple platforms but there are platform specific frameworks for sure. Two that come to mind for the iPhone are Scoreloop and OpenFeint.


5

Off the top of my head, if negative scores are not allowed: track positive and negative scores separately. For instance, when writing the leaderboard: // Pseudocode points_for_win = 3; points_for_loss = 2; if (didWin) leaderboard.positive_score += points_for_win; else leaderboard.negative_score += points_for_loss; When retrieving the ...


5

I guess you probably know about the Facebook API Documentation. Other than that you can find various snippets and examples via Google but a lot of them still target the old Facebook API. Personally I found the API-Docs and the code-examples to be sufficient to get started, but this might vary depending on the programming-language you're going to use. ...


5

Have you considered using SharedObject? It allows you to store data on the hard disk, and the data is accessible even if the SWF is reloaded. Seems to meet your requirements, and doesn't require a separate program of any sort.


5

I'd go with calling it score, and awarding more than one point per kill. That way if your game design changes later to include say bonus points for killing more than one enemy simultaneously or other factors then it makes it less disruptive to add them in. I think big numbers also feel better to the user. For example play almost any arcade game and you ...


5

The ELO system is used by the FIDE (World Chess Federation) as ranking systems and League of Legends is using a system based on ELO. I have used it for local long-term game tournamets. ELO is a good system. If you want penalize those who play less, you can modify the ranking every certain time to remove points and positions to those who deserve it.


4

You don't kneed to place a log-in button, and you don't need to set permissions. I found this Stack Overflow question that explains a quick way to do it just in javascript. The user is asked post the item to their wall, and they can either add a message and post or just skip it.


4

Ultimately you can only rule out impossibly high scores, because the rest are (by definition) merely implausible, and thus might be a legitimate (and awesome) player. Otherwise you have to rely on obfuscation techniques (such as encryption, and sending other stats beyond just score). You could also send the score periodically as the game is being played, ...


4

Moria/Angband (and all their spinoffs including -- debatably -- Diablo) base their systems on matching monster level to player level, to see what you earn, with rising XP-per-level requirements beyond that. In Diablo, there are optimal levels of monster you can kill, within 5 levels of you in positive and negative. That looks something like this (apologies ...


4

Take the reciprocal of a growing value to get a value that shrinks instead, and vice versa. Multiply that up to get the large numbers you want. score = 10 / (#players-moves - #optimal-moves + 1) A perfect win scores 10. 1 excess move scores 5, 2 excess moves scores 3.33, etc. To get progression that seems more linear you can multiply moves difference by ...


4

Algorithms like Elo and TrueSkill determine a player's skill based on the result of each game played, without respect to the passage of time. However, both algorithms come with an "uncertainty" factor -- in the case of Elo, there is a K Factor that is usually set high for new players, such that their Elo rating will converge on their "true" skill rating ...


4

You should ask the user before publishing the high scores for 2 reasons: Some users don't want their scores uploaded (by principle, or to avoid being spied on) even if it doesn't make any sense for most people. Some countries have very strong data protection laws and you can get into trouble if you submit user data without user's permission, Even more so ...


4

As far as legal issues go, the usual remarks apply. Laws are not universal, your mileage may vary etcetera, etcetera. If you are required to obtain the user's permission to publish his score, it doesn't follow you need to ask. Permission can be implied by simply playing the game, as long as the player is informed of this, for instance through your terms of ...


4

Note that in addition to vulgarity other words may be inappropriate, for example "KKK" or "LSD". It may also pay to consider any local sensitivities for demographics you are targeting, for example if releasing a "gun game" in the United Kingdom or Ireland I would consider "IRA", for Chicago would consider "CPD" Kenneth Hurley has a comprehensive list of ...



Only top voted, non community-wiki answers of a minimum length are eligible