Tag Info

Hot answers tagged

23

I find myself most satisfied when I see what appear at first glance to be prime numbers. If the score always just adds a 0 (10, 20, 50, 200, 300 etc.) at the end, I feel cheated. Multiples of 5 (5, 25, 45, 80, 95 etc.) are a bit better, but you quickly catch on to the fact that your accomplishment is worth 1/5 of what's being shown. Numbers like 47, 76, ...


11

I would say the main reason why some games use such high numbers is, because they don't want to deal with fractions. "0.375 Experience Points" just isn't as catchy as "375 Experience Point". Those numbers have a wider range and variation for balancing without the need of fractions. The developer can still decide later in a patch to use 1015 points as damage ...


6

Several points: You should definitely enable error reporting and error logging into a file on the PHP side, otherwise you'll have no evidence of problems. AJAX errors usually cause little visible error to the user. You should check for errors on the Javascript side too PHP error handling is famous for being both bad (e.g. the default action for most ...


6

To do this, your game has to keep track of the previous nodes clicked by the player, and check the sequence for the combos that you care about. The usual approach is to just keep adding things to your record of what the player has done until they break the combo chain (however your game defines that), at which point you clear the record and start over ...


6

Preamble: As Patrick Hughes noted, for the "correct" answer to your question, take a sample of test playes. Give one group your game with standard scores, and a second group the same game but with 100x/1000x the scores. Fractions: Depends on your Game, really. Commenter Joe provided an example of where rounding can occur, but that's about Hit Points rather ...


6

Tweens work great for this, and any tween library would have what you need. The function below is what I've used before in a couple of games. It scrolls very quickly at first and then slows down a bit near the end, reminiscent of slot machines. void addToScore( float val ) { score += val; // Stop the current tween, in case one is still running. ...


5

I'd squeeze in another variable - cells travelled - it could act as your "planning" score. Base Given the core variables speed, length, cells travelled, the main formula could be: score = base * (length * speed) With base being: base = cells traveled; // basically, this could prove enough // optionally base *= board size coefficient; // a coefficient ...


5

I think this is a place where a power function may be ideal. If the best score S is achieved with N manipulators, you can have N+1 manipulators yield a score of S * 0.9 (ie. 90% of the best score), then N+2 manipulators yield S * 0.81 (ie. 90% of 90% of the best score), and so on. This is generalised by the following formula: score(num_manip) = S * ...


5

I'd say higher numbers tend to make players happy. It's better to get $1000 instead of $10, right? Big numbers also go better together with effects. Imagine a particle explosion and sound-effects every time you achieve something in the game. That would certainly look better with an accompanying 14'500, than some low number like 34. Big numbers give the ...


4

Sounds like http://en.wikipedia.org/wiki/Elo_rating_system might be a good starting point: it's a system which ranks players based on their win/loss record, weighted by their rank. The gap between players' Elo rankings can then be used to calculate the relative odds of each winning.


4

Depending on your language, I'd write my own. The typical game's rules are generally so straight-forward (make the number of people you've killed higher than the number of people they've killed, hold this item for longer than they hold it, etc) than the maintainance of a rules engine may outweigh just hardcoding the rules.


4

The 3BV score is essentially counting the number of clicks required to reveal all non-mine squares. A Minesweeper board is essentially an m*n array. To calculate the 3BV, you will need to process the cells in this array in a particular order, so you will need to be able to mark each cell after you process it (so you don't process it multiple times). Then, ...


3

Store the score outside of the level, probably in the game object that manages which level you are on: class Game { int score; Level * currentLevel; ... }; If there is code within a given level object that might need to manipulate the score, you can pass that information to the level when it is constructed. You could simply pass a pointer to the ...


3

I've got only one hint - try not to penalize your player, make gifts instead. In your situation - don't take something that player already achieved (his points) for using hints. Instead, stimulate him with giving even more scores for not using hints. This trick works almost in every gamedesign - inverting "punish" mechanic (negative) to "stimulate" ...


3

I think you will have to write your own engine. Have you ever looked at Zillions of Games? It's a commercial application that runs abstract games written in a script language called ZRF. You can get some inspiration by looking at ZRF language specification. The best documentation I've found is here. Of course, you can take a look at the implementation of ...


2

Smaller numbers of either is better right? So how do we make sure that larger numbers make the score smaller? We divide 1 by that number. The larger the number, the smaller the parts 1 is broken into. We can change that slightly to allow for other minimums. See the example for a perfect score being calculated when the seconds elapsed is 1 and the moves taken ...


2

Indeed higher scores are said to make the player feel like he's playing better, and hence could enhance user experience. This needs to be experimented for you to really find if this makes a difference in your specific game. If you compare an arcade game like Every Extend Extra Extreme and a platformer like Mario, the effect score has on the player is widely ...


2

Experiment. Make two games, differing only in the graphics and scoring systems. Give these games to your friends, ask which they liked better.


2

I'd like to know whether there are dedicated solutions available for implementing custom rules Yes, they're called programming languages. :) Seriously though, to make truly custom logic, you typically need a system that allows arbitrary conditions and actions, which is pretty much what a programming language does. Or to look at it from the other ...


2

Networking solutions sometimes include sophisticated matchmaking rule systems. I can't think of anything else. Games have a lot of common concepts, unfortunately not all of them can be supported very well using a plugin technology or middleware. Some game engines or game tools offer prefabricated systems for making menus and highscores, but there are no ...


2

You could possibly invert it, a lower score could be what players could try to achieve: as another example your score isn't the number of live you have, but rather the number you lost - I think Touhou works like this. Therefore your score calculation would be: score = (GameTime.TotalGameTime.TotalSeconds - startTime.TotalSeconds) * TimeScalingFactor + ...


2

MickLH's suggestion of fitting a smooth function to your chosen point values is a good one. However, you do need to exercise some care in choosing the kind of function you want to fit. For example, if, as I presume, you want the player's base score to remain above 1 (or at least above 0) no matter how much time he takes, then using a function of the form a ...


2

What you're looking for is the Time object. And Time.time in particular. Time.time contains the time in seconds since the game has started (or the level has been loaded). So you want to know how many seconds elapsed since the player is on the board. Just save the Time.time value when you want to start counting and then, in the Update method, you can easily ...


2

I think what you are looking for is Statistical Change Detection. I remember we studied such things in our Bachelor degree, for applications such as detecting when a machine is behaving slower than usual. Although I have been unable to find any paper explaining our method, it would work like this: In order to detect an statistical relevant change in a ...


1

If you use the baskets as multipliers, ie Gold: 4x Silver: 2x Bronze: 1x No matter how you score the everything else, the biggest reward will always be for gold. With your current landing score taken into account, the breakdown is thus: Gold Silver Bronze Feet 12 6 3 Head 8 4 2 Side 4 2 1 Then, ...


1

You need to store the high score in some kind of shared persistent storage, either one you provide yourself or one provided by the portal hosting your game (if you are going that route, you'll want to consult their developer documentation; for example Kongregate's documentation on their leaderboards et cetera is here). If you provide this yourself, you ...


1

I'd not mix users with level database. Second variant (separated user base) is easier to expand and support. If you'd ever want to implement mid-stage save, rewriting the whole levels.xml for the save would be..sub-optimal. If you want to store all the levels (including user-made) in a single file, then user id tag would be enough to distinct them. ...


1

Fitting is the tool for the job. You can research least squares fitting for a more in-depth explanation. is only a simplified example. I plotted your input on Maxima with this command: plot2d([discrete,[ [1,15],[5,15],[5,10],[10,10],[10,5],[20,5],[20,3],[30,3],[40,1] ]]); It looked logarithmic to me so I went ahead and fitted the natural logarithm ...


1

You could use five start system, it easily transfers to the percentage. With the "zero" score, causing no stars. 0 Stars 0 points 1 Star 1-19 2 Stars 20-39 3 Stars 40-69 4 Stars 70-89 5 Stars 90-100 You could go with any other point system. And say that the player passes the level once he gets 50% or any number of stars you choose. I'd use it as a ...


1

The more levels of achievement, the more chance the player is to see a reward for playing again. For example, in games where the feedback is expressed as a percentage, they might just improve from 90% to 91% where as they won't get that feedback from a star system where the improvement isn't enough to get an extra star. Worth noting that Angry Birds ...



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